SPEAKER 1: Yeah, hi.
So I'm from India.
And the question that I wanted to ask is--
for example, just yesterday, I was doing Week 3 [INAUDIBLE],,
and it took me three or four hours just to set it up properly.
And when I told the problem to a senior of mine,
what he told me is that you should go for a dockerized environment.
You should containerize your app so that you're
able to eliminate the force that you have to do to set up environment
variables and things like that.
So is Docker the way forward?
And are we going to see it and [INAUDIBLE] course in the future?
SPEAKER 2: Good question.
Kareem, do you want to take the first part?
KAREEM: Yes, sounds great.
So Docker is obviously one of the most popular tools or technologies that have
become very useful in the recent years.
In fact, pretty much all of our CSF feeds, what applications,
are backed by Docker.
And the [INAUDIBLE] idea itself is backed by Docker.
And it definitely makes a lot about the process of developing an application
or distributing an application easier in that it allows you
to what they call containerize their application or sort of package
it with all its dependencies all the version that you need.
So you don't have to worry about, would it
work on this system, would it work on this machine, what's installed here,
are there conflicting versions of packages that are maybe
required by other applications.
All of that stuff goes away.
That, of course, in addition to what your friend alluded to,
the Docker Hub, or the repository registry of Docker images
that exist online, from what you can pull
any number of looks sort of premade Docker images for you.
Among them is obviously Postgres, MySQL, different Python
versions, different versions of other tools and packages.
I personally use that.
I think it's definitely worth it to learn more about Docker
and start using it.
I think Brian, in his web class, if I recall correctly,
had one of the lecturers that introduced maybe Docker and Docker Compose.
Is that true, Brian?
BRIAN: Yeah, we do.
We try Docker.
SPEAKER 2: Sorry.
Brian?
KAREEM: Yeah.
BRIAN: Yes, we do introduce a little bit of Docker and Docker Compose
in the web programming class.
KAREEM: Yeah, so I would definitely take a look at that, for a start.
Docker also-- I think the documentation, the official documentation is great.
And I'm sure there's a numerous number of online tutorials
that you can look at and sort of get a sense of how Docker works
or how to get started using it.
SPEAKER 2: Indeed, and I know if you'd like to make it easier to get started,
I've just pasted into the chat window a tool that we use here in CS50's team
called CLI 50 for command line interface 50.
This essentially gives you what's called a headless environment.
So, no GUI.
It's just the black and white terminal window
that connects to your own macro PC so that you can run tools
like you're trying to on your own macro PC
without setting everything up manually yourself, like SQL light.
And this is actually a subset of what CS50 IDE is.
So Kareem has built a Docker image on top of this command line interface
image that adds more GUI features and other ITE-specific software.
So as Kareen notes, we use Docker for everything.
Whether it makes it into CS50 I think itself will depend on just
how user friendly it gets.
I think the reality is the Docker is pretty easy to get up
and running on Macs, at least newer Macs nowadays.
It's a little more of a headache on certain PCs.
And so that's not ideal, I think, for some students
to set up their own machines if they run into technical support difficulties
at the beginning of the class.
But it's on our radar.
And I would hope to answer one of our earlier questions,
too, at the same time--
that this is one of the kinds of technologies
that will get better and better over time
and make it even easier for students to use on their own machine.