Author Archives: proctech21

Emptying the Cup

Apprenticeship Patterns by Dave Hoover, Adewale Oshineye

Taking a Different Approach to Coach. If there is a way to learn, adapt to change, or see yourself in a different perspective, the book of  Apprenticeship Patterns chapter 2, “Empty the cup.” is your guidance. 

To sum up the idea from the introduction of that chapter, let’s paraphrase it like this: “Empty cup, new tea,” a buddy once said, perhaps borrowing the phrase from a great, ancient philosopher. The friend was attempting to persuade a group of change-seekers that if they truly desired “fresh tea” in their life, they needed to “empty their cups” to make way for it. This is a straightforward but deep idea. Yet, how many of us attempt to start something new—whether it’s a new activity, a new goal, a new relationship, or a larger version of something we already have in our lives—without first asking ourselves, “What do I need to let go of to create a way for this?” 

There are a lot of great concepts in this chapter, but I would like to focus on two paragraphs here: Your first language and concrete skills. Why do those concepts matter in programming? I would like to share a brief description of my experience with my first programming language. As well known, programming languages are not different from any other languages. All are required to afford passion, dedication, consistency. Of course, we are always excited about learning a new language. We will put all the effort into it until we have a good sense of it. I remember working days and nights to improve my skill in my new language. However, as the book stated, we learned things one way, and we made a custom of it. I am still having trouble changing my comfort zone. Reading through this book, it’s the best wishes I can think of as a programmer to change my way to a new perspective or new approach about how to look at myself when it comes to programming. 

Concrete Skills

Why is it essential in today’s world? Technology gives us a new reality in this world. Working in collaboration is becoming the new norm. Cloud computing and the level of competition have brought a territory that requires many different sets of skills. Adaptation, teamwork, problem-solving, critical thinking, and more became a demand for the work environment. 

As it says it all here in this paragraph; Constructive talents must be acquired and maintained. Even though one of the benefits of being an apprentice is the capacity to learn rapidly, having discrete and demonstrable proficiency with specific tools and technologies enhances the possibility that you will be trusted to contribute indirectly until you attain status.

References:

https://www.oreilly.com/library/view/apprenticeship-patterns/9780596806842/ch02.html#concrete_skills

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns

Wow, wow, wow. Apprenticeship Patterns what is a book? Software Craftmanship? to be an Apprentice? to Be a Journeyman? to Be a Master?  Apprenticeship? an Apprenticeship Pattern? Where do Patterns Come From? all in this chapter create a simple mechanism for the development and basic understanding about how to be a good craftmanship and eventually become a good programmer.

Dave’s story resonated with my past. I have struggled in the past a lot when I first tried to learn to program. I am quoting Dave here in this paragraph when he said this as I am paraphrasing his word “Perl was my first programming language, but only after two failed attempts at learning how to program. After seeing the movie Tron and being inspired by the idea of an entire world existing inside my computer, I attempted to teach myself BASIC on my Apple IIe when I was 12 years old. I acquired an Apple-published BASIC manual, but I couldn’t figure out how to use it in a fascinating way. I soon gave up when I realized I wouldn’t be able to make anything other than text-based games.”

what I found the most interesting in this reading is the way they have separated all the concepts about craftsmanship. Everything seems to build around it. After reading through the rest of the chapters, I found there is a lot of great information that is available and relevant today. In Chapter2 through 6 there are talking about it.

Emptying the Cup Your First Language, Confront Your IgnoranceThe Deep End, Retreat into Competence, Wrapping Up, Walking the Long Road, Accurate Self-Assessment, Perpetual Learning, Construct Your Curriculum.

Walking the Long RoadThe Long Road, Craft over Art, Sustainable Motivations, Nurture Your Passion, Draw Your Own Map, Use Your Title, stay in the Trenches, A Different Road, Wrapping Up.

Accurate Self-Assessment, Be the Worst, Find Mentors, Kindred Spirits, Rubbing Elbows, Sweep the Floor, Wrapping Up

