Category Archives: #CS

Retrospective 1

When I saw the assigned group for the project, I had no idea who the people were. I saw the familiar faces, but did not know anyone’s name. On the first day of us seeing each other, we had a good greeting, even though we were missing two people. That day we all just talked about our repository, discord, and how to access them. We also talked about who will be the scrum master, for the project. The day went smooth like a butter.

On to the next week, all 6 of us were there and our scrum master (Vien) already had in his mind what to do for the project and how the planning should be, while all I did over the weekend was sleeping. Our scrum master divided the group into two, Frontend and Backend. I choose to be on the frontend team as I kind of wanted to learn more about frameworks such as Vue, React, or Angular. As I cloned the repository to my local machine, I had no idea what I was looking at, the docker images were wrong, the form for guest info did not open all the contents, the styling of the form was not responsive, and so on. Our (frontend team) first task was to refactor the frontend repo using vue.js and this is exactly what I wanted, I wanted to get more in depth with Vue.

On the third week, our scrum master already put up a lot of issues in the issue board, and I was so happy he did it. There was already a branch called refactor-branch which was created by our scrum master, and it had two components inside it. Frontend had 2 separate parts to complete. When a page reloads for the first time, it should only show an option for guest ID and nothing else, once the guest enters the ID, the rest of the form should display. Our main goal for that week was to display the rest of the form when the user clicks the submit button. One of my teammate refactored the guest login while the other teammate did the rest of the form in vue.js, and I connected both of their work/component in the main app.vue.

Fourth week, our side of the project were starting to look well, but there were still lots of work for us to do. Although I connected the two components together based on the button, it had its flaws, the form opened and closed once the user enters all 7 digits of their ID. To make it short and easy to understand, the button acted like a switch for a light. If a user clicks once, the form shows and when a user clicks again then the form hides plus the form stayed there even if a user removed their ID. It was a little success from my side, but in general, It looked lame, and I felt stupid. In order to fix that, I made little changes in the id-input component, and I was able to get the form to show only once and when a user removes even one digit from the search input then the form hides until he/she enter all 7 digits again. link.

5th week, Everything was going smooth. Teammates were adding small little important details here and there but at the end, who would want to use a form that has no style right? So I took a task to style the whole form which was left by previous students. And at the end I was able to get the form to look decent, although we might change the style or import one from the existing website.

At the end of the sprint, when my teammate displayed the form in a larger screen than my personal device, I noticed that the form stretches with the screen size. I managed to make form adjustable in phone screen, but I forgot about the screen that’s bigger than my computer, so I fixed it by setting a max width here.

Overall, I think our spring went well. The frontend side did a pretty good job and I when I looked over all the commits in the backend repositories, I noticed that they have been working even harder than the frontend team. In my opinion, I think it would be better to have only 2 people on the frontend and have 3 people for the backend while scrum master looks over all the infracture/review for the tasks. As for myself, I need to discuss more with my group about my work and share everything. With all due respect to my teammates, I don’t think we could have done this well without our scrum master (Vien) who have a good vision and I can tell that he is really putting all of his time to this project. Overall, I’m glad I’m working with this amazing team.

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

Concrete Skills

This pattern starts off with a strong quote by Pele McBreen by saying, “Having knowledge is not the same as having the skill and practical ability to apply that knowledge to create software applications. This is where craftsmanship comes in”. I agree 100% to this quote. Until I was a junior, I had no idea where to apply my coding skills I learned this far from classes such as cs140, cs101, cs242 or any computer science classes. Then I decided to think of some side projects I can do, or I can try to do, and the first thought was a discord bot. I did create a discord bot for a group of mobile gamers using java. The bot basically returned how much time is left for a game tournament, and the bot also greeted every new members that came to the group. This was a fun project, but it was not enough for me, so I decided to focus on a project which I can keep on building overtime. Something to enhanced my both frontend and backend skill, so in order to do that I made my own simple static website with the custom domain name of sandeshgurung.com. Now my primary goal is to add more content to my website while also showing my skills at the same time.

