Skip to content

Commit

Permalink
Add the mdbook-chapter-path preprocessor, update internal links to us…
Browse files Browse the repository at this point in the history
…e it.
  • Loading branch information
younata committed May 30, 2021
1 parent 901e183 commit 905d131
Show file tree
Hide file tree
Showing 15 changed files with 40 additions and 29 deletions.
1 change: 1 addition & 0 deletions .spelling
Expand Up @@ -430,6 +430,7 @@ sigmet
hypoxic
hypemic
histotoxic
subcommands
- src/astronomy/astrophotography/index.md
Cafuego's
astrodslr
Expand Down
3 changes: 3 additions & 0 deletions book.toml
Expand Up @@ -19,3 +19,6 @@ edit-url-template = "https://github.com/younata/personal_knowledge/edit/master/{
[preprocessor.section-validator]
hide_invalid = false
invalid_message = "🚨 Warning, this content is out of date and is included for historical reasons."

[preprocessor.chapter-path]
strict = true
2 changes: 1 addition & 1 deletion src/cli/fastlane.md
@@ -1,6 +1,6 @@
# Fastlane

[Fastlane](https://fastlane.tools) is a set of ruby tooling to make mobile development suck a lot less. I use it to automate a lot of the shitty parts of [iOS development](../programming/apple/ios/index.md).
[Fastlane](https://fastlane.tools) is a set of ruby tooling to make mobile development suck a lot less. I use it to automate a lot of the shitty parts of [iOS development]({{#path_for iOS Development}}).

## Scan

Expand Down
2 changes: 1 addition & 1 deletion src/flying/flight_writeups/2019-06-21.md
@@ -1,6 +1,6 @@
# 2019-06-21

This flight was super fun. The plan was to take off from SMO, fly out out to Malibu, do some [stalls](../maneuvers.md#stalls) along the way, and then do [ground reference maneuvers](../maneuvers.md#ground-reference-maneuvers) over and around Point Dume. Afterwards, the plan was to head back do a little bit of pattern work around SMO.
This flight was super fun. The plan was to take off from SMO, fly out out to Malibu, do some [stalls]({{#path_for Flight Maneuvers#stalls}}) along the way, and then do [ground reference maneuvers]({{#path_for Flight Maneuvers#ground-reference-maneuvers}}) over and around Point Dume. Afterwards, the plan was to head back do a little bit of pattern work around SMO.

[Here's the flight track for the entire flight](https://flightaware.com/live/flight/N801PS/history/20190621/2251ZZ/KSMO/KSMO)

Expand Down
6 changes: 3 additions & 3 deletions src/flying/ifr/README.md
Expand Up @@ -2,9 +2,9 @@

Operating an aircraft solely by reference to instruments.

- [Altitudes](./altitudes.md) covers IFR altitude names. Also includes the definition of what you must see in order to descend below the DA/MDA.
- [Approaches](./approaches.md) covers Instrument approaches and related topics.
- [Navigation](./navigation.md) covers IFR navigation methods.
- [Altitudes]({{#path_for Altitudes}}) covers IFR altitude names. Also includes the definition of what you must see in order to descend below the DA/MDA.
- [Approaches]({{#path_for Approaches}}) covers Instrument approaches and related topics.
- [Navigation]({{#path_for Navigation Systems}}) covers IFR navigation methods.

## Mandatory Reporting Events

Expand Down
10 changes: 1 addition & 9 deletions src/flying/maneuvers.md
@@ -1,17 +1,9 @@
# Maneuvers
# Flight Maneuvers

Basic flight maneuvers. Mostly notes from Chapter 4 of the [Airplane Flying Handbook](https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/airplane_handbook/).

Standard disclaimer for my other flying notes: I’m not a CFI. Hell, as of this writing, I’m not even a private pilot. Don’t take this as flight instruction.

## Defined Minimum Maneuvering Speed

After speaking with my CFI on this: Yes, don't let the airplane get too slow, but also don't put in that 30 degree bank. Also, there's not much need to get "light in your seat" on an engine failure: pitch for best glide.

[This FlightChops video](https://www.youtube.com/watch?v=m_tKShlf_gU) is... perhaps the most valuable FlightChops video I've ever seen. In it, Dan Gryder talks about applying a Defined Minimum Maneuvering Speed as the minimum airspeed to maintain in every phase of flight except for short final. He defines it as 1.404 * V<sub>s1</sub>. For example, on a [sportcruiser](https://en.wikipedia.org/wiki/CZAW_SportCruiser) V<sub>s1</sub> is 39 kts. 39 knots * 1.404 = 54.756, or 55 kts. So, don't fly slower than 55 kts in a clean condition.

The 1.404 number comes from applying a 1.3 buffer on top of V<sub>s1</sub>, plus an additional 8% on top of that, to account for a potential 30 degree bank.

## Stalls

Stalls occur when the angle of the airflow relative to the cord of the wing exceeds a certain “critical angle”. When this critical angle is reached, the lift generated by the wing drops to near-zero[^lift not zero].
Expand Down
3 changes: 2 additions & 1 deletion src/flying/weather/README.md
@@ -1,6 +1,7 @@
# Weather

- [Briefings](./briefings.md) covers receiving weather briefings. It could use a lot of fleshing out.
- [Briefings]({{#path_for Briefings}}) covers receiving weather briefings. It could use a lot of fleshing out.
- [Icing]({{#path_for Icing}}) covers icing specifically.

## Weather Forecast and Advisories

Expand Down
4 changes: 2 additions & 2 deletions src/hardware/electric_plane/README.md
Expand Up @@ -12,7 +12,7 @@ Currently, I estimate I can get approximately 300 statute miles with no reserves

## Battery System

[Main page here](./battery_system.md)
[Main page here]({{#path_for Battery System}})

When I started this project, I thought I might use salvaged Tesla batteries. As I did more research I realized that the Tesla battery packs are severely over engineered for my needs [^battery heating]. I can build a battery system that’ll be not as good as a Tesla system, but it’ll be good enough, and much lighter than a Tesla system.

Expand Down Expand Up @@ -74,7 +74,7 @@ I still might build motors into the wheels, but not hook them up to anything, th

### Solar Wings

TL;DR: It’s not worth it. Yet.
TL;DR: It’s not worth it.

For the planes I’m considering, I have about 130 square feet total wing area. With the most efficient solar cells available on the market, I expect to get approximately 25 watts per square foot, or about 3 kilowatts for the entire wing. For reasons, I expect to only be able to utilize at most 2/3rds of the total wing area. Reducing this down to 2 kilowatts at most (realistically, closer to only 1). This is not useful whatsoever for extending the duration of flight (It would add on the order of 10 minutes total duration), which means that it’s only useful for charging, either to supplement grid power (that’ll be a fun challenge), or when grid power is not available.

Expand Down
2 changes: 1 addition & 1 deletion src/hardware/electric_plane/battery_system.md
Expand Up @@ -8,7 +8,7 @@ The current thought involves 27 12s13p modules, 9 modules in series, and 3 in pa

## BMS

[Has it's own page](./bms.md)
[Has it's own page]({{#path_for Battery Monitoring System}})

## Charger

Expand Down
2 changes: 1 addition & 1 deletion src/programming/apple/ios/README.md
@@ -1,4 +1,4 @@
# iOS
# iOS Development

## Preventing device sleep

Expand Down
2 changes: 1 addition & 1 deletion src/programming/apple/mac/README.md
@@ -1,3 +1,3 @@
# Mac
# Mac Development

For developing cocoa-based programs.
2 changes: 1 addition & 1 deletion src/programming/ci/README.md
Expand Up @@ -2,4 +2,4 @@

I have a lot of thoughts on CI/CD.

My preferred CI system is [concourse](https://concourse-ci.org). Notes on that are [here](concourse.md).
My preferred CI system is [concourse](https://concourse-ci.org). Notes on that are [here]({{#path_for Concourse}}).
26 changes: 20 additions & 6 deletions src/programming/ci/concourse.md
Expand Up @@ -4,7 +4,21 @@

You shouldn't make a habit of doing this, but here's a [link to a script that'll inline task definitions](https://github.com/krishicks/concourse-pipeline-steamroller), for the rare case when you want a one-off task definition.

## Concourse on Linode
## The `fly` CLI

### Examining a build container

`fly` gives you shell access to a build container via the unfortunately named `hijack`, `intercept` or `i` subcommands.

There are several ways to do this:

- If you know the pipeline/job Id, and can guess which build type to examine, you can run `fly intercept -j $JOB_ID`, which will check for containers with that job id, and if there's any confusion about the exact container, it'll prompt you to pick a container.
- You can get the list of containers via the `containers` or `cs` subcommands (`fly cs`). This'll output table of available containers. Find the container you want, and pass the handle UUID to `fly intercept` with the `--handle=` (e.g. `fly intercept --handle=12345678-90ab-cdef-1234-567890abcdef`).
- From the table `fly cs` gives you, you can also pass in the build id for the container you want (`fly intercept -b $BUILD_ID`). This is less accurate than the handle UUID, so for any confusion, it'll prompt you for the exact container.

## Operating

### Concourse on Linode

Some notes on running Concourse from a linode box:

Expand All @@ -14,17 +28,17 @@ Some notes on running Concourse from a linode box:

As with the other services I maintain, the setup is managed inside of an ansible playbook.

### Issues
#### Issues

I discovered the hard way that using the 1GB "nanode" plan was not a good plan. The disk very quickly filled up, in addition to everything being slow as molasses. Once I migrated the machine to the 2GB plan, I ran into issues with the volume space not being resized (concourse creates a worker volume logical volume with `$TOTAL_DISK_SPACE - 10GB` of space), then further issues with the system thinking that a volumes which were deleted in fact weren't, etc.

#### Worker.beacon.forward-conn.failed-to-dial
##### Worker.beacon.forward-conn.failed-to-dial

See [this issue](https://github.com/concourse/concourse/issues/3493)

Remove `$CONCOURSE_WORK_DIR/garden-properties.json` before each time a worker starts.

#### Unable to resolve host error
##### Unable to resolve host error

I ran in to this issue when "upgrading" the host my concourse installation used from ubuntu 19.10 to 20.04. (Linode recommends you "upgrade" by creating a new instance at the desired OS, and copying over the necessary files - I just set everything up again because it was faster/easier to do it that way).

Expand All @@ -33,7 +47,7 @@ Sometimes, firewall or dns rules interfere with your workers. I resolved this by
- Specifying the `CONCOURSE_GARDEN_DNS_SERVER` variable to a specific dns server (I use 1.1.1.1 so I don't have to rely on Google).
- If that doesn't work, then it's usually a firewall rule. If you use `fly intercept` on any of the offending gets, and you can't ping ANY IPs, then it's usually an overly restrictive firewall rule. You can adjust these with `ufw` on ubuntu (or `iptables` elsewhere).

#### Resizing the Worker Volume
##### Resizing the Worker Volume

See [this issue](https://github.com/concourse/concourse/issues/1751#issuecomment-371944140).

Expand All @@ -57,7 +71,7 @@ sudo reboot

Pruning the worker (which really only needs to happen before the reboot) tells concourse to ignore any volumes that may or may not exist. Invoking `land-worker` may or may not actually do things.

## Darwin Worker
### Darwin Worker

I wrote something on this [a few years back](https://blog.rachelbrindle.com/2016/11/08/concourse-mac-worker/). Which is, of course, out of date (at least, in regard to houdini).

Expand Down
2 changes: 1 addition & 1 deletion src/programming/testing/README.md
Expand Up @@ -14,7 +14,7 @@ No. Tests provide automated and repeatable use cases for the code. Without them,

With automated, repeatable tests, the only difference is that the verification procedure is written in code. This allows your computer to follow those steps, which it can do in orders of magnitude less time than you can, with much higher attention to detail than you can continuously give it. Additionally, it allows you to more tightly control all the inputs and outputs, so you know precisely what caused a bit of code to go wrong.

Additionally, anyone else who works with you now has a simple script they can run to verify that your changes work, instead of having to look up and follow your documentation to try to figure out what you did to test it. This can even be generalized into an external environment that automatically runs the test script to determine whether or not your changes are good - something which is called [continuous integration](../ci/index.md)
Additionally, anyone else who works with you now has a simple script they can run to verify that your changes work, instead of having to look up and follow your documentation to try to figure out what you did to test it. This can even be generalized into an external environment that automatically runs the test script to determine whether or not your changes are good - something which is called [continuous integration]({{#path_for Continuous Integration}})

## Why TDD

Expand Down
2 changes: 1 addition & 1 deletion src/programming/web/markdown.md
Expand Up @@ -2,4 +2,4 @@

See [this cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#tables).

Remember that you can still inline [html](./html.html) inside markdown, as markdown, generally, is compiled down to html anyway.
Remember that you can still inline [html]({{#path_for HTML}}) inside markdown, as markdown, generally, is compiled down to html anyway.

0 comments on commit 905d131

Please sign in to comment.