Perpetual LearningExpand Your Bandwidth, Practice, Practice, Practice, Breakable Toys, Use the Source, Reflect as You Work, Record What You Learn, Share What You Learn, Create Feedback Loops, Learn How You Fail, Wrapping Up

Construct Your CurriculumReading List

Read Constantly, Study the Classics, Dig Deeper, Familiar Tools, Wrapping Up

After reading through this book, I wonder how we should approach the idea of craftsmanship and the basic principles that need to be allowed.

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.

Thea’s Pantry

What is Thea’s Pantry?

Thea’s Pantry is a food bank for Worcester State University community. It helps students, staff, and faculty who require food and other necessities. This service runs out of the Student Center on campus, offers a confidential service to people in need. There are a lot of positive things about Thea’s Pantry. The Thea’s Pantry client solution is described in full in the Documentation project, which includes User Stories, Architecture, Technology, Workflow, Release Process. Since I came from a retail background, architecture is a very interesting component for me because it helps layout the foundation of the business in general. For example, in this project, the architecture gives info about GuestInfoSystem, InventorySystem, ReportingSystem, IAMSystem (Third-party), EventSystem (Third-party). The Architecture allows the users to interact with the frontend and backend, where the guests will be able to interact with the frontend.

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.

LibreFoodPantry Reading

LibreFoodPantry is built to serve a wide range of communities and academic institutions. Examining each area helps me comprehend how this project was designed to function and all of the values linked with it. The Mission Statement, Values, which includes a Code of Conduct, Agile values and principles, and FOSSisms, for example. Licensing, Acknowledgements, the Coordinating Committee, and other topics are covered. For me, the Code of Conduct is one of the most significant topics in the reading because it discusses all of the relevant facts that might easily occur during online contact, such as harassment and discrimination. Because it governs how humans interact on the internet, computer ethics is vital.

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.

Invention Discovery

Hello Everyone, I am very excited about this new invention that is about to blow your mind once we finish putting it together. In the CS-448 course, we will put together some great features to update the foodPantry for our clients. Thank you for your patience, and I promise you, this will revolutionize this industry forever.

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.

Importance of JavaScript in Web Development

JavaScript has become the most popular programming language for web development in the last two decades. The fact that JavaScript is used by more than 94 percent of all websites, according to recent studies, demonstrates the importance of JavaScript as a web development language. Since part of our course is to work with frontend and backend, we work with a mix of JavaScript, HTML, and CSS. This blog will focus only on the importance of JavaScript for developers to build a frontend.
What is JavaScript?
JavaScript is a client-side programming language that enables web developers to create dynamic and interactive websites by allowing them to integrate bespoke client-side scripts. Developers can also develop server-side code in JavaScript using cross-platform runtime engines like Node.js. Combining JavaScript, HTML5, and CSS3 allows developers to create web pages that function across multiple browsers, platforms, and devices as already mentioned in the previous paragraph.

Many JavaScript frameworks, such as AngularJS, ReactJS, and NodeJS, are available on the web. Developers utilize JavaScript extensively to construct diverse web applications and add interactive elements to them. JavaScript is supported by the majority of online browsers, allowing dynamic content to be displayed beautifully on websites. WordPress is the most popular content management system (CMS) today, and JavaScript is used extensively in its development. A web developer who is well-versed in JavaScript may create a variety of applications that are both stable and scalable. If you want to be a professional WordPress developer, you’ll need to understand JavaScript so you can make informed decisions right away.

The role of a front-end web developer is to write the code and mark-up that a web browser renders when you visit a website 
When it comes to front-end development, there are three key components: HTML, CSS, and JavaScript. Each is necessary for a webpage to function properly. HTML is responsible for the site’s structure and content, CSS is responsible for its aesthetics, and JavaScript is responsible for its interaction. When it comes to developing websites, they all operate together, but the focus of this blog post is on JavaScript and how it’s employed.
JavaScript is a versatile programming language that may be used to do a variety of tasks on a website. For starters, it is responsible for the site’s overall interactivity. Image sliders, pop-ups, site navigation mega menus, form validations, tabs, accordions, and other complex UI components are all feasible with JavaScript.