As for the pattern, it felt like what I need to read at the moment as I am applying for jobs, intern, or any contract jobs. The context is to get a hold of a talented team of craftsmen who can provide me with a better learning opportunities than I currently have. The problem is that no team or company want to hire someone who can slow them down or even can be any help to them at all. The solution is to acquire some concrete skills that would get me past the crude HR filters and managers. Some concrete skills examples can be writing build files which many open source frameworks such as Vue.js that we are using for our capstone project.

The best knowledge I got from this pattern is from the Action section, which basically said to get the CV from the people whose skills I respect. Locate their skills and identify which can be immediately useful on the type of team I want to join. Plan a project based on that skill and implement it.

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

Expose your ignorance

This week, I chose to write on the pattern “Expose your ignorance.” This pattern describes how a company pays you to work as a software developer and expects you to know what you’re doing. The issue is that you are inexperienced with some essential technologies, and the manager and staff require assurance that you will be able to deliver the software on time. Everyone around you, including your management, client, and coworkers, as well as yourself, is under a lot of pressure to provide software. When individuals ask how long feature X will take you to complete, you can sense their demand for assurance in their eyes. Asking questions is the most obvious method to reveal your ignorance. This is easier said than done, especially when the person asking assumes you already know the answer.

This pattern, in my opinion, is critical for anyone who wants to or is now working as a software developer. At first, I assumed that becoming a software developer was all about learning which programming languages and which ones are the best.
But, in the end, it’s all about how quickly you can solve the problem and provide the finished software. I liked how this pattern encourages people to ask questions even if it means sacrificing their pride and dignity, and I believe it is the most significant thing I learned from it. One of the most significant skills a craftsman can have is the ability to learn new things, identify areas of ignorance, and seek to eliminate them. Ignorance, like dry areas in a garden, can be reduced by planting seeds of knowledge. Experiment, practice, and reading will help you water your seeds. You can choose to hide these bare patches from the light, embarrassed by their size, covering them to keep your pride intact. Or you can decide to expose them, being honest with yourself and the people who are depending on you, and asking for help. I really liked this pattern as it says to get rid of your ignorance or find your ignorance even if it means to sacrifice your pride. It is all about having the ability to learn new things from others and asking for their help in need. By the end, you will have in depth knowledge of a few threads of technology. With these threads, you can weave together robust software applications on a few platforms and domains.

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

Apprenticeship Patterns Chapter 1 and introduction of 2-6 chapters

Chapter 1 apprenticeship pattern was an interesting chapter to read. I really liked Dave’s story because it felt similar to mine, especially when he said “I ended up truly feeling like a dummy, and gave up because everything seemed so difficult”. Also, I really liked the definition of what it means to be an apprentice by Marten Gustafson, he said that it means having the attitude that there is always a better/smarter/faster way to do what I just did and what I am currently doing. As everything is evolving in our world, if we look at 2000 and now, the difference is huge, and the same thing people did in 2000 it’s done better and smarter way. Apprenticeship is the state or process of evolving. Apprenticeship pattern means to offer a guidance to someone who is currently working with the crafts model on the ways in which they can improve the progress of their career. Overall in chapter 1, I really liked the way the author put the other people’s thoughts on what it means to be an apprentice, the definition, and the apprenticeship pattern.

On to the other chapters’ introduction, chapter 2’s introduction was an odd reading because I was clueless about what was happening and what was coming in next but the meaning behind the emptying your cup was really deep and meaningful which was to get rid of your price and bad habits to open yourself to more experienced colleagues. I learned 1 thing from chapter 3’s introduction, and it is that there will always be someone better than you, and there is no limit to the knowledge we can acquire. Chapter 4 introduction is nothing new because I think everyone knows that the goal is to be better than yesterday’s you. Chapter 5, I really liked the information provided at the end of the introduction. Reflect as I work, which leans to recording and sharing, then I need to learn how I failed. Chapter 6 introduction is all about constructing my own curriculum and which I think is one of the most important thing if we want to make progress in our career.

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

Introduction

Hi guys, I am Sandesh Gurung and this is my introductory blog post for CS-448.

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

API calls

We know api but how are they called?

The Uniform Resource Identifier (URI) of the server or external software whose data you desire is the first thing you need to know when making an API request.
This is essentially a digital version of a street address.
You won’t know where to send your request if you don’t have this. For example, the HubSpot API’s URI is https://api.wordpress.com. It’s worth noting that most APIs have several endpoints, each with its own set of end routes. Consider the case when you want to stream public tweets in real time. Then you could utilize the filtered stream endpoint on Twitter. The base path is https://api.twitter.com, which is shared by all endpoints.
/2/tweets/search/stream is the filtered stream endpoint. You can either add that to the end of the base path, or just list the endpoint in your request.

Add an http verb

Once you’ve got the URI, you’ll need to figure out how to make the request. The first thing you must include is a verb that expresses a request. The following are the four most fundamental request verbs: To retrieve a resource, use the GET command. To make a new resource, use the POST command. To alter or update an existing resource, use the PUT command. TO DELETE A RESOURCE, USE THE DELETE KEY. Let’s say you want to see a list of the nearest alternative fuel stations in Denver, Colorado, and you use NREL’s Alternative Fuel Station API. Then you’d make a GET request that looked something like this:

GET https://developer.nrel.gov/api/alt-fuel-stations/v1/nearest.json?api key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

This instructs the server to look for a list of alternative fuel stations in Denver in the database. If that list exists, the server will return an XML or JSON copy of the resource along with a 200 HTTP response code (OK). If that list doesn’t, then it will send back the HTTP response code 404 (not found).

Test API calls

Making API calls to various endpoints, receiving responses, and validating the status codes, response times, and data in those answers are all part of API testing. ReqBin, for example, is a software tool or web service that does this type of testing. Although the processes are similar, they will differ depending on whatever tool or service you use. The steps for utilizing ReqBin to test an API are listed below. Enter the URL of the API endpoint. Select the appropriate HTTP method like GET POST etc., Enter your credentials in the Authorization tab, Click Send to submit your API request.

Why this topic?

I chose this topic since it was the subject of a school assignment.
I followed the directions in the readme file you provided, but I wanted to learn more about why we use the GET method and why we use the POST method in which situations.
Overall, this topic piqued my interest, and I believe it is critical knowledge for all students aspiring to be software developers.

Link: https://blog.hubspot.com/website/api-calls

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

Two sides of web development coin

Frontend

A front-end developer takes the mockup of a website that a web designer has made and converts it into a functioning web solution that users can interact with. To do this, the developer divides the mockup into individual web components, such as buttons, sliders, photos, menus, forms, and so on, and then uses JavaScript to give these pieces specific behavior. Frontend developers achieve this split into discrete web page components using a variety of methods, with HTML: A Web Page’s Skeleton. Hypertext Markup Language is the abbreviation for HTML. It offers the framework for a website. To give a web page a certain structure, HTML includes several element identifiers called tags. Every web element has its own tag and place on the page. CSS: The flesh and blood of the web page. CSS is a technology that enables frontend developers to describe the style of each web page component using certain properties organized into rules. JavaScript is the most popular. This is one distinction between a front-end and back-end developer, each of whom works with a separate technological stack.

Backend

The engine of a website is the back end. On a site with simply a front end, click the Submit button under a form. Nothing is going to happen. Your website won’t be able to add new users or dynamically update content. The back end of a website comprises three important components. A database is a collection of data tables that are linked. Backend developers use a variety of database management systems (DBMS) to handle databases (Database Management Systems). MySQL and Oracle are two examples. The database is stored on a server, which is a computer. A web server is a particular program that operates on a physical server that sends data from a database and receives requests from a website. Apache HTTP Server is one example. The primary goal of a backend developer is to guarantee that the data flow is seamless and error free.

Conclusion

Web development is a multi-faceted process with a lot of activity components. While web developers have a variety of responsibilities, we may divide them into two groups. Frontend developers are in charge of the user-facing aspect of a web application. Backend developers, on the other hand, work with the hidden component of the system, which includes a database and a server. These two large teams collaborate to build aesthetically appealing and engaging websites and online apps.

Why this topic?

In my mind, the distinction between frontend and backend was hazy. I was aware of them, but I had the impression that if someone asked me what the difference between frontend and backend was, I would be unable to respond. So far, the best way to explain the distinction between frontend and backend is to use an automobile as an example. The frontend of an automobile should be created and shaped attractively, but without the engine, the car is meaningless. The engine, on the other hand, is the backend that brings all of the beautiful designs and colors to life on the road.

Link: https://www.psd2html.com/blog/a-frontend-vs-backend-developer-two-sides-of-the-web-development-coin.html

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

MongoDB

What is it?

MongoDB is an open-source database with a document-oriented data format and a non-structured query language. MongoDB Atlas is a globally accessible cloud database solution for modern applications. This best-in-class automation and well-established procedures enable completely managed MongoDB deployments on AWS, Google Cloud, and Azure. It also guarantees availability, scalability, and adherence to the most strict data security and privacy standards. MongoDB Cloud is a unified data platform that comprises a global cloud database, search, data lake, mobile, and application services, as well as a global cloud database.

Is MongoDB a SQL?

No. It is not. It is one of the most powerful NoSQL databases and systems available today. Because it is a NoSQL tool, it does not employ the traditional rows and columns associated with relational database administration. It is a collection-based and document-based architecture. A collection of key-value pairs is the basic unit of data in this database. It provides for varied fields and formats in documents. This database stores documents in the BSON format, which is a binary version of JSON.

Originated/Creation

Dwight Merriman, Eliot Horowitz, and Kevin Ryan found MongoDB in 2007. They decided to create a database to solve the difficulties of scalability and agility that they were seeing at DoubleClick. That’s when MongoDB came into existence. In 2009, the company made the move to open-source development, with commercial support and extra services offered. In 2013, the company’s name was changed to MongoDB Inc. from 10gen. It went public on NASDAQ as MDB on October 20, 2017, with an initial public offering (IPO) price of $24 per share. On October 30, 2019, it announced cooperation with Alibaba Cloud to deliver a MongoDB-as-a-Service solution to its clients. BABA’s managed services are available from any of the company’s data centers across the world.

Advantages of using MongoDB

MongoDB may be operated across globally scattered data centers and cloud regions, offering unprecedented levels of availability and scalability. Fast and Iterative Development: Your company’s project delivery will no longer be hampered by changing business needs. Developers can quickly design and update applications thanks to a flexible data format with changeable schema and powerful GUI and command-line tools. MongoDB’s versatile data model stores data in JSON-like documents, making data storage and combining simple. The document model is mapped to the objects in your application code, making data manipulation simple.

Why did I pick MongoDB?

I chose to study more about MongoDB after seeing a lot of MongoDB terminology in our class activities and homework assignment. I knew it was a No SQL database that used the JSON format, but I didn’t know much else. I learned about MongoDB’s history, including how it was formed, when it was created, who built it, and why it was created. I also studied how MongoDB differs from other databases like MySQL, Cassandra, and RDBMS. The advantages of using MongoDB were the most that impressed me.

Link: https://intellipaat.com/blog/what-is-mongodb/#no1

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

Software Frameworks

What are they?

A software framework is a structural or conceptual platform that allows developers and users to selectively specialize or override common code with generic capabilities. Frameworks are libraries that have a well-defined application program interface (API) that may be used anywhere in the product being developed. Software frameworks are adaptable, resilient, and efficient because they are frequently designed, tested, and optimized by numerous skilled software engineers and programmers. Developing apps with a software framework allows you to concentrate on the application’s high-level functionality. This is because the framework handles all of the low-level functions.

Top Frameworks

Angular

