# Notes taken while going through tutorial

**URL:** https://discourse.chef.io/t/notes-taken-while-going-through-tutorial/12214
**Category:** Chef Habitat
**Created:** [October 15, 2016, 5:54am UTC](https://discourse.chef.io/t/notes-taken-while-going-through-tutorial/12214 "2016-10-15T05:54:09Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![aeden](https://avatars.discourse-cdn.com/v4/letter/a/f17d59/32.png) [@aeden](https://discourse.chef.io/u/aeden)
#### Post date: [October 15, 2016, 5:54am UTC](https://discourse.chef.io/t/notes-taken-while-going-through-tutorial/12214/1 "2016-10-15T05:54:09Z")

</div>

Don’t make me move the `hab` command manually when I install it.

As I went through the tutorial, I realized that a prerequisite is a decent internet connection. Without a good internet connection habitat is essentially unusable.

Ran into docker problems:

```auto
~/d/habitat-sh/habitat-example-plans/mytutorialapp [branch:master] hab studio enter
/usr/local/bin/docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See '/usr/local/bin/docker run --help'.

```

Unfortunately the help command did nothing to help in this case and I had to dig around in Google.

Finally found [http://stackoverflow.com/questions/21871479/docker-cant-connect-to-docker-daemon/34555007#34555007](http://stackoverflow.com/questions/21871479/docker-cant-connect-to-docker-daemon/34555007#34555007)

The first time I ran I had to run this:

```auto
docker-machine create --driver virtualbox default

```

The following must be run in the same shell where `hab studio enter` is run (thus I imagine this must be added to my bash profile or something similar:

```auto
eval $(docker-machine env default)

```

Tutorial indicates "Make sure Docker for Mac is running” - not enough.

By requiring docker, you inherit all of their problems.

When I built my artifact the first time I had vim running and it had not clean up temp files, resulting in the following when I attempted to run my built package:

```auto
~/d/habitat-sh/habitat-example-plans/mytutorialapp [branch:master] docker run -it -p 8080:8080 aeden/mytutorialapp
hab-sup(MN): Starting aeden/mytutorialapp
hab-sup(TP): Child process will run as user=hab, group=hab
hab-sup(GS): Supervisor 172.17.0.2: c1a9cb43-a76e-4380-9d29-01eb8646aead
hab-sup(GS): Census mytutorialapp.default: 4fa6e29c-6004-4a73-8745-acec9d868223
hab-sup(GS): Starting inbound gossip listener
hab-sup(GS): Starting outbound gossip distributor
hab-sup(GS): Starting gossip failure detector
hab-sup(CN): Starting census health adjuster
hab-sup(SC): Error parsing config template file /hab/pkgs/aeden/mytutorialapp/0.2.0/20161015052224/config/.config.json.swp: IOError
hab-sup(SC)[src/service_config.rs:170:27]: IOError(Error { repr: Custom(Custom { kind: InvalidData, error: StringError("stream did not contain valid UTF-8") }) })

```

I had to make sure temp files were cleaned up before running `build` in the studio.

Studio loses history (i.e. I can’t up-arrow to get commands I previously ran). It’s a shell but doesn’t act like one.

Downloading resources every time sucks. Cache those things.

Tutorial indicates I should be able to connect to localhost:8080 with a browser, however this does not work. I had to figure out what IP address the docker container was actually accessible on.

```auto
~/d/habitat-sh/habitat-example-plans/mytutorialapp/habitat/config [branch:master] docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
548835d6c57a aeden/mytutorialapp "/init.sh start aeden" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp, 9631/tcp mad_ritchie
~/d/habitat-sh/habitat-example-plans/mytutorialapp/habitat/config [branch:master] docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v1.12.2

```

I can connect to 192.168.99.100:8080

Anyhow, those are notes I took while running the tutorial.

---

<div class="post-metadata">

### Author: ![eeyun1](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/eeyun1/32/2658_2.png) [@eeyun1](https://discourse.chef.io/u/eeyun1)
#### Post date: [October 17, 2016, 7:48pm UTC](https://discourse.chef.io/t/notes-taken-while-going-through-tutorial/12214/2 "2016-10-17T19:48:38Z")

</div>

Definitely useful information for us and greatly appreciated @aeden.

A couple of the things you mentioned here appear to already have related issues open in GitHub but one of the things you said that is pretty interesting to me is that by binding the tutorial to docker we inherit their problems. I feel that pain, its a _real_ and unfortunately side-effect of not being able to run habitat natively on macOS.

Regardless, I want to make sure this gets sucked into the appropriate feedback loops on our side. Thank you _so_ much for taking the time to type up all of your notes and thoughts on this I’m positive we can use them to polish the new user experience.