It can also perform more subtle operations. For example, you might click a checkbox on a form, and a pop-up appears asking you another question, depending on which checkbox you picked. It adds capabilities to the site that would otherwise be impossible to provide with just HTML and CSS. JavaScript enables websites to respond to user action and dynamically update their content without requiring a page reload.
For a front-end web developer, JavaScript is an essential tool. Websites would not have evolved into the dynamic web apps that they are today without it.

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.

Items API

The API is the most important aspect of web development. The program’s functionality is divided between the front end and the back end. Our assignment has been based on the front end since this week. Create, delete, list, update, and order items, among other things. To help you comprehend the entire process, I’ve created a rudimentary image that will aid with the demonstration’s layout.

Front-end web development, sometimes referred to as client-side development, is the process of creating HTML, CSS, and JavaScript for a website or Web application so that a user can see and interact with it directly. The difficulty with front end development is that the tools and techniques used to produce the front end of a website change all the time, necessitating the developer’s ongoing awareness of how the field evolves.

In an app, items are entries. Items are the rows in the table if you conceive of the app as a table. Items are made up of some basic information as well as values for each of the app’s fields. There can be many values (for example, several links to another app) and multiple sorts of values for each field (F.ex. a field of type date field consists of both a start date and an optional end date). A string id called a sub id is used to identify the type. The sub id values denote the kind of most fields, which is usually only one. Others have a number of sub ids. For each field, the sub ids and their values are provided below:

The Items API allows you to:

Verb             Path                                    Action                    Description

POST          /api/items                              create                    Create item

GET           /api/items/:id/image            image                   /api/items/:id/image

GET           /api/items                              index                     Query items

GET            /api/items/:id                        show                      Show item

PATCH      /api/items/:id                         update                   Update item

PUT           /api/items/:id                         update                   Update item

It takes a combination of programming, arithmetic, and human interaction to turn a visual design into a fully working  web design.

This will have an impact on you. HTML is loaded into a browser and interacts with other resources such as CSS and JavaScript to create a website. You may not be writing the code, but there are dozens of elements that a developer must consider in order to make this work, and you should be aware of these demands and effects, as well as the fundamental tools of the trade.

Developers have come to identify and specialize with one side of the front-end/back-end duality as both sides have become increasingly complicated. Most web engineers made a career decision about whether they wanted to work on the front-end or the back-end somewhere in the previous ten years, and new developers are making the same decision today: Do they want to work with front-end, presentation-level code, or back-end, processing-level code? It’s up to you to decide.

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.

API

API stands for application programming interface, which is a set of definitions and protocols for building and integrating application software.

How do APIs work?

The Application Programming Interface (API) is a software interface that allows two apps to communicate with one another without the need for a human to intervene. A programming interface (API) is a set of software capabilities and operations. A software code that can be accessed or executed is referred to as an API. API stands for application programming interface, and it is a code that allows two different software programs to communicate and exchange data with one another.

It allows goods or services to talk with one another without requiring knowledge of how they are deployed.

Consider the following example to better understand how the API works:

Let’s look at how API works with a basic example from everyday life. Assume you’ve gone to a restaurant for lunch or dinner. The server approaches you and hands you a menu card, which you can modify by specifying that you want a veggie sandwich without onion.

The waiter will take your order once some time has passed. However, it is not as straightforward as it appears, since there is a process that occurs in the middle.

Because you will not go to the kitchen to pick up your order or tell the cooking crew what you want, the waiter will play a vital role in this situation.

API also does the same by taking your request, and just like the waiter tells the system what you want and gives a response back to you.

Why would we need an API?

Here are a few reasons to use API:

  • The abbreviation for Application Programming Interface is API. API allows two separate software applications to communicate and exchange data.
  • It makes it easier to incorporate content from any website or application.
  • App components can be accessed using APIs. Services and information are delivered in a more flexible manner.
  • The generated content can be automatically published.
  • It enables a consumer or a business to personalize the material and services they utilize the most.
  • APIs assist in anticipating changes in software that must be made over time.

To sum up, the major reason APIs are so important in today’s marketplaces is because they enable speedier innovation. Change barriers are removed, and more people can contribute to the success of an organization. They have two advantages: they allow the company to generate better products while also distinguishing itself from the competitors.

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.

Docker

Hello and welcome to “Docker Containers’ Power.” Let’s take a closer look at what Docker containers have to offer in terms of the development process.

What is Docker?

Docker is an open-source project that automates application deployment into portable, self-contained containers that can run in the cloud or on-premises. Docker is also a firm that promotes and develops this technology, collaborating with cloud, Linux, and Windows manufacturers such as Microsoft.

Developers can use Windows, Linux, or macOS development environments. The developer launches a Docker host on the development computer, which deploys Docker images, containing the program and its dependencies. As far as I know, developers that work on Linux or macOS utilize a Linux-based Docker host and can only produce images for Linux containers. Developers using macOS can make changes to their code.

Docker Desktop for Windows or macOS is available to host containers in development environments and gives extra developer tools. These solutions set up a virtual machine (the Docker host) to run the containers. There are two types of runtimes for Windows Containers:

Windows Server Containers use process and namespace isolation technology to enable application isolation. A kernel is shared by a Windows Server Container, the container host, and any containers executing on the host.

By operating each container in a highly efficient virtual machine, Hyper-V Containers improve on the isolation given by Windows Server Containers. The kernel of the container host is not shared with the Hyper-V Containers in this setup, which provides better isolation. The images for these containers are made in the same way and have the same functionality. The difference is in the way the container is built from the image and operating a Hyper-V Container necessitates the use of an additional parameter.

Comparison of traditional virtual machines to Docker containers.

Infrastructure, Host Operating System, and Hypervisor are the three foundation layers of the host server for VMs, and each VM has its own OS and all necessary libraries on top of that. The container engine, which keeps containers isolated while sharing the base OS functions, is installed on top of the infrastructure and OS on the host server for Docker.

Containers are simple to deploy and start since they use considerably fewer resources (for example, they don’t require a full operating system). This allows you to have a higher density, which means you can operate more services on the same hardware unit and save money.

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.

UML Diagrams

Why do we need to know UML Diagrams?

UML diagrams can be used as a way to visualize a project before it takes place or as documentation for a project afterward. Seeing what you are doing and being able to measure where you are at in your project can help simplify the workloads and decrease the amount of stress that you may have. But the overall goal of UML diagrams is to allow teams to visualize how a project is or will be working.  

We have heard people say this word a lot: a picture is worth a thousand words. That’s why visualizing a process, especially during the development phase, is crucial for team communication and collaboration. The software development industry in the past has used dozens of ways to model and visualize development. 

We probably might ask what is exactly a UML? UML stands for Unified Modeling Language. It is a modeling language that is most often used for software engineering but has extended its use to business processes and other project workflows. Essentially, UML is visualizing software through diagrams. 

 Three software engineers at the company Rational Software for their projects have created this modeling language, and since it has become the standard with very few changes over the years. 

Software engineering and other business processes use UML diagrams to modeling their work which is a big part of today’s world.  

There are two main ways UML diagrams can be used:

  • Forward design. The modeling and design are all done before coding the software application. Usually, forward design is used to help developers better see the system they are trying to create. 
  • Backward design. The modeling is done after the code has been written, and the UML diagrams act as documentation for the workflow of the project. This can help developers see the project development as it was, in reality, to improve in the future.

Whether UML diagrams are used before or after the coding or project, they provide a way to visualize many aspects of a project and who is responsible for what activity.

I found that UML diagrams, help me to improve my coding skills. Being able to look at every aspect of my project design not only makes it easy but, also faster, especially when it comes to Object Oriented Programming. UML diagrams can be used as a way to visualize a project before it takes place or as documentation for a project afterward. 

From the blog CS@Worcester – Site Title by proctech21 and used with permission of the author. All other rights reserved by the author.