Angular is an HTML and TypeScript-based platform and framework for creating single-page client applications. TypeScript is used to write Angular. As a set of TypeScript libraries that you load into your apps, it implements core and optional functionality. An Angular application’s architecture is based on a few key ideas. The Angular framework’s fundamental building pieces are Angular components, which are arranged into NgModules. NgModules are functional groupings of linked code; an Angular application is defined by a set of NgModules. An application must include at least one root module to facilitate bootstrapping, and many more feature modules are common. Some popular website that used Angular are Netflix, Youtube, Django etc

Apache Spark

Apache Spark is a large-scale data processing engine with a unified analytics engine. Using Apache Spark, you can easily create apps in Java, Scala, Python, R, and SQL. Apache Spark can handle data from Hadoop Distributed File System (HDFS), NoSQL databases, and relational data stores like Apache Hive. Spark can do in-memory processing to improve the efficiency of big data analytics applications, but it can also perform traditional disk-based processing when data sets are too huge to fit into system memory. Some top companies that used Apache Spark are Amazon, Microsoft, Oracle, Visa wtc

Pytorch

Torch is an open-source machine learning tool based on the computer language Lua, while PyTorch is a Python machine learning package based on Torch. PyTorch, which was created by Facebook’s AI research lab, may be used with both Python and C++. PyTorch is a programming language that is used for computer vision and natural language processing (NLP). The following are some examples of popular websites built with PyTorch: Comcast, Exelon, Trifo, Quadient etc

Why this topic?

I’ve been hearing about frameworks for a long and have even had talks about them while not understanding anything about them. I learned what frameworks are, how they function, and which frameworks are most commonly utilized by well-known firms. I’ve also learned that as a developer, it’s important to understand what frameworks or programming languages I will need to create the application I desire.

link: https://hackr.io/blog/what-is-frameworks

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.

Docker

What is vs What isn’t

Docker is an infrastructure manager for Linux Containers. Docker is an excellent image distribution strategy for server templates created with configuration management systems like as Chef, Puppet, SaltStack, and others. Docker is not a replacement for Configuration Managers such as Chef, Puppet, SaltStack, and others. Docker offers a single store of public and private disk images that may be used to run a variety of operating systems (Ubuntu, Centos, Fedora, even Gentoo). Docker is not yet capable of connecting several servers or virtual machines.

When to use

Docker, like git or java, is a basic technology that you should start using in your everyday development and operations processes. You may use docker as a version control system for the complete operating system of your project. You can also use a docker to distribute/collaborate on your app’s operating system with a team. When your project has to go through many stages of development, use Docker. Try Drone or Shippable, both of which support Docker CI/CD. One of the best thing is that docker allows you to execute your code in the same environment as your server on your laptop.

Docker comparison

When you run java, you run the program on any system with a JVM, however, when you run docker, you run the code on any machine with a Docker server after you arrange your servers exactly the way you want them. Git tracks the changes in your code while docker tracks the changes in your system. In Docker, you can track changes throughout your entire system. GitHub is mainly though for code management, and Docker Hub is though for container build, management and distribution. They all work in the same way, despite the fact that they do various tasks.

Why docker

Since we’re already using Docker in class, why not take advantage of the extra time to learn more about it? I understood what Docker was but had never considered what it wasn’t, therefore this post helped me better comprehend what Docker isn’t. I’ve also discovered how docker is similar to both java and git, something I never considered before. I had no idea there were alternatives to Docker, such as the Amazon AMI Marketplace, which is the closest thing you’ll find to the Docker Index. With Docker, you can run the images on any Linux server that runs Docker. Another is the Warden project, which is an LXC manager designed for Cloud Foundry but lacks any of Docker’s social capabilities, such as sharing images with others on the Docker Index. The most important thing I learned is when to use docker.

https://www.ctl.io/developers/blog/post/what-is-docker-and-when-to-use-it/

From the blog cs@worcester – Dream to Reality by tamusandesh99 and used with permission of the author. All other rights reserved by the author.