This week my teammates and I talked about the tools and developing environment best suited for our project. Because we all have a different operating system on our computers, we decided to use Docker. Although I have briefly utilized it in my Cloud Dev class, I still have more to learn.
So I made a list of questions, did some research to understand the fundamentals, and this is what I found:
Why even talk about Docker?
Because Docker makes the application(s) we are building/running more portable across different Operating Systems, which makes it easier to share and work with other people.
What is Docker?
Docker is an open-source software platform that we can use to build, run, and share any application, anywhere.
How does it work?
Docker is comprised of a dockerfile, an image(s), and a container(s).
Docker can encapsulate an application and all its parts, which includes the dependencies associated with it. This becomes an isolated environment, containing everything the app needs to run – this is a container.
In order to create a container, we need an image. An image is a file that contains a template-like set of instructions used to execute code in the container. The image has everything needed to run a containerized application, including code, config files, environment variables, libraries and runtimes.
Docker can create an image file by reading the specifications in a dockerfile. The dockerfile contains a set of instructions that tells our machine how to build our environment.
What are some benefits of Docker?
- Consistent and isolated environment
- Ability to run anywhere
- Light weight (compared to a Virtual Machine)
- Fast configurations
Is this all there is about Docker?
Not really. There is so much more about this topic, but I just wanted to talk about the basics. Honestly, some of the reading went over my head, and I guess the best way to learn more is to play around and use the tools that Docker offers.
My team and I finally decided on a protect. Our first choice out of five project plans is Citizen Science App for Kids. I’m very excited to get started and work with other people.
The Citizen Science app for kids is aim to spark K-12 students’ interest in science and let them contribute to a real live scientific project. It’s an educational platform where educators can create projects for their students to join. For example, using the app to document the sightings of threatened frogs in NSW National Park to understanding where they live, which helps improve their chance of survival in the future. We will create a similar platform where kids can get involved while having fun. More details about the specifics of the app can be found here.
Our team is comprised of 3 students. We have been in constant communication and have a set of teamwork standards to work in the most effective manner. We are in different time zone around the world, up to 9 hours difference, which can be challenging for allocating time for meetings. But so far everything has been working out, and we are planning on meeting up again to work on our detailed project plan.
Rough Draft Plan
Hello, my name is Leyden and a southern California native. I graduated from UCSD with a B.S in Environmental Engineering. While working in the field seemed very appealing at first, I realized that it’s not for me. I wanted something more challenging and mentally stimulating. So I decided to give computer science a try.
This decision was ironic and unexpected, really. Back when I was at UCSD, I had to take a MATLAB class. I considered that coding, and it was the most tedious, agonizing, and the most hated class in all of my undergrad career.
Soon after graduating, I took a java class at my local community college and I loved it. I enjoyed the challenges, the mind puzzles, and how there is always more than one way to solve a problem, which led me to pursue a degree in CS.
Now, here I am taking my very last class at OSU. It’s bittersweet, but I’m excited (and a little bit scared) about what is to come next.