diff --git a/INDEX.md b/INDEX.md new file mode 100644 index 00000000..3ba58a92 --- /dev/null +++ b/INDEX.md @@ -0,0 +1,1323 @@ +# Directory Index + +- [01_getting-started](01_getting-started) +- - [01_helloWorld](01_getting-started/01_helloWorld) +- - [02_numeral-systems](01_getting-started/02_numeral-systems) +- - - [01_decimal](01_getting-started/02_numeral-systems/01_decimal) +- - - [02_binary](01_getting-started/02_numeral-systems/02_binary) +- - - [03_hexadecimal](01_getting-started/02_numeral-systems/03_hexadecimal) +- - - [04_loop](01_getting-started/02_numeral-systems/04_loop) +- - [03_UTF-8](01_getting-started/03_UTF-8) +- [02_package](02_package) +- - [icomefromalaska](02_package/icomefromalaska) +- - [main](02_package/main) +- - [stringutil](02_package/stringutil) +- [03_variables](03_variables) +- - [01_shorthand](03_variables/01_shorthand) +- - - [01](03_variables/01_shorthand/01) +- - - [02](03_variables/01_shorthand/02) +- - [02_var_zero-value](03_variables/02_var_zero-value) +- - [03_less-emphasis](03_variables/03_less-emphasis) +- - - [01_declare-variable](03_variables/03_less-emphasis/01_declare-variable) +- - - [02_declare-many-at-once](03_variables/03_less-emphasis/02_declare-many-at-once) +- - - [03_init-many-at-once](03_variables/03_less-emphasis/03_init-many-at-once) +- - - [04_infer-type](03_variables/03_less-emphasis/04_infer-type) +- - - [05_infer-mixed-up-types](03_variables/03_less-emphasis/05_infer-mixed-up-types) +- - - [06_init-shorthand](03_variables/03_less-emphasis/06_init-shorthand) +- - - [07_all-together](03_variables/03_less-emphasis/07_all-together) +- - - [08_exercise_your-name](03_variables/03_less-emphasis/08_exercise_your-name) +- - - - [01_oneSolution](03_variables/03_less-emphasis/08_exercise_your-name/01_oneSolution) +- - - - [02_anotherSolution](03_variables/03_less-emphasis/08_exercise_your-name/02_anotherSolution) +- - - - [03_anotherSolution](03_variables/03_less-emphasis/08_exercise_your-name/03_anotherSolution) +- - - - [04_anotherSolution](03_variables/03_less-emphasis/08_exercise_your-name/04_anotherSolution) +- [04_scope](04_scope) +- - [01_package-scope](04_scope/01_package-scope) +- - - [01](04_scope/01_package-scope/01) +- - - [02_visibility](04_scope/01_package-scope/02_visibility) +- - - - [main](04_scope/01_package-scope/02_visibility/main) +- - - - [vis](04_scope/01_package-scope/02_visibility/vis) +- - [02_block-scope](04_scope/02_block-scope) +- - - [01_this-does-not-compile](04_scope/02_block-scope/01_this-does-not-compile) +- - - [02_closure](04_scope/02_block-scope/02_closure) +- - - - [01](04_scope/02_block-scope/02_closure/01) +- - - - [02](04_scope/02_block-scope/02_closure/02) +- - - - [03](04_scope/02_block-scope/02_closure/03) +- - - - [04](04_scope/02_block-scope/02_closure/04) +- - [03_order-matters](04_scope/03_order-matters) +- - [04_variable-shadowing](04_scope/04_variable-shadowing) +- - [05_same-package](04_scope/05_same-package) +- [05_blank-identifier](05_blank-identifier) +- - [01_invalid-code](05_blank-identifier/01_invalid-code) +- - [02_http-get_example](05_blank-identifier/02_http-get_example) +- - - [01_with-error-checking](05_blank-identifier/02_http-get_example/01_with-error-checking) +- - - [02_no-error-checking](05_blank-identifier/02_http-get_example/02_no-error-checking) +- [06_constants](06_constants) +- - [01_constant](06_constants/01_constant) +- - [02_multiple-initialization](06_constants/02_multiple-initialization) +- - [03_iota](06_constants/03_iota) +- - [04_iota](06_constants/04_iota) +- - [05_iota](06_constants/05_iota) +- - [06_iota](06_constants/06_iota) +- - [07_iota](06_constants/07_iota) +- [07_memory-address](07_memory-address) +- - [01_showing-address](07_memory-address/01_showing-address) +- - [02_using-address](07_memory-address/02_using-address) +- [08_pointers](08_pointers) +- - [01_referencing](08_pointers/01_referencing) +- - [02_dereferencing](08_pointers/02_dereferencing) +- - [03_using-pointers](08_pointers/03_using-pointers) +- - [04_using-pointers](08_pointers/04_using-pointers) +- - - [01_no-pointer](08_pointers/04_using-pointers/01_no-pointer) +- - - - [01](08_pointers/04_using-pointers/01_no-pointer/01) +- - - - [02_see-the-addresses](08_pointers/04_using-pointers/01_no-pointer/02_see-the-addresses) +- - - [02_pointer](08_pointers/04_using-pointers/02_pointer) +- - - - [01](08_pointers/04_using-pointers/02_pointer/01) +- - - - [02_see-the-addresses](08_pointers/04_using-pointers/02_pointer/02_see-the-addresses) +- [09_remainder](09_remainder) +- [10_for-loop](10_for-loop) +- - [01_init-condition-post](10_for-loop/01_init-condition-post) +- - [02_nested](10_for-loop/02_nested) +- - [03_for-condition-while-ish](10_for-loop/03_for-condition-while-ish) +- - [04_for_no-condition](10_for-loop/04_for_no-condition) +- - [05_for_break](10_for-loop/05_for_break) +- - [06_for_continue](10_for-loop/06_for_continue) +- - [07_rune-loop_UTF8](10_for-loop/07_rune-loop_UTF8) +- - - [01](10_for-loop/07_rune-loop_UTF8/01) +- - - [02](10_for-loop/07_rune-loop_UTF8/02) +- [11_switch-statements](11_switch-statements) +- - [01_switch](11_switch-statements/01_switch) +- - [02_fallthrough](11_switch-statements/02_fallthrough) +- - [03_multiple-evals](11_switch-statements/03_multiple-evals) +- - [04_no-expression](11_switch-statements/04_no-expression) +- - [05_on-type](11_switch-statements/05_on-type) +- [12_if_else-if_else](12_if_else-if_else) +- - [01_eval-true](12_if_else-if_else/01_eval-true) +- - [02_not-exclamation](12_if_else-if_else/02_not-exclamation) +- - [03_init-statement](12_if_else-if_else/03_init-statement) +- - [04_init-statement_error_invalid-code](12_if_else-if_else/04_init-statement_error_invalid-code) +- - [05_if-else](12_if_else-if_else/05_if-else) +- - [06_if-elseif-else](12_if_else-if_else/06_if-elseif-else) +- - [07_if-elseif-elseif-else](12_if_else-if_else/07_if-elseif-elseif-else) +- - [08_divisibleByThree](12_if_else-if_else/08_divisibleByThree) +- [13_exercise-solutions](13_exercise-solutions) +- - [01_hello-world](13_exercise-solutions/01_hello-world) +- - [02_hello-NAME](13_exercise-solutions/02_hello-NAME) +- - [03_hello-user-input](13_exercise-solutions/03_hello-user-input) +- - [04_user-enters-numbers](13_exercise-solutions/04_user-enters-numbers) +- - [05_even-numbers](13_exercise-solutions/05_even-numbers) +- - [06_fizzBuzz](13_exercise-solutions/06_fizzBuzz) +- - [07_threeFive](13_exercise-solutions/07_threeFive) +- - [08_just-fyi](13_exercise-solutions/08_just-fyi) +- - - [01_benchMark](13_exercise-solutions/08_just-fyi/01_benchMark) +- - - [02_benchMark](13_exercise-solutions/08_just-fyi/02_benchMark) +- - - [03_utf](13_exercise-solutions/08_just-fyi/03_utf) +- [14_functions](14_functions) +- - [01_main](14_functions/01_main) +- - [02_param-arg](14_functions/02_param-arg) +- - [03_two-params](14_functions/03_two-params) +- - - [01](14_functions/03_two-params/01) +- - - [02](14_functions/03_two-params/02) +- - [04_return](14_functions/04_return) +- - [05_return-naming](14_functions/05_return-naming) +- - [06_return-multiple](14_functions/06_return-multiple) +- - [07_variadic-params](14_functions/07_variadic-params) +- - [08_variadic-args](14_functions/08_variadic-args) +- - [09_slice-param-arg](14_functions/09_slice-param-arg) +- - [10_func-expression](14_functions/10_func-expression) +- - - [01_before-func-expression](14_functions/10_func-expression/01_before-func-expression) +- - - [02_func-expression](14_functions/10_func-expression/02_func-expression) +- - - [03_func-expression_shows-type](14_functions/10_func-expression/03_func-expression_shows-type) +- - - [04_another-way_func-expression](14_functions/10_func-expression/04_another-way_func-expression) +- - - [05_another-way_func-expression_shows-type](14_functions/10_func-expression/05_another-way_func-expression_shows-type) +- - [11_closure](14_functions/11_closure) +- - - [01](14_functions/11_closure/01) +- - - [02](14_functions/11_closure/02) +- - - [03](14_functions/11_closure/03) +- - - [04](14_functions/11_closure/04) +- - - [05](14_functions/11_closure/05) +- - [12_callbacks](14_functions/12_callbacks) +- - - [01_print-nums](14_functions/12_callbacks/01_print-nums) +- - - [02_filter-nums](14_functions/12_callbacks/02_filter-nums) +- - [13_recursion](14_functions/13_recursion) +- - [14_defer](14_functions/14_defer) +- - - [01_no-defer](14_functions/14_defer/01_no-defer) +- - - [02_with-defer](14_functions/14_defer/02_with-defer) +- - [15_passing-by-value](14_functions/15_passing-by-value) +- - - [01_int](14_functions/15_passing-by-value/01_int) +- - - [02_int-pointer](14_functions/15_passing-by-value/02_int-pointer) +- - - [03_string](14_functions/15_passing-by-value/03_string) +- - - [04_string-pointer](14_functions/15_passing-by-value/04_string-pointer) +- - - [05_REFERENCE-TYPE](14_functions/15_passing-by-value/05_REFERENCE-TYPE) +- - - [06_REFERENCE-TYPE](14_functions/15_passing-by-value/06_REFERENCE-TYPE) +- - - [07_struct-pointer](14_functions/15_passing-by-value/07_struct-pointer) +- - [16_anon_self-executing](14_functions/16_anon_self-executing) +- [15_bool-expressions](15_bool-expressions) +- - [01_true-false](15_bool-expressions/01_true-false) +- - [02_not](15_bool-expressions/02_not) +- - [03_or](15_bool-expressions/03_or) +- - [04_and](15_bool-expressions/04_and) +- [16_exercise-solutions](16_exercise-solutions) +- - [01_half](16_exercise-solutions/01_half) +- - - [01](16_exercise-solutions/01_half/01) +- - - [02](16_exercise-solutions/01_half/02) +- - [02_func-expression](16_exercise-solutions/02_func-expression) +- - [03_variadic-greatest](16_exercise-solutions/03_variadic-greatest) +- - [04_bool-expression](16_exercise-solutions/04_bool-expression) +- - [05_params-and-args](16_exercise-solutions/05_params-and-args) +- [17_array](17_array) +- - [01](17_array/01) +- - [02](17_array/02) +- - [03](17_array/03) +- - [04](17_array/04) +- - [05](17_array/05) +- [18_slice](18_slice) +- - [01_int-slice](18_slice/01_int-slice) +- - [02_int-slice](18_slice/02_int-slice) +- - [03_int-slice](18_slice/03_int-slice) +- - [04_string-slice](18_slice/04_string-slice) +- - [05_slicing-a-slice](18_slice/05_slicing-a-slice) +- - - [01](18_slice/05_slicing-a-slice/01) +- - - [02](18_slice/05_slicing-a-slice/02) +- - [06_make](18_slice/06_make) +- - [07_append-invalid](18_slice/07_append-invalid) +- - [08_append](18_slice/08_append) +- - [09_append-beyond-capacity](18_slice/09_append-beyond-capacity) +- - [10_append_slice-to-slice](18_slice/10_append_slice-to-slice) +- - - [01_slice-of-ints](18_slice/10_append_slice-to-slice/01_slice-of-ints) +- - - [02_slice-of-strings](18_slice/10_append_slice-to-slice/02_slice-of-strings) +- - [11_delete](18_slice/11_delete) +- - [12_multi-dimensional](18_slice/12_multi-dimensional) +- - - [01_shorthand-slice](18_slice/12_multi-dimensional/01_shorthand-slice) +- - - [02_var-slice](18_slice/12_multi-dimensional/02_var-slice) +- - - [03_make-slice](18_slice/12_multi-dimensional/03_make-slice) +- - - [04_comparing_shorthand_var_make](18_slice/12_multi-dimensional/04_comparing_shorthand_var_make) +- - - - [01_shorthand-slice](18_slice/12_multi-dimensional/04_comparing_shorthand_var_make/01_shorthand-slice) +- - - - [02_var-slice](18_slice/12_multi-dimensional/04_comparing_shorthand_var_make/02_var-slice) +- - - - [03_make-slice](18_slice/12_multi-dimensional/04_comparing_shorthand_var_make/03_make-slice) +- - - [05_slice-of-slice-of-string](18_slice/12_multi-dimensional/05_slice-of-slice-of-string) +- - - [06_slice-of-slice-of-int](18_slice/12_multi-dimensional/06_slice-of-slice-of-int) +- - [13_int-slice-plus-plus](18_slice/13_int-slice-plus-plus) +- [19_map](19_map) +- - [01_var_nil-map](19_map/01_var_nil-map) +- - [02_var_make](19_map/02_var_make) +- - [03_shorthand_make](19_map/03_shorthand_make) +- - [04_shorthand_composite-literal](19_map/04_shorthand_composite-literal) +- - [05_shorthand_composite-literal](19_map/05_shorthand_composite-literal) +- - [06_adding-entry](19_map/06_adding-entry) +- - [07_len](19_map/07_len) +- - [08_updating-entry](19_map/08_updating-entry) +- - [09_deleting-entry](19_map/09_deleting-entry) +- - [10_comma-ok-idiom_val-exists](19_map/10_comma-ok-idiom_val-exists) +- - [11_deleting-entry_no-error](19_map/11_deleting-entry_no-error) +- - [12_comma-ok-idiom_val-not-exists](19_map/12_comma-ok-idiom_val-not-exists) +- - [13_loop-range](19_map/13_loop-range) +- - [14_hash-table](19_map/14_hash-table) +- - - [01_letter-buckets](19_map/14_hash-table/01_letter-buckets) +- - - - [01_runes-are-numbers](19_map/14_hash-table/01_letter-buckets/01_runes-are-numbers) +- - - - [02_strings-to-rune-conversion](19_map/14_hash-table/01_letter-buckets/02_strings-to-rune-conversion) +- - - - [03_string-index-access](19_map/14_hash-table/01_letter-buckets/03_string-index-access) +- - - - [04_remainder-bucket-selection](19_map/14_hash-table/01_letter-buckets/04_remainder-bucket-selection) +- - - - [05_hash-function](19_map/14_hash-table/01_letter-buckets/05_hash-function) +- - - - [06_get](19_map/14_hash-table/01_letter-buckets/06_get) +- - - - [07_scanner](19_map/14_hash-table/01_letter-buckets/07_scanner) +- - - - [08_moby-dicks-words](19_map/14_hash-table/01_letter-buckets/08_moby-dicks-words) +- - - - [09_int-slice-plus-plus](19_map/14_hash-table/01_letter-buckets/09_int-slice-plus-plus) +- - - - [10_hash-letter-buckets](19_map/14_hash-table/01_letter-buckets/10_hash-letter-buckets) +- - - - [11_hash-remainder-buckets](19_map/14_hash-table/01_letter-buckets/11_hash-remainder-buckets) +- - - [02_even-dstribution-hash](19_map/14_hash-table/02_even-dstribution-hash) +- - - [03_words-in-buckets](19_map/14_hash-table/03_words-in-buckets) +- - - - [01_slice-bucket](19_map/14_hash-table/03_words-in-buckets/01_slice-bucket) +- - - - [02_map-bucket](19_map/14_hash-table/03_words-in-buckets/02_map-bucket) +- - - [04_english-alphabet](19_map/14_hash-table/04_english-alphabet) +- - - - [01](19_map/14_hash-table/04_english-alphabet/01) +- - - - [02](19_map/14_hash-table/04_english-alphabet/02) +- [20_struct](20_struct) +- - [00_object-oriented](20_struct/00_object-oriented) +- - [01_user-defined-types](20_struct/01_user-defined-types) +- - - [01_alias-type_not-idiomatic](20_struct/01_user-defined-types/01_alias-type_not-idiomatic) +- - - [02_static-typing](20_struct/01_user-defined-types/02_static-typing) +- - [02_struct_fields_values_initialization](20_struct/02_struct_fields_values_initialization) +- - [03_methods](20_struct/03_methods) +- - [04_embedded-types](20_struct/04_embedded-types) +- - [05_promotion](20_struct/05_promotion) +- - - [01_overriding-fields](20_struct/05_promotion/01_overriding-fields) +- - - [02_overriding-methods](20_struct/05_promotion/02_overriding-methods) +- - [06_struct-pointer](20_struct/06_struct-pointer) +- - [07_marshal_unmarshal](20_struct/07_marshal_unmarshal) +- - - [01_marshal](20_struct/07_marshal_unmarshal/01_marshal) +- - - - [01_exported](20_struct/07_marshal_unmarshal/01_marshal/01_exported) +- - - - [02_unexported](20_struct/07_marshal_unmarshal/01_marshal/02_unexported) +- - - - [03_tags](20_struct/07_marshal_unmarshal/01_marshal/03_tags) +- - - [02_unmarshal](20_struct/07_marshal_unmarshal/02_unmarshal) +- - - - [01](20_struct/07_marshal_unmarshal/02_unmarshal/01) +- - - - [02_tags](20_struct/07_marshal_unmarshal/02_unmarshal/02_tags) +- - [08_encode_decode](20_struct/08_encode_decode) +- - - [01_encode](20_struct/08_encode_decode/01_encode) +- - - [02_decode](20_struct/08_encode_decode/02_decode) +- [21_interfaces](21_interfaces) +- - [01_interface](21_interfaces/01_interface) +- - - [01_no-interface](21_interfaces/01_interface/01_no-interface) +- - - [02_interface](21_interfaces/01_interface/02_interface) +- - - [03_interface](21_interfaces/01_interface/03_interface) +- - - [04_interface](21_interfaces/01_interface/04_interface) +- - - [05_io-copy](21_interfaces/01_interface/05_io-copy) +- - - - [01_no-error-checking](21_interfaces/01_interface/05_io-copy/01_no-error-checking) +- - - - [02_error-checking](21_interfaces/01_interface/05_io-copy/02_error-checking) +- - [02_package-sort](21_interfaces/02_package-sort) +- - - [01_sort-names](21_interfaces/02_package-sort/01_sort-names) +- - - [02_sort-names_type-StringSlice](21_interfaces/02_package-sort/02_sort-names_type-StringSlice) +- - - [03_sort-Strings](21_interfaces/02_package-sort/03_sort-Strings) +- - - [04_sort-names_type-StringSlice_reverse](21_interfaces/02_package-sort/04_sort-names_type-StringSlice_reverse) +- - - [05_sort-int_type-IntSlice](21_interfaces/02_package-sort/05_sort-int_type-IntSlice) +- - - [06_sort-int_type-IntSlice_reverse](21_interfaces/02_package-sort/06_sort-int_type-IntSlice_reverse) +- - - [07_sort-Ints](21_interfaces/02_package-sort/07_sort-Ints) +- - - [08_standard-library-example](21_interfaces/02_package-sort/08_standard-library-example) +- - [03_empty-interface](21_interfaces/03_empty-interface) +- - - [01_no-interface](21_interfaces/03_empty-interface/01_no-interface) +- - - [02_empty-interface](21_interfaces/03_empty-interface/02_empty-interface) +- - - [03_param-accepts-any-type](21_interfaces/03_empty-interface/03_param-accepts-any-type) +- - - [04_slice-of-any-type](21_interfaces/03_empty-interface/04_slice-of-any-type) +- - [04_method-sets](21_interfaces/04_method-sets) +- - - [01_value-receiver_value-type](21_interfaces/04_method-sets/01_value-receiver_value-type) +- - - [02_value-receiver_pointer-type](21_interfaces/04_method-sets/02_value-receiver_pointer-type) +- - - [03_pointer-receiver_pointer-type](21_interfaces/04_method-sets/03_pointer-receiver_pointer-type) +- - - [04_pointer-receiver_value-type](21_interfaces/04_method-sets/04_pointer-receiver_value-type) +- - [05_conversion-vs-assertion](21_interfaces/05_conversion-vs-assertion) +- - - [01_conversion](21_interfaces/05_conversion-vs-assertion/01_conversion) +- - - - [01_int-to-float](21_interfaces/05_conversion-vs-assertion/01_conversion/01_int-to-float) +- - - - [02_float-to-int](21_interfaces/05_conversion-vs-assertion/01_conversion/02_float-to-int) +- - - - [03_rune-to-string](21_interfaces/05_conversion-vs-assertion/01_conversion/03_rune-to-string) +- - - - [04_rune-to-slice-of-bytes-to-string](21_interfaces/05_conversion-vs-assertion/01_conversion/04_rune-to-slice-of-bytes-to-string) +- - - - [05_string-to-slice-of-bytes](21_interfaces/05_conversion-vs-assertion/01_conversion/05_string-to-slice-of-bytes) +- - - - [06_strconv](21_interfaces/05_conversion-vs-assertion/01_conversion/06_strconv) +- - - - - [01_Atoi](21_interfaces/05_conversion-vs-assertion/01_conversion/06_strconv/01_Atoi) +- - - - - [02_Itoa](21_interfaces/05_conversion-vs-assertion/01_conversion/06_strconv/02_Itoa) +- - - - - [03_ParseInt](21_interfaces/05_conversion-vs-assertion/01_conversion/06_strconv/03_ParseInt) +- - - [02_assertion](21_interfaces/05_conversion-vs-assertion/02_assertion) +- - - - [01_non-interface-error_invalid-code](21_interfaces/05_conversion-vs-assertion/02_assertion/01_non-interface-error_invalid-code) +- - - - [02_interface-string](21_interfaces/05_conversion-vs-assertion/02_assertion/02_interface-string) +- - - - [03_interface-string_not-ok](21_interfaces/05_conversion-vs-assertion/02_assertion/03_interface-string_not-ok) +- - - - [04_interface-int_print-type](21_interfaces/05_conversion-vs-assertion/02_assertion/04_interface-int_print-type) +- - - - [05_interface-int_mistmatched-types-error](21_interfaces/05_conversion-vs-assertion/02_assertion/05_interface-int_mistmatched-types-error) +- - - - [06_interface-int-sum](21_interfaces/05_conversion-vs-assertion/02_assertion/06_interface-int-sum) +- - - - [07_casting-reminder](21_interfaces/05_conversion-vs-assertion/02_assertion/07_casting-reminder) +- - - - [08_interface-cast-error_need-type-assertion](21_interfaces/05_conversion-vs-assertion/02_assertion/08_interface-cast-error_need-type-assertion) +- [22_go-routines](22_go-routines) +- - [01_no-go](22_go-routines/01_no-go) +- - [02_go_concurrency](22_go-routines/02_go_concurrency) +- - [03_wait-group](22_go-routines/03_wait-group) +- - [04_time-sleep](22_go-routines/04_time-sleep) +- - [05_gomaxprocs_parallelism](22_go-routines/05_gomaxprocs_parallelism) +- - [06_race-condition](22_go-routines/06_race-condition) +- - [07_mutex](22_go-routines/07_mutex) +- - [08_atomicity](22_go-routines/08_atomicity) +- - [09_channels](22_go-routines/09_channels) +- - - [00_unbuffered-channels-block](22_go-routines/09_channels/00_unbuffered-channels-block) +- - - [01_range](22_go-routines/09_channels/01_range) +- - - [02_n-to-1](22_go-routines/09_channels/02_n-to-1) +- - - - [01_race-condition](22_go-routines/09_channels/02_n-to-1/01_race-condition) +- - - - [02_wait-group](22_go-routines/09_channels/02_n-to-1/02_wait-group) +- - - - [03_semaphore](22_go-routines/09_channels/02_n-to-1/03_semaphore) +- - - - [04_semaphore_wrong-way](22_go-routines/09_channels/02_n-to-1/04_semaphore_wrong-way) +- - - - [05_n-times_to_1](22_go-routines/09_channels/02_n-to-1/05_n-times_to_1) +- - - [03_1-to-n](22_go-routines/09_channels/03_1-to-n) +- - - - [01_1_to_2-times](22_go-routines/09_channels/03_1-to-n/01_1_to_2-times) +- - - - [02_1_to_n-times](22_go-routines/09_channels/03_1-to-n/02_1_to_n-times) +- - - [04_pass-return-channels](22_go-routines/09_channels/04_pass-return-channels) +- - - [05_channel-direction](22_go-routines/09_channels/05_channel-direction) +- - - [06_refactor](22_go-routines/09_channels/06_refactor) +- - - [07_incrementor](22_go-routines/09_channels/07_incrementor) +- - - [08_closures](22_go-routines/09_channels/08_closures) +- - - - [01_no-closure-binding](22_go-routines/09_channels/08_closures/01_no-closure-binding) +- - - - [02_closure-binding](22_go-routines/09_channels/08_closures/02_closure-binding) +- - - - [03_closure-binding](22_go-routines/09_channels/08_closures/03_closure-binding) +- - [10_deadlock-challenges](22_go-routines/10_deadlock-challenges) +- - - [01_deadlock-challenge](22_go-routines/10_deadlock-challenges/01_deadlock-challenge) +- - - [02_deadlock-solution](22_go-routines/10_deadlock-challenges/02_deadlock-solution) +- - - [03_deadlock-challenge](22_go-routines/10_deadlock-challenges/03_deadlock-challenge) +- - - [04_deadlock-challenge](22_go-routines/10_deadlock-challenges/04_deadlock-challenge) +- - - [05_deadlock-solution](22_go-routines/10_deadlock-challenges/05_deadlock-solution) +- - [11_factorial-challenge](22_go-routines/11_factorial-challenge) +- - - [01_challenge-description](22_go-routines/11_factorial-challenge/01_challenge-description) +- - - [02_challenge-solution](22_go-routines/11_factorial-challenge/02_challenge-solution) +- - [12_channels_pipeline](22_go-routines/12_channels_pipeline) +- - - [01_sq-output](22_go-routines/12_channels_pipeline/01_sq-output) +- - - [02_sq-output](22_go-routines/12_channels_pipeline/02_sq-output) +- - - [03_challenge-description](22_go-routines/12_channels_pipeline/03_challenge-description) +- - - [04_challenge-solution](22_go-routines/12_channels_pipeline/04_challenge-solution) +- - - - [01_original-solution](22_go-routines/12_channels_pipeline/04_challenge-solution/01_original-solution) +- - - - [02_another-solution](22_go-routines/12_channels_pipeline/04_challenge-solution/02_another-solution) +- - [13_channels_fan-out_fan-in](22_go-routines/13_channels_fan-out_fan-in) +- - - [01_boring](22_go-routines/13_channels_fan-out_fan-in/01_boring) +- - - [02_sq-output](22_go-routines/13_channels_fan-out_fan-in/02_sq-output) +- - - [03_sq-output_variation](22_go-routines/13_channels_fan-out_fan-in/03_sq-output_variation) +- - - [04_challenge-description](22_go-routines/13_channels_fan-out_fan-in/04_challenge-description) +- - - [05_challenge-solution](22_go-routines/13_channels_fan-out_fan-in/05_challenge-solution) +- - - [06_challenge-description](22_go-routines/13_channels_fan-out_fan-in/06_challenge-description) +- - - [07_challenge-solution](22_go-routines/13_channels_fan-out_fan-in/07_challenge-solution) +- - - [08_challenge-description](22_go-routines/13_channels_fan-out_fan-in/08_challenge-description) +- - - [09_challenge-solution](22_go-routines/13_channels_fan-out_fan-in/09_challenge-solution) +- - - - [01_troubleshooting-step](22_go-routines/13_channels_fan-out_fan-in/09_challenge-solution/01_troubleshooting-step) +- - - - [02_solution](22_go-routines/13_channels_fan-out_fan-in/09_challenge-solution/02_solution) +- - - [10_van-sickle_fan-out_fan-in](22_go-routines/13_channels_fan-out_fan-in/10_van-sickle_fan-out_fan-in) +- - [14_incrementor-challenge](22_go-routines/14_incrementor-challenge) +- - - [01_description](22_go-routines/14_incrementor-challenge/01_description) +- - - [02_solution](22_go-routines/14_incrementor-challenge/02_solution) +- - [15_for-fun](22_go-routines/15_for-fun) +- - - [01](22_go-routines/15_for-fun/01) +- [23_error-handling](23_error-handling) +- - [01_golint](23_error-handling/01_golint) +- - - [01_before](23_error-handling/01_golint/01_before) +- - - [02_after](23_error-handling/01_golint/02_after) +- - [02_err-not-nil](23_error-handling/02_err-not-nil) +- - - [01_fmt-println](23_error-handling/02_err-not-nil/01_fmt-println) +- - - [02_log-println](23_error-handling/02_err-not-nil/02_log-println) +- - - [03_log-set-output](23_error-handling/02_err-not-nil/03_log-set-output) +- - - [04_log-fatalln](23_error-handling/02_err-not-nil/04_log-fatalln) +- - - [05_panic](23_error-handling/02_err-not-nil/05_panic) +- - [03_custom-errors](23_error-handling/03_custom-errors) +- - - [01_errors-new](23_error-handling/03_custom-errors/01_errors-new) +- - - [02_errors-new_var](23_error-handling/03_custom-errors/02_errors-new_var) +- - - [03_fmt-errorf](23_error-handling/03_custom-errors/03_fmt-errorf) +- - - [04_fmt-errorf_var](23_error-handling/03_custom-errors/04_fmt-errorf_var) +- - - [05_custom-type](23_error-handling/03_custom-errors/05_custom-type) +- [24_testing](24_testing) +- [25_code-walk](25_code-walk) +- - [with-comments](25_code-walk/with-comments) +- [26_QUESTIONS-FROM-STUDENTS](26_QUESTIONS-FROM-STUDENTS) +- - [01-package-scope](26_QUESTIONS-FROM-STUDENTS/01-package-scope) +- - [02-goroutines-printing](26_QUESTIONS-FROM-STUDENTS/02-goroutines-printing) +- - [03-range-chan](26_QUESTIONS-FROM-STUDENTS/03-range-chan) +- - [04_goroutines_closing-chan](26_QUESTIONS-FROM-STUDENTS/04_goroutines_closing-chan) +- - - [01_broken-code](26_QUESTIONS-FROM-STUDENTS/04_goroutines_closing-chan/01_broken-code) +- - - [02_fixed-code](26_QUESTIONS-FROM-STUDENTS/04_goroutines_closing-chan/02_fixed-code) +- - [05_concurrency-channels](26_QUESTIONS-FROM-STUDENTS/05_concurrency-channels) +- - [06_performance-ramifications](26_QUESTIONS-FROM-STUDENTS/06_performance-ramifications) +- - - [01_called](26_QUESTIONS-FROM-STUDENTS/06_performance-ramifications/01_called) +- - - [02_not-called](26_QUESTIONS-FROM-STUDENTS/06_performance-ramifications/02_not-called) +- [27_code-in-process](27_code-in-process) +- - [26_playing-with-type](27_code-in-process/26_playing-with-type) +- - - [00_types](27_code-in-process/26_playing-with-type/00_types) +- - - - [01_division](27_code-in-process/26_playing-with-type/00_types/01_division) +- - - - - [01_int-int](27_code-in-process/26_playing-with-type/00_types/01_division/01_int-int) +- - - - - [02_int-float](27_code-in-process/26_playing-with-type/00_types/01_division/02_int-float) +- - - - - [03_var_int-float](27_code-in-process/26_playing-with-type/00_types/01_division/03_var_int-float) +- - - - - [04_var_int-float_invalid-code](27_code-in-process/26_playing-with-type/00_types/01_division/04_var_int-float_invalid-code) +- - - - [02_strings](27_code-in-process/26_playing-with-type/00_types/02_strings) +- - - - - [01_escape-sequences](27_code-in-process/26_playing-with-type/00_types/02_strings/01_escape-sequences) +- - - - - [02_sequence-of-bytes](27_code-in-process/26_playing-with-type/00_types/02_strings/02_sequence-of-bytes) +- - - - - [03_immutable](27_code-in-process/26_playing-with-type/00_types/02_strings/03_immutable) +- - - - - [04_len](27_code-in-process/26_playing-with-type/00_types/02_strings/04_len) +- - - - - - [01_len-english](27_code-in-process/26_playing-with-type/00_types/02_strings/04_len/01_len-english) +- - - - - - [02_len-chinese](27_code-in-process/26_playing-with-type/00_types/02_strings/04_len/02_len-chinese) +- - - - - - [03_binary](27_code-in-process/26_playing-with-type/00_types/02_strings/04_len/03_binary) +- - - - - [05_index-access](27_code-in-process/26_playing-with-type/00_types/02_strings/05_index-access) +- - - - - [06_slicing](27_code-in-process/26_playing-with-type/00_types/02_strings/06_slicing) +- - - - - - [01](27_code-in-process/26_playing-with-type/00_types/02_strings/06_slicing/01) +- - - - - - [02](27_code-in-process/26_playing-with-type/00_types/02_strings/06_slicing/02) +- - - - - - [03_invalid_negative-index](27_code-in-process/26_playing-with-type/00_types/02_strings/06_slicing/03_invalid_negative-index) +- - - - - [07_concatenation](27_code-in-process/26_playing-with-type/00_types/02_strings/07_concatenation) +- - - - [03_strconv](27_code-in-process/26_playing-with-type/00_types/03_strconv) +- - - - - [01_itoa](27_code-in-process/26_playing-with-type/00_types/03_strconv/01_itoa) +- - - - - [02_fmt-sprint](27_code-in-process/26_playing-with-type/00_types/03_strconv/02_fmt-sprint) +- - - - - [03_atoi](27_code-in-process/26_playing-with-type/00_types/03_strconv/03_atoi) +- - - - [06_math-pkg](27_code-in-process/26_playing-with-type/00_types/06_math-pkg) +- - - - [07_typeOf](27_code-in-process/26_playing-with-type/00_types/07_typeOf) +- - - - - [01_better-code](27_code-in-process/26_playing-with-type/00_types/07_typeOf/01_better-code) +- - - - - [02_worse-code](27_code-in-process/26_playing-with-type/00_types/07_typeOf/02_worse-code) +- - - [01_struct](27_code-in-process/26_playing-with-type/01_struct) +- - - [02_string](27_code-in-process/26_playing-with-type/02_string) +- - - [03_string-conversion](27_code-in-process/26_playing-with-type/03_string-conversion) +- - - [04_string_assertion_invalid-code](27_code-in-process/26_playing-with-type/04_string_assertion_invalid-code) +- - - [05_var-for-zero-val-initalization](27_code-in-process/26_playing-with-type/05_var-for-zero-val-initalization) +- - - [06_shorthand-notation_nonzero-initalization](27_code-in-process/26_playing-with-type/06_shorthand-notation_nonzero-initalization) +- - - [xx05_slice-strings](27_code-in-process/26_playing-with-type/xx05_slice-strings) +- - - [xx06_slice-strings_conversion](27_code-in-process/26_playing-with-type/xx06_slice-strings_conversion) +- - - [xx07_int](27_code-in-process/26_playing-with-type/xx07_int) +- - - [xx08_slice-ints](27_code-in-process/26_playing-with-type/xx08_slice-ints) +- - [27_package-os](27_code-in-process/27_package-os) +- - - [00_args](27_code-in-process/27_package-os/00_args) +- - - [01_Read](27_code-in-process/27_package-os/01_Read) +- - - - [01](27_code-in-process/27_package-os/01_Read/01) +- - - [02_Write](27_code-in-process/27_package-os/02_Write) +- - - - [01](27_code-in-process/27_package-os/02_Write/01) +- - - - [02](27_code-in-process/27_package-os/02_Write/02) +- - - - [03_absolute-path](27_code-in-process/27_package-os/02_Write/03_absolute-path) +- - - [03_mkdir](27_code-in-process/27_package-os/03_mkdir) +- - - - [01](27_code-in-process/27_package-os/03_mkdir/01) +- - - - [02](27_code-in-process/27_package-os/03_mkdir/02) +- - - [04_FileMode](27_code-in-process/27_package-os/04_FileMode) +- - - - [01](27_code-in-process/27_package-os/04_FileMode/01) +- - - - [02](27_code-in-process/27_package-os/04_FileMode/02) +- - - [05_file-open](27_code-in-process/27_package-os/05_file-open) +- - - [06_file-create](27_code-in-process/27_package-os/06_file-create) +- - - [07_Stdout_Stdin](27_code-in-process/27_package-os/07_Stdout_Stdin) +- - - - [01](27_code-in-process/27_package-os/07_Stdout_Stdin/01) +- - - - [02](27_code-in-process/27_package-os/07_Stdout_Stdin/02) +- - [28_package-strings](27_code-in-process/28_package-strings) +- - - [01_strings](27_code-in-process/28_package-strings/01_strings) +- - - [02_NewReader](27_code-in-process/28_package-strings/02_NewReader) +- - [29_package-bufio](27_code-in-process/29_package-bufio) +- - - [01_NewReader](27_code-in-process/29_package-bufio/01_NewReader) +- - - [02_NewScanner](27_code-in-process/29_package-bufio/02_NewScanner) +- - - [03_scan-lines](27_code-in-process/29_package-bufio/03_scan-lines) +- - - - [01](27_code-in-process/29_package-bufio/03_scan-lines/01) +- - - - [02](27_code-in-process/29_package-bufio/03_scan-lines/02) +- - - [04_scan-words](27_code-in-process/29_package-bufio/04_scan-words) +- - - - [01](27_code-in-process/29_package-bufio/04_scan-words/01) +- - - - [02](27_code-in-process/29_package-bufio/04_scan-words/02) +- - - - [03](27_code-in-process/29_package-bufio/04_scan-words/03) +- - [30_package-io](27_code-in-process/30_package-io) +- - - [01_copy](27_code-in-process/30_package-io/01_copy) +- - - [02_copy](27_code-in-process/30_package-io/02_copy) +- - - [03_copy](27_code-in-process/30_package-io/03_copy) +- - - [04_TeeReader](27_code-in-process/30_package-io/04_TeeReader) +- - - - [01](27_code-in-process/30_package-io/04_TeeReader/01) +- - - - [02](27_code-in-process/30_package-io/04_TeeReader/02) +- - - [05_ReadFull](27_code-in-process/30_package-io/05_ReadFull) +- - - [06_LimitReader](27_code-in-process/30_package-io/06_LimitReader) +- - - [07_WriteString](27_code-in-process/30_package-io/07_WriteString) +- - - - [01_one-way](27_code-in-process/30_package-io/07_WriteString/01_one-way) +- - - - [02_another-way](27_code-in-process/30_package-io/07_WriteString/02_another-way) +- - [31_package-ioutil](27_code-in-process/31_package-ioutil) +- - - [00_ReadAll](27_code-in-process/31_package-ioutil/00_ReadAll) +- - - [01_ReadAll](27_code-in-process/31_package-ioutil/01_ReadAll) +- - - [02_WriteFile](27_code-in-process/31_package-ioutil/02_WriteFile) +- - - [03_ReadAll_WriteFile](27_code-in-process/31_package-ioutil/03_ReadAll_WriteFile) +- - [32_package-encoding-csv](27_code-in-process/32_package-encoding-csv) +- - - [01_NewReader](27_code-in-process/32_package-encoding-csv/01_NewReader) +- - - [02_column-headings](27_code-in-process/32_package-encoding-csv/02_column-headings) +- - - [03_panics](27_code-in-process/32_package-encoding-csv/03_panics) +- - - [04_parse-state](27_code-in-process/32_package-encoding-csv/04_parse-state) +- - - [05_state-lookup](27_code-in-process/32_package-encoding-csv/05_state-lookup) +- - - [06_write-to-html](27_code-in-process/32_package-encoding-csv/06_write-to-html) +- - - [07_NewReader](27_code-in-process/32_package-encoding-csv/07_NewReader) +- - [33_package-path-filepath](27_code-in-process/33_package-path-filepath) +- - - [01_Walk](27_code-in-process/33_package-path-filepath/01_Walk) +- - - [02_Walk](27_code-in-process/33_package-path-filepath/02_Walk) +- - - [03_Walk](27_code-in-process/33_package-path-filepath/03_Walk) +- - - [04_Walk](27_code-in-process/33_package-path-filepath/04_Walk) +- - [34_package-time](27_code-in-process/34_package-time) +- - - [01_now](27_code-in-process/34_package-time/01_now) +- - - [02_time-parse](27_code-in-process/34_package-time/02_time-parse) +- - - - [01](27_code-in-process/34_package-time/02_time-parse/01) +- - - - [02](27_code-in-process/34_package-time/02_time-parse/02) +- - - [03_format](27_code-in-process/34_package-time/03_format) +- - - [04_date-diff](27_code-in-process/34_package-time/04_date-diff) +- - [35_hash](27_code-in-process/35_hash) +- - - [00_notes](27_code-in-process/35_hash/00_notes) +- - - [01_FNV](27_code-in-process/35_hash/01_FNV) +- - - - [01](27_code-in-process/35_hash/01_FNV/01) +- - - - [02](27_code-in-process/35_hash/01_FNV/02) +- - - [02_MD5](27_code-in-process/35_hash/02_MD5) +- - - - [01](27_code-in-process/35_hash/02_MD5/01) +- - - - [02](27_code-in-process/35_hash/02_MD5/02) +- - [36_package-filepath](27_code-in-process/36_package-filepath) +- - - [01_walk](27_code-in-process/36_package-filepath/01_walk) +- - [37_review-exercises](27_code-in-process/37_review-exercises) +- - - [01_gravatar](27_code-in-process/37_review-exercises/01_gravatar) +- - - [02_word-count](27_code-in-process/37_review-exercises/02_word-count) +- - - [03_centered_average](27_code-in-process/37_review-exercises/03_centered_average) +- - - [04_swap-two_pointers](27_code-in-process/37_review-exercises/04_swap-two_pointers) +- - - [05_clumps](27_code-in-process/37_review-exercises/05_clumps) +- - - [06_cat](27_code-in-process/37_review-exercises/06_cat) +- - - [07_copy](27_code-in-process/37_review-exercises/07_copy) +- - - [08_cp](27_code-in-process/37_review-exercises/08_cp) +- - - - [01](27_code-in-process/37_review-exercises/08_cp/01) +- - - - [02](27_code-in-process/37_review-exercises/08_cp/02) +- - - - [03](27_code-in-process/37_review-exercises/08_cp/03) +- - - - [04_io-copy](27_code-in-process/37_review-exercises/08_cp/04_io-copy) +- - - - [05_os-write_slice-bytes](27_code-in-process/37_review-exercises/08_cp/05_os-write_slice-bytes) +- - - - [06_io-copy_string-NewReader](27_code-in-process/37_review-exercises/08_cp/06_io-copy_string-NewReader) +- - - - [07_io-copy_bufio-NewReader](27_code-in-process/37_review-exercises/08_cp/07_io-copy_bufio-NewReader) +- - - - [08_bufio_scanner](27_code-in-process/37_review-exercises/08_cp/08_bufio_scanner) +- - - [09_sentence-case](27_code-in-process/37_review-exercises/09_sentence-case) +- - - [10_every-word](27_code-in-process/37_review-exercises/10_every-word) +- - - [11_every-other-word](27_code-in-process/37_review-exercises/11_every-other-word) +- - - [12_count-words](27_code-in-process/37_review-exercises/12_count-words) +- - - [13_longest-word](27_code-in-process/37_review-exercises/13_longest-word) +- - - [14_cat-files](27_code-in-process/37_review-exercises/14_cat-files) +- - - - [01](27_code-in-process/37_review-exercises/14_cat-files/01) +- - - - [02](27_code-in-process/37_review-exercises/14_cat-files/02) +- - - [15_csv_state-info](27_code-in-process/37_review-exercises/15_csv_state-info) +- - - - [step01_read-and-output](27_code-in-process/37_review-exercises/15_csv_state-info/step01_read-and-output) +- - - - [step02_column-headings](27_code-in-process/37_review-exercises/15_csv_state-info/step02_column-headings) +- - - - [step03_panics](27_code-in-process/37_review-exercises/15_csv_state-info/step03_panics) +- - - - [step04_parse-state](27_code-in-process/37_review-exercises/15_csv_state-info/step04_parse-state) +- - - - [step05_state-lookup](27_code-in-process/37_review-exercises/15_csv_state-info/step05_state-lookup) +- - - - [step06_write-to-html](27_code-in-process/37_review-exercises/15_csv_state-info/step06_write-to-html) +- - - [16_csv_stock-prices](27_code-in-process/37_review-exercises/16_csv_stock-prices) +- - - - [step01_stdout](27_code-in-process/37_review-exercises/16_csv_stock-prices/step01_stdout) +- - - - [step02_html](27_code-in-process/37_review-exercises/16_csv_stock-prices/step02_html) +- - - - [step03_charting](27_code-in-process/37_review-exercises/16_csv_stock-prices/step03_charting) +- - - [17_MD5-checksum](27_code-in-process/37_review-exercises/17_MD5-checksum) +- - - [18_Walk-dir](27_code-in-process/37_review-exercises/18_Walk-dir) +- - [38_JSON](27_code-in-process/38_JSON) +- - - [01](27_code-in-process/38_JSON/01) +- - - [02](27_code-in-process/38_JSON/02) +- - - [03](27_code-in-process/38_JSON/03) +- - - [04](27_code-in-process/38_JSON/04) +- - - [05](27_code-in-process/38_JSON/05) +- - - [06](27_code-in-process/38_JSON/06) +- - - [07](27_code-in-process/38_JSON/07) +- - - [08](27_code-in-process/38_JSON/08) +- - - [09](27_code-in-process/38_JSON/09) +- - - [10](27_code-in-process/38_JSON/10) +- - - [11](27_code-in-process/38_JSON/11) +- - - [12](27_code-in-process/38_JSON/12) +- - - [13](27_code-in-process/38_JSON/13) +- - - [14](27_code-in-process/38_JSON/14) +- - - [15](27_code-in-process/38_JSON/15) +- - - [15_exercise_csv-to-JSON](27_code-in-process/38_JSON/15_exercise_csv-to-JSON) +- - - - [01](27_code-in-process/38_JSON/15_exercise_csv-to-JSON/01) +- - - - [02](27_code-in-process/38_JSON/15_exercise_csv-to-JSON/02) +- - - [16](27_code-in-process/38_JSON/16) +- - - [17](27_code-in-process/38_JSON/17) +- - [39_packages](27_code-in-process/39_packages) +- - - [hello](27_code-in-process/39_packages/hello) +- - - [main](27_code-in-process/39_packages/main) +- - [40_testing](27_code-in-process/40_testing) +- - - [01](27_code-in-process/40_testing/01) +- - - - [example](27_code-in-process/40_testing/01/example) +- - - [02](27_code-in-process/40_testing/02) +- - - - [example](27_code-in-process/40_testing/02/example) +- - [41_TCP](27_code-in-process/41_TCP) +- - - [01](27_code-in-process/41_TCP/01) +- - - [02_listen](27_code-in-process/41_TCP/02_listen) +- - - [03_dial](27_code-in-process/41_TCP/03_dial) +- - - [04_echo-server](27_code-in-process/41_TCP/04_echo-server) +- - - - [v01](27_code-in-process/41_TCP/04_echo-server/v01) +- - - - [v02](27_code-in-process/41_TCP/04_echo-server/v02) +- - - - [v03](27_code-in-process/41_TCP/04_echo-server/v03) +- - - - [v04](27_code-in-process/41_TCP/04_echo-server/v04) +- - - [05_redis-clone](27_code-in-process/41_TCP/05_redis-clone) +- - - - [i01](27_code-in-process/41_TCP/05_redis-clone/i01) +- - - - [i02](27_code-in-process/41_TCP/05_redis-clone/i02) +- - - - [i03](27_code-in-process/41_TCP/05_redis-clone/i03) +- - - - [i04](27_code-in-process/41_TCP/05_redis-clone/i04) +- - - - [i05_code-issue](27_code-in-process/41_TCP/05_redis-clone/i05_code-issue) +- - - - [i06](27_code-in-process/41_TCP/05_redis-clone/i06) +- - - [06_rot13-server](27_code-in-process/41_TCP/06_rot13-server) +- - - - [v01-todd](27_code-in-process/41_TCP/06_rot13-server/v01-todd) +- - - - [v02-caleb](27_code-in-process/41_TCP/06_rot13-server/v02-caleb) +- - - - [v03-daniel](27_code-in-process/41_TCP/06_rot13-server/v03-daniel) +- - - [07_chat-server](27_code-in-process/41_TCP/07_chat-server) +- - [42_HTTP](27_code-in-process/42_HTTP) +- - - [01_header](27_code-in-process/42_HTTP/01_header) +- - - [02_http-server](27_code-in-process/42_HTTP/02_http-server) +- - - - [i01](27_code-in-process/42_HTTP/02_http-server/i01) +- - - - [i02](27_code-in-process/42_HTTP/02_http-server/i02) +- - - - [i03](27_code-in-process/42_HTTP/02_http-server/i03) +- - - - [i04_POST](27_code-in-process/42_HTTP/02_http-server/i04_POST) +- - - - [i05_not-writing_error-in-code](27_code-in-process/42_HTTP/02_http-server/i05_not-writing_error-in-code) +- - - - [i06_PLAIN-TEXT](27_code-in-process/42_HTTP/02_http-server/i06_PLAIN-TEXT) +- - - - [i07_Location](27_code-in-process/42_HTTP/02_http-server/i07_Location) +- - - [03_http-server_return-URL](27_code-in-process/42_HTTP/03_http-server_return-URL) +- - [43_HTTP-server](27_code-in-process/43_HTTP-server) +- - - [01](27_code-in-process/43_HTTP-server/01) +- - - - [i01](27_code-in-process/43_HTTP-server/01/i01) +- - - - [i02](27_code-in-process/43_HTTP-server/01/i02) +- - - [02_requestURI](27_code-in-process/43_HTTP-server/02_requestURI) +- - - - [01](27_code-in-process/43_HTTP-server/02_requestURI/01) +- - - - [02](27_code-in-process/43_HTTP-server/02_requestURI/02) +- - - [03_restful](27_code-in-process/43_HTTP-server/03_restful) +- - - - [01](27_code-in-process/43_HTTP-server/03_restful/01) +- - - - [02](27_code-in-process/43_HTTP-server/03_restful/02) +- - - - [03](27_code-in-process/43_HTTP-server/03_restful/03) +- - [44_MUX_routing](27_code-in-process/44_MUX_routing) +- - - [01](27_code-in-process/44_MUX_routing/01) +- - - [02](27_code-in-process/44_MUX_routing/02) +- - - [03](27_code-in-process/44_MUX_routing/03) +- - - [04](27_code-in-process/44_MUX_routing/04) +- - - [05](27_code-in-process/44_MUX_routing/05) +- - - [06_HandleFunc](27_code-in-process/44_MUX_routing/06_HandleFunc) +- - - [07_HandleFunc](27_code-in-process/44_MUX_routing/07_HandleFunc) +- - - [08_HandleFunc](27_code-in-process/44_MUX_routing/08_HandleFunc) +- - [45_serving-files](27_code-in-process/45_serving-files) +- - - [01](27_code-in-process/45_serving-files/01) +- - - [02](27_code-in-process/45_serving-files/02) +- - - [03](27_code-in-process/45_serving-files/03) +- - - [04_io-Copy](27_code-in-process/45_serving-files/04_io-Copy) +- - - [05_ServeContent](27_code-in-process/45_serving-files/05_ServeContent) +- - - [06_ServeFile](27_code-in-process/45_serving-files/06_ServeFile) +- - - [07_FileServer](27_code-in-process/45_serving-files/07_FileServer) +- - - [08_FileServer](27_code-in-process/45_serving-files/08_FileServer) +- - - - [assets](27_code-in-process/45_serving-files/08_FileServer/assets) +- - - [09_FileServer](27_code-in-process/45_serving-files/09_FileServer) +- - - - [assets](27_code-in-process/45_serving-files/09_FileServer/assets) +- - - [10_static-file-server](27_code-in-process/45_serving-files/10_static-file-server) +- - - [11_static-file-server](27_code-in-process/45_serving-files/11_static-file-server) +- - [46_errata](27_code-in-process/46_errata) +- - - [01_set-header](27_code-in-process/46_errata/01_set-header) +- - - [02_URL](27_code-in-process/46_errata/02_URL) +- - - [03_URL](27_code-in-process/46_errata/03_URL) +- - - [04_URL](27_code-in-process/46_errata/04_URL) +- - - [05_ServeFile](27_code-in-process/46_errata/05_ServeFile) +- - [47_templates](27_code-in-process/47_templates) +- - - [01_text-templates](27_code-in-process/47_templates/01_text-templates) +- - - - [01](27_code-in-process/47_templates/01_text-templates/01) +- - - - [02](27_code-in-process/47_templates/01_text-templates/02) +- - - - [03](27_code-in-process/47_templates/01_text-templates/03) +- - - - [04](27_code-in-process/47_templates/01_text-templates/04) +- - - - [05](27_code-in-process/47_templates/01_text-templates/05) +- - - - [06](27_code-in-process/47_templates/01_text-templates/06) +- - - - [07](27_code-in-process/47_templates/01_text-templates/07) +- - - - [08](27_code-in-process/47_templates/01_text-templates/08) +- - - - [09_function](27_code-in-process/47_templates/01_text-templates/09_function) +- - - - [10_function](27_code-in-process/47_templates/01_text-templates/10_function) +- - - - [11](27_code-in-process/47_templates/01_text-templates/11) +- - - [02_html-templates](27_code-in-process/47_templates/02_html-templates) +- - - - [01](27_code-in-process/47_templates/02_html-templates/01) +- - - - [02](27_code-in-process/47_templates/02_html-templates/02) +- - - - [03](27_code-in-process/47_templates/02_html-templates/03) +- - - - [04](27_code-in-process/47_templates/02_html-templates/04) +- - - - [05](27_code-in-process/47_templates/02_html-templates/05) +- - - - - [templates](27_code-in-process/47_templates/02_html-templates/05/templates) +- - - [x03_exercises](27_code-in-process/47_templates/x03_exercises) +- - - - [01](27_code-in-process/47_templates/x03_exercises/01) +- - - - [02](27_code-in-process/47_templates/x03_exercises/02) +- - - - [03_template_csv-parse](27_code-in-process/47_templates/x03_exercises/03_template_csv-parse) +- - - - - [parse](27_code-in-process/47_templates/x03_exercises/03_template_csv-parse/parse) +- - [48_passing-data](27_code-in-process/48_passing-data) +- - - [01_URL-values](27_code-in-process/48_passing-data/01_URL-values) +- - - [02_form-values](27_code-in-process/48_passing-data/02_form-values) +- - - [03_form-values](27_code-in-process/48_passing-data/03_form-values) +- - - [04_form-values](27_code-in-process/48_passing-data/04_form-values) +- - - [05_form-values](27_code-in-process/48_passing-data/05_form-values) +- - - [06_form-values](27_code-in-process/48_passing-data/06_form-values) +- - - - [01](27_code-in-process/48_passing-data/06_form-values/01) +- - - - [02](27_code-in-process/48_passing-data/06_form-values/02) +- - - [07_form-data](27_code-in-process/48_passing-data/07_form-data) +- - - [08_form_file-upload](27_code-in-process/48_passing-data/08_form_file-upload) +- - - - [01](27_code-in-process/48_passing-data/08_form_file-upload/01) +- - - - [02](27_code-in-process/48_passing-data/08_form_file-upload/02) +- - - - [03](27_code-in-process/48_passing-data/08_form_file-upload/03) +- - - - [04](27_code-in-process/48_passing-data/08_form_file-upload/04) +- - [49_cookies-sessions](27_code-in-process/49_cookies-sessions) +- - - [01_set-cookie](27_code-in-process/49_cookies-sessions/01_set-cookie) +- - - [02_get-cookie](27_code-in-process/49_cookies-sessions/02_get-cookie) +- - - [03_sessions](27_code-in-process/49_cookies-sessions/03_sessions) +- - - [04_sessions](27_code-in-process/49_cookies-sessions/04_sessions) +- - - [05_sessions-HMAC](27_code-in-process/49_cookies-sessions/05_sessions-HMAC) +- - - - [01](27_code-in-process/49_cookies-sessions/05_sessions-HMAC/01) +- - - - [02](27_code-in-process/49_cookies-sessions/05_sessions-HMAC/02) +- - - [06_sessions_GORILLA](27_code-in-process/49_cookies-sessions/06_sessions_GORILLA) +- - - [07_cookies_show-visits](27_code-in-process/49_cookies-sessions/07_cookies_show-visits) +- - - [08_log-in-out](27_code-in-process/49_cookies-sessions/08_log-in-out) +- - - [09_HTTPS-TLS](27_code-in-process/49_cookies-sessions/09_HTTPS-TLS) +- - - [10_HTTPS-TLS](27_code-in-process/49_cookies-sessions/10_HTTPS-TLS) +- - - [11_HTTPS-TLS](27_code-in-process/49_cookies-sessions/11_HTTPS-TLS) +- - - [12_GORILLA_photo-blog](27_code-in-process/49_cookies-sessions/12_GORILLA_photo-blog) +- - - - [assets](27_code-in-process/49_cookies-sessions/12_GORILLA_photo-blog/assets) +- - - - - [imgs](27_code-in-process/49_cookies-sessions/12_GORILLA_photo-blog/assets/imgs) +- - - - - [templates](27_code-in-process/49_cookies-sessions/12_GORILLA_photo-blog/assets/templates) +- - [50_exif](27_code-in-process/50_exif) +- - [51_appengine-introduction](27_code-in-process/51_appengine-introduction) +- - - [01_hello-world](27_code-in-process/51_appengine-introduction/01_hello-world) +- - - [02_photo-blog_somewhat-crappy-code-FYI](27_code-in-process/51_appengine-introduction/02_photo-blog_somewhat-crappy-code-FYI) +- - - - [assets](27_code-in-process/51_appengine-introduction/02_photo-blog_somewhat-crappy-code-FYI/assets) +- - - - - [imgs](27_code-in-process/51_appengine-introduction/02_photo-blog_somewhat-crappy-code-FYI/assets/imgs) +- - - - - [tpl](27_code-in-process/51_appengine-introduction/02_photo-blog_somewhat-crappy-code-FYI/assets/tpl) +- - - [03_google-maps-api](27_code-in-process/51_appengine-introduction/03_google-maps-api) +- - - - [assets](27_code-in-process/51_appengine-introduction/03_google-maps-api/assets) +- - - - - [img](27_code-in-process/51_appengine-introduction/03_google-maps-api/assets/img) +- - - - - [templates](27_code-in-process/51_appengine-introduction/03_google-maps-api/assets/templates) +- - - [04_SERVICE_users](27_code-in-process/51_appengine-introduction/04_SERVICE_users) +- - - [05_GORILLA_photo-blog](27_code-in-process/51_appengine-introduction/05_GORILLA_photo-blog) +- - - - [assets](27_code-in-process/51_appengine-introduction/05_GORILLA_photo-blog/assets) +- - - - - [imgs](27_code-in-process/51_appengine-introduction/05_GORILLA_photo-blog/assets/imgs) +- - - - - [templates](27_code-in-process/51_appengine-introduction/05_GORILLA_photo-blog/assets/templates) +- - [52_memcache](27_code-in-process/52_memcache) +- - - [01_get-nil](27_code-in-process/52_memcache/01_get-nil) +- - - [02_set_get](27_code-in-process/52_memcache/02_set_get) +- - - [03_expiration](27_code-in-process/52_memcache/03_expiration) +- - - [04_increment](27_code-in-process/52_memcache/04_increment) +- - - [05_memcache-session](27_code-in-process/52_memcache/05_memcache-session) +- - - - [01i](27_code-in-process/52_memcache/05_memcache-session/01i) +- - - - [02i](27_code-in-process/52_memcache/05_memcache-session/02i) +- - - - [03i](27_code-in-process/52_memcache/05_memcache-session/03i) +- - - - [04i](27_code-in-process/52_memcache/05_memcache-session/04i) +- - - - [05i](27_code-in-process/52_memcache/05_memcache-session/05i) +- - - - [06_photo-blog_UNFINISHED](27_code-in-process/52_memcache/05_memcache-session/06_photo-blog_UNFINISHED) +- - - - - [assets](27_code-in-process/52_memcache/05_memcache-session/06_photo-blog_UNFINISHED/assets) +- - - - - - [imgs](27_code-in-process/52_memcache/05_memcache-session/06_photo-blog_UNFINISHED/assets/imgs) +- - - - - - [templates](27_code-in-process/52_memcache/05_memcache-session/06_photo-blog_UNFINISHED/assets/templates) +- - [53_datastore](27_code-in-process/53_datastore) +- - - [00_appengine-documentation-example](27_code-in-process/53_datastore/00_appengine-documentation-example) +- - - - [01_with-modifications](27_code-in-process/53_datastore/00_appengine-documentation-example/01_with-modifications) +- - - - [02_as-in-documentation](27_code-in-process/53_datastore/00_appengine-documentation-example/02_as-in-documentation) +- - - - [03_no-favicon](27_code-in-process/53_datastore/00_appengine-documentation-example/03_no-favicon) +- - - - [04_no-favicon](27_code-in-process/53_datastore/00_appengine-documentation-example/04_no-favicon) +- - - [01_partial-example_does-not-run](27_code-in-process/53_datastore/01_partial-example_does-not-run) +- - - [02](27_code-in-process/53_datastore/02) +- - - - [01_put](27_code-in-process/53_datastore/02/01_put) +- - - - [02](27_code-in-process/53_datastore/02/02) +- - - - [03_get](27_code-in-process/53_datastore/02/03_get) +- - - - [04_query-filter](27_code-in-process/53_datastore/02/04_query-filter) +- - - - [05_query-ancestor](27_code-in-process/53_datastore/02/05_query-ancestor) +- - - [03_users_datastore_exercise](27_code-in-process/53_datastore/03_users_datastore_exercise) +- - - - [templates](27_code-in-process/53_datastore/03_users_datastore_exercise/templates) +- - - [04_julien-schmidt-router](27_code-in-process/53_datastore/04_julien-schmidt-router) +- - - - [01](27_code-in-process/53_datastore/04_julien-schmidt-router/01) +- - - - [02-with-appengine](27_code-in-process/53_datastore/04_julien-schmidt-router/02-with-appengine) +- - [54_AJAX](27_code-in-process/54_AJAX) +- - - [01](27_code-in-process/54_AJAX/01) +- - - [02_users_datastore_exercise_AJAX](27_code-in-process/54_AJAX/02_users_datastore_exercise_AJAX) +- - - - [templates](27_code-in-process/54_AJAX/02_users_datastore_exercise_AJAX/templates) +- - [55_todo-list](27_code-in-process/55_todo-list) +- - - [01v_content-editable](27_code-in-process/55_todo-list/01v_content-editable) +- - - - [assets](27_code-in-process/55_todo-list/01v_content-editable/assets) +- - - - - [templates](27_code-in-process/55_todo-list/01v_content-editable/assets/templates) +- - - [02v_input](27_code-in-process/55_todo-list/02v_input) +- - - - [assets](27_code-in-process/55_todo-list/02v_input/assets) +- - - - - [templates](27_code-in-process/55_todo-list/02v_input/assets/templates) +- - [56_twitter](27_code-in-process/56_twitter) +- - - [01_ux_design](27_code-in-process/56_twitter/01_ux_design) +- - - - [public](27_code-in-process/56_twitter/01_ux_design/public) +- - - - - [css](27_code-in-process/56_twitter/01_ux_design/public/css) +- - - - [templates](27_code-in-process/56_twitter/01_ux_design/templates) +- - - - - [html](27_code-in-process/56_twitter/01_ux_design/templates/html) +- - - [02_ListenAndServe](27_code-in-process/56_twitter/02_ListenAndServe) +- - - - [public](27_code-in-process/56_twitter/02_ListenAndServe/public) +- - - - - [css](27_code-in-process/56_twitter/02_ListenAndServe/public/css) +- - - - [templates](27_code-in-process/56_twitter/02_ListenAndServe/templates) +- - - - - [html](27_code-in-process/56_twitter/02_ListenAndServe/templates/html) +- - - [03_error-handling](27_code-in-process/56_twitter/03_error-handling) +- - - - [public](27_code-in-process/56_twitter/03_error-handling/public) +- - - - - [css](27_code-in-process/56_twitter/03_error-handling/public/css) +- - - - [templates](27_code-in-process/56_twitter/03_error-handling/templates) +- - - - - [html](27_code-in-process/56_twitter/03_error-handling/templates/html) +- - - [04_template_abstraction](27_code-in-process/56_twitter/04_template_abstraction) +- - - - [public](27_code-in-process/56_twitter/04_template_abstraction/public) +- - - - - [css](27_code-in-process/56_twitter/04_template_abstraction/public/css) +- - - - [templates](27_code-in-process/56_twitter/04_template_abstraction/templates) +- - - - - [html](27_code-in-process/56_twitter/04_template_abstraction/templates/html) +- - - [05_document](27_code-in-process/56_twitter/05_document) +- - - - [public](27_code-in-process/56_twitter/05_document/public) +- - - - - [css](27_code-in-process/56_twitter/05_document/public/css) +- - - - [templates](27_code-in-process/56_twitter/05_document/templates) +- - - - - [html](27_code-in-process/56_twitter/05_document/templates/html) +- - - [06_document](27_code-in-process/56_twitter/06_document) +- - - - [public](27_code-in-process/56_twitter/06_document/public) +- - - - - [css](27_code-in-process/56_twitter/06_document/public/css) +- - - - [templates](27_code-in-process/56_twitter/06_document/templates) +- - - - - [html](27_code-in-process/56_twitter/06_document/templates/html) +- - - [07_app-engine](27_code-in-process/56_twitter/07_app-engine) +- - - - [public](27_code-in-process/56_twitter/07_app-engine/public) +- - - - - [css](27_code-in-process/56_twitter/07_app-engine/public/css) +- - - - [templates](27_code-in-process/56_twitter/07_app-engine/templates) +- - - - - [html](27_code-in-process/56_twitter/07_app-engine/templates/html) +- - - [08_julien-schmidt](27_code-in-process/56_twitter/08_julien-schmidt) +- - - - [public](27_code-in-process/56_twitter/08_julien-schmidt/public) +- - - - - [css](27_code-in-process/56_twitter/08_julien-schmidt/public/css) +- - - - [templates](27_code-in-process/56_twitter/08_julien-schmidt/templates) +- - - - - [html](27_code-in-process/56_twitter/08_julien-schmidt/templates/html) +- - - [09_login-form](27_code-in-process/56_twitter/09_login-form) +- - - - [public](27_code-in-process/56_twitter/09_login-form/public) +- - - - - [css](27_code-in-process/56_twitter/09_login-form/public/css) +- - - - [temp](27_code-in-process/56_twitter/09_login-form/temp) +- - - - [templates](27_code-in-process/56_twitter/09_login-form/templates) +- - - - - [html](27_code-in-process/56_twitter/09_login-form/templates/html) +- - - [10_signup-form-validate](27_code-in-process/56_twitter/10_signup-form-validate) +- - - - [01v_form-validation](27_code-in-process/56_twitter/10_signup-form-validate/01v_form-validation) +- - - - - [public](27_code-in-process/56_twitter/10_signup-form-validate/01v_form-validation/public) +- - - - - - [css](27_code-in-process/56_twitter/10_signup-form-validate/01v_form-validation/public/css) +- - - - - [temp](27_code-in-process/56_twitter/10_signup-form-validate/01v_form-validation/temp) +- - - - - [templates](27_code-in-process/56_twitter/10_signup-form-validate/01v_form-validation/templates) +- - - - - - [html](27_code-in-process/56_twitter/10_signup-form-validate/01v_form-validation/templates/html) +- - - - [02v_datastore-put](27_code-in-process/56_twitter/10_signup-form-validate/02v_datastore-put) +- - - - - [public](27_code-in-process/56_twitter/10_signup-form-validate/02v_datastore-put/public) +- - - - - - [css](27_code-in-process/56_twitter/10_signup-form-validate/02v_datastore-put/public/css) +- - - - - [temp](27_code-in-process/56_twitter/10_signup-form-validate/02v_datastore-put/temp) +- - - - - [templates](27_code-in-process/56_twitter/10_signup-form-validate/02v_datastore-put/templates) +- - - - - - [html](27_code-in-process/56_twitter/10_signup-form-validate/02v_datastore-put/templates/html) +- - - [11_HTTPS-TLS](27_code-in-process/56_twitter/11_HTTPS-TLS) +- - - - [public](27_code-in-process/56_twitter/11_HTTPS-TLS/public) +- - - - - [css](27_code-in-process/56_twitter/11_HTTPS-TLS/public/css) +- - - - [templates](27_code-in-process/56_twitter/11_HTTPS-TLS/templates) +- - - - - [html](27_code-in-process/56_twitter/11_HTTPS-TLS/templates/html) +- - - [12_error-handling](27_code-in-process/56_twitter/12_error-handling) +- - - - [public](27_code-in-process/56_twitter/12_error-handling/public) +- - - - - [css](27_code-in-process/56_twitter/12_error-handling/public/css) +- - - - [templates](27_code-in-process/56_twitter/12_error-handling/templates) +- - - - - [html](27_code-in-process/56_twitter/12_error-handling/templates/html) +- - - [13_login_unfinished](27_code-in-process/56_twitter/13_login_unfinished) +- - - - [public](27_code-in-process/56_twitter/13_login_unfinished/public) +- - - - - [css](27_code-in-process/56_twitter/13_login_unfinished/public/css) +- - - - [templates](27_code-in-process/56_twitter/13_login_unfinished/templates) +- - - - - [html](27_code-in-process/56_twitter/13_login_unfinished/templates/html) +- - - [14_code-review](27_code-in-process/56_twitter/14_code-review) +- - - - [public](27_code-in-process/56_twitter/14_code-review/public) +- - - - - [css](27_code-in-process/56_twitter/14_code-review/public/css) +- - - - [templates](27_code-in-process/56_twitter/14_code-review/templates) +- - - - - [html](27_code-in-process/56_twitter/14_code-review/templates/html) +- - - [15_memcache-home](27_code-in-process/56_twitter/15_memcache-home) +- - - - [public](27_code-in-process/56_twitter/15_memcache-home/public) +- - - - - [css](27_code-in-process/56_twitter/15_memcache-home/public/css) +- - - - [templates](27_code-in-process/56_twitter/15_memcache-home/templates) +- - - - - [html](27_code-in-process/56_twitter/15_memcache-home/templates/html) +- - - [16_abstract-memcache-code](27_code-in-process/56_twitter/16_abstract-memcache-code) +- - - - [public](27_code-in-process/56_twitter/16_abstract-memcache-code/public) +- - - - - [css](27_code-in-process/56_twitter/16_abstract-memcache-code/public/css) +- - - - [templates](27_code-in-process/56_twitter/16_abstract-memcache-code/templates) +- - - - - [html](27_code-in-process/56_twitter/16_abstract-memcache-code/templates/html) +- - - [17_memcache-templates](27_code-in-process/56_twitter/17_memcache-templates) +- - - - [public](27_code-in-process/56_twitter/17_memcache-templates/public) +- - - - - [css](27_code-in-process/56_twitter/17_memcache-templates/public/css) +- - - - [templates](27_code-in-process/56_twitter/17_memcache-templates/templates) +- - - - - [html](27_code-in-process/56_twitter/17_memcache-templates/templates/html) +- - - [18_abstract-API-Model](27_code-in-process/56_twitter/18_abstract-API-Model) +- - - - [API](27_code-in-process/56_twitter/18_abstract-API-Model/API) +- - - - [Memcache](27_code-in-process/56_twitter/18_abstract-API-Model/Memcache) +- - - - [Model](27_code-in-process/56_twitter/18_abstract-API-Model/Model) +- - - - [public](27_code-in-process/56_twitter/18_abstract-API-Model/public) +- - - - - [css](27_code-in-process/56_twitter/18_abstract-API-Model/public/css) +- - - - [templates](27_code-in-process/56_twitter/18_abstract-API-Model/templates) +- - - - - [html](27_code-in-process/56_twitter/18_abstract-API-Model/templates/html) +- - - [19_abstract-API-Model_AE-fix](27_code-in-process/56_twitter/19_abstract-API-Model_AE-fix) +- - - - [API](27_code-in-process/56_twitter/19_abstract-API-Model_AE-fix/API) +- - - - [App](27_code-in-process/56_twitter/19_abstract-API-Model_AE-fix/App) +- - - - - [public](27_code-in-process/56_twitter/19_abstract-API-Model_AE-fix/App/public) +- - - - - - [css](27_code-in-process/56_twitter/19_abstract-API-Model_AE-fix/App/public/css) +- - - - - [templates](27_code-in-process/56_twitter/19_abstract-API-Model_AE-fix/App/templates) +- - - - - - [html](27_code-in-process/56_twitter/19_abstract-API-Model_AE-fix/App/templates/html) +- - - - [Memcache](27_code-in-process/56_twitter/19_abstract-API-Model_AE-fix/Memcache) +- - - - [Model](27_code-in-process/56_twitter/19_abstract-API-Model_AE-fix/Model) +- - - [20_reverting_to_only_package-main](27_code-in-process/56_twitter/20_reverting_to_only_package-main) +- - - - [public](27_code-in-process/56_twitter/20_reverting_to_only_package-main/public) +- - - - - [css](27_code-in-process/56_twitter/20_reverting_to_only_package-main/public/css) +- - - - [templates](27_code-in-process/56_twitter/20_reverting_to_only_package-main/templates) +- - - - - [html](27_code-in-process/56_twitter/20_reverting_to_only_package-main/templates/html) +- - - [21_set-cookie_no-PATH](27_code-in-process/56_twitter/21_set-cookie_no-PATH) +- - - - [public](27_code-in-process/56_twitter/21_set-cookie_no-PATH/public) +- - - - - [css](27_code-in-process/56_twitter/21_set-cookie_no-PATH/public/css) +- - - - [templates](27_code-in-process/56_twitter/21_set-cookie_no-PATH/templates) +- - - - - [html](27_code-in-process/56_twitter/21_set-cookie_no-PATH/templates/html) +- - - [22_set-cookie_PATH](27_code-in-process/56_twitter/22_set-cookie_PATH) +- - - - [public](27_code-in-process/56_twitter/22_set-cookie_PATH/public) +- - - - - [css](27_code-in-process/56_twitter/22_set-cookie_PATH/public/css) +- - - - [templates](27_code-in-process/56_twitter/22_set-cookie_PATH/templates) +- - - - - [html](27_code-in-process/56_twitter/22_set-cookie_PATH/templates/html) +- - - [23_set-cookie-UUID](27_code-in-process/56_twitter/23_set-cookie-UUID) +- - - - [public](27_code-in-process/56_twitter/23_set-cookie-UUID/public) +- - - - - [css](27_code-in-process/56_twitter/23_set-cookie-UUID/public/css) +- - - - [templates](27_code-in-process/56_twitter/23_set-cookie-UUID/templates) +- - - - - [html](27_code-in-process/56_twitter/23_set-cookie-UUID/templates/html) +- - - [24_session](27_code-in-process/56_twitter/24_session) +- - - - [public](27_code-in-process/56_twitter/24_session/public) +- - - - - [css](27_code-in-process/56_twitter/24_session/public/css) +- - - - [templates](27_code-in-process/56_twitter/24_session/templates) +- - - - - [html](27_code-in-process/56_twitter/24_session/templates/html) +- - - [25_session-all-pages](27_code-in-process/56_twitter/25_session-all-pages) +- - - - [public](27_code-in-process/56_twitter/25_session-all-pages/public) +- - - - - [css](27_code-in-process/56_twitter/25_session-all-pages/public/css) +- - - - [templates](27_code-in-process/56_twitter/25_session-all-pages/templates) +- - - - - [html](27_code-in-process/56_twitter/25_session-all-pages/templates/html) +- - - [26_login](27_code-in-process/56_twitter/26_login) +- - - - [public](27_code-in-process/56_twitter/26_login/public) +- - - - - [css](27_code-in-process/56_twitter/26_login/public/css) +- - - - [templates](27_code-in-process/56_twitter/26_login/templates) +- - - - - [html](27_code-in-process/56_twitter/26_login/templates/html) +- - - [27_logout](27_code-in-process/56_twitter/27_logout) +- - - - [public](27_code-in-process/56_twitter/27_logout/public) +- - - - - [css](27_code-in-process/56_twitter/27_logout/public/css) +- - - - [templates](27_code-in-process/56_twitter/27_logout/templates) +- - - - - [html](27_code-in-process/56_twitter/27_logout/templates/html) +- - - [28_code-review](27_code-in-process/56_twitter/28_code-review) +- - - - [public](27_code-in-process/56_twitter/28_code-review/public) +- - - - - [css](27_code-in-process/56_twitter/28_code-review/public/css) +- - - - [templates](27_code-in-process/56_twitter/28_code-review/templates) +- - - - - [html](27_code-in-process/56_twitter/28_code-review/templates/html) +- - - [29_password-encryption](27_code-in-process/56_twitter/29_password-encryption) +- - - - [public](27_code-in-process/56_twitter/29_password-encryption/public) +- - - - - [css](27_code-in-process/56_twitter/29_password-encryption/public/css) +- - - - [templates](27_code-in-process/56_twitter/29_password-encryption/templates) +- - - - - [html](27_code-in-process/56_twitter/29_password-encryption/templates/html) +- - - [30_turn-off-memcache](27_code-in-process/56_twitter/30_turn-off-memcache) +- - - - [public](27_code-in-process/56_twitter/30_turn-off-memcache/public) +- - - - - [css](27_code-in-process/56_twitter/30_turn-off-memcache/public/css) +- - - - [templates](27_code-in-process/56_twitter/30_turn-off-memcache/templates) +- - - - - [html](27_code-in-process/56_twitter/30_turn-off-memcache/templates/html) +- - - [31_modal-post-tweet](27_code-in-process/56_twitter/31_modal-post-tweet) +- - - - [public](27_code-in-process/56_twitter/31_modal-post-tweet/public) +- - - - - [css](27_code-in-process/56_twitter/31_modal-post-tweet/public/css) +- - - - [templates](27_code-in-process/56_twitter/31_modal-post-tweet/templates) +- - - - - [html](27_code-in-process/56_twitter/31_modal-post-tweet/templates/html) +- - - [32_tweets](27_code-in-process/56_twitter/32_tweets) +- - - - [public](27_code-in-process/56_twitter/32_tweets/public) +- - - - - [css](27_code-in-process/56_twitter/32_tweets/public/css) +- - - - [templates](27_code-in-process/56_twitter/32_tweets/templates) +- - - - - [html](27_code-in-process/56_twitter/32_tweets/templates/html) +- - - [33_display-all-tweets](27_code-in-process/56_twitter/33_display-all-tweets) +- - - - [public](27_code-in-process/56_twitter/33_display-all-tweets/public) +- - - - - [css](27_code-in-process/56_twitter/33_display-all-tweets/public/css) +- - - - [templates](27_code-in-process/56_twitter/33_display-all-tweets/templates) +- - - - - [html](27_code-in-process/56_twitter/33_display-all-tweets/templates/html) +- - - [34_humanize](27_code-in-process/56_twitter/34_humanize) +- - - - [public](27_code-in-process/56_twitter/34_humanize/public) +- - - - - [css](27_code-in-process/56_twitter/34_humanize/public/css) +- - - - [templates](27_code-in-process/56_twitter/34_humanize/templates) +- - - - - [html](27_code-in-process/56_twitter/34_humanize/templates/html) +- - - [35_schmidt-params](27_code-in-process/56_twitter/35_schmidt-params) +- - - - [01](27_code-in-process/56_twitter/35_schmidt-params/01) +- - - - [02](27_code-in-process/56_twitter/35_schmidt-params/02) +- - - - [03](27_code-in-process/56_twitter/35_schmidt-params/03) +- - - - [04](27_code-in-process/56_twitter/35_schmidt-params/04) +- - - - [05](27_code-in-process/56_twitter/35_schmidt-params/05) +- - - [36_user-tweets](27_code-in-process/56_twitter/36_user-tweets) +- - - - [public](27_code-in-process/56_twitter/36_user-tweets/public) +- - - - - [css](27_code-in-process/56_twitter/36_user-tweets/public/css) +- - - - [templates](27_code-in-process/56_twitter/36_user-tweets/templates) +- - - - - [html](27_code-in-process/56_twitter/36_user-tweets/templates/html) +- - - [37_other-implementations](27_code-in-process/56_twitter/37_other-implementations) +- - - - [01_daniel](27_code-in-process/56_twitter/37_other-implementations/01_daniel) +- - - - - [public](27_code-in-process/56_twitter/37_other-implementations/01_daniel/public) +- - - - - [templates](27_code-in-process/56_twitter/37_other-implementations/01_daniel/templates) +- - - - [02_tommy](27_code-in-process/56_twitter/37_other-implementations/02_tommy) +- - - - - [assets](27_code-in-process/56_twitter/37_other-implementations/02_tommy/assets) +- - - - - - [scripts](27_code-in-process/56_twitter/37_other-implementations/02_tommy/assets/scripts) +- - - - - [templates](27_code-in-process/56_twitter/37_other-implementations/02_tommy/templates) +- - - - [03_t](27_code-in-process/56_twitter/37_other-implementations/03_t) +- - - - - [public](27_code-in-process/56_twitter/37_other-implementations/03_t/public) +- - - - - - [css](27_code-in-process/56_twitter/37_other-implementations/03_t/public/css) +- - - - - - [js](27_code-in-process/56_twitter/37_other-implementations/03_t/public/js) +- - - - - [templates](27_code-in-process/56_twitter/37_other-implementations/03_t/templates) +- - - - - - [html](27_code-in-process/56_twitter/37_other-implementations/03_t/templates/html) +- - - - - [temporary](27_code-in-process/56_twitter/37_other-implementations/03_t/temporary) +- - - [38_follow](27_code-in-process/56_twitter/38_follow) +- - - - [public](27_code-in-process/56_twitter/38_follow/public) +- - - - - [css](27_code-in-process/56_twitter/38_follow/public/css) +- - - - [templates](27_code-in-process/56_twitter/38_follow/templates) +- - - - - [html](27_code-in-process/56_twitter/38_follow/templates/html) +- - - [39_unfollow](27_code-in-process/56_twitter/39_unfollow) +- - - - [public](27_code-in-process/56_twitter/39_unfollow/public) +- - - - - [css](27_code-in-process/56_twitter/39_unfollow/public/css) +- - - - [templates](27_code-in-process/56_twitter/39_unfollow/templates) +- - - - - [html](27_code-in-process/56_twitter/39_unfollow/templates/html) +- - - [40_send-email](27_code-in-process/56_twitter/40_send-email) +- - - [41_twitter-send-email](27_code-in-process/56_twitter/41_twitter-send-email) +- - - - [public](27_code-in-process/56_twitter/41_twitter-send-email/public) +- - - - - [css](27_code-in-process/56_twitter/41_twitter-send-email/public/css) +- - - - [templates](27_code-in-process/56_twitter/41_twitter-send-email/templates) +- - - - - [html](27_code-in-process/56_twitter/41_twitter-send-email/templates/html) +- - - [42_following](27_code-in-process/56_twitter/42_following) +- - - - [public](27_code-in-process/56_twitter/42_following/public) +- - - - - [css](27_code-in-process/56_twitter/42_following/public/css) +- - - - [templates](27_code-in-process/56_twitter/42_following/templates) +- - - - - [html](27_code-in-process/56_twitter/42_following/templates/html) +- - - [43_following-me](27_code-in-process/56_twitter/43_following-me) +- - - - [public](27_code-in-process/56_twitter/43_following-me/public) +- - - - - [css](27_code-in-process/56_twitter/43_following-me/public/css) +- - - - [templates](27_code-in-process/56_twitter/43_following-me/templates) +- - - - - [html](27_code-in-process/56_twitter/43_following-me/templates/html) +- - - [44_code-review](27_code-in-process/56_twitter/44_code-review) +- - - - [public](27_code-in-process/56_twitter/44_code-review/public) +- - - - - [css](27_code-in-process/56_twitter/44_code-review/public/css) +- - - - [templates](27_code-in-process/56_twitter/44_code-review/templates) +- - - - - [html](27_code-in-process/56_twitter/44_code-review/templates/html) +- - [57_appengine-channel](27_code-in-process/57_appengine-channel) +- - - [01_basic](27_code-in-process/57_appengine-channel/01_basic) +- - - [02_chat-room](27_code-in-process/57_appengine-channel/02_chat-room) +- - - - [public](27_code-in-process/57_appengine-channel/02_chat-room/public) +- - [58_appengine-search](27_code-in-process/58_appengine-search) +- - [59_appengine-GCS-storage](27_code-in-process/59_appengine-GCS-storage) +- - - [00_GCS-setup](27_code-in-process/59_appengine-GCS-storage/00_GCS-setup) +- - - [01_NewWriter_PEM-auth](27_code-in-process/59_appengine-GCS-storage/01_NewWriter_PEM-auth) +- - - [02_NewWriter_JSON-auth](27_code-in-process/59_appengine-GCS-storage/02_NewWriter_JSON-auth) +- - - [03_put-get-list_JSON-auth](27_code-in-process/59_appengine-GCS-storage/03_put-get-list_JSON-auth) +- - [60_movie-website](27_code-in-process/60_movie-website) +- - - [01_search](27_code-in-process/60_movie-website/01_search) +- - - - [public](27_code-in-process/60_movie-website/01_search/public) +- - - - [templates](27_code-in-process/60_movie-website/01_search/templates) +- - - [02_image-upload-GCS](27_code-in-process/60_movie-website/02_image-upload-GCS) +- - - - [public](27_code-in-process/60_movie-website/02_image-upload-GCS/public) +- - - - [templates](27_code-in-process/60_movie-website/02_image-upload-GCS/templates) +- - [61_http-giffy](27_code-in-process/61_http-giffy) +- - [62_self-destructing-message](27_code-in-process/62_self-destructing-message) +- - - [01](27_code-in-process/62_self-destructing-message/01) +- - - [02_crypto](27_code-in-process/62_self-destructing-message/02_crypto) +- - - - [01_nonce](27_code-in-process/62_self-destructing-message/02_crypto/01_nonce) +- - - - [02_encrypt](27_code-in-process/62_self-destructing-message/02_crypto/02_encrypt) +- - - - [03_decrypt](27_code-in-process/62_self-destructing-message/02_crypto/03_decrypt) +- - - - [04_complete](27_code-in-process/62_self-destructing-message/02_crypto/04_complete) +- - [63_GCS-filebrowser](27_code-in-process/63_GCS-filebrowser) +- - - [templates](27_code-in-process/63_GCS-filebrowser/templates) +- - [64_csv-example](27_code-in-process/64_csv-example) +- - - [01](27_code-in-process/64_csv-example/01) +- - - [02](27_code-in-process/64_csv-example/02) +- - [65_accepting-credit-cards](27_code-in-process/65_accepting-credit-cards) +- - - [01_basic-setup](27_code-in-process/65_accepting-credit-cards/01_basic-setup) +- - - - [templates](27_code-in-process/65_accepting-credit-cards/01_basic-setup/templates) +- - - [02_customizing_UI](27_code-in-process/65_accepting-credit-cards/02_customizing_UI) +- - - - [templates](27_code-in-process/65_accepting-credit-cards/02_customizing_UI/templates) +- - - [03_stripe-token](27_code-in-process/65_accepting-credit-cards/03_stripe-token) +- - - - [templates](27_code-in-process/65_accepting-credit-cards/03_stripe-token/templates) +- - - [04_err-because-of-app-engine](27_code-in-process/65_accepting-credit-cards/04_err-because-of-app-engine) +- - - - [templates](27_code-in-process/65_accepting-credit-cards/04_err-because-of-app-engine/templates) +- - - [05_charging](27_code-in-process/65_accepting-credit-cards/05_charging) +- - - - [templates](27_code-in-process/65_accepting-credit-cards/05_charging/templates) +- - - [06_idempotent](27_code-in-process/65_accepting-credit-cards/06_idempotent) +- - - - [templates](27_code-in-process/65_accepting-credit-cards/06_idempotent/templates) +- - - [07_complete](27_code-in-process/65_accepting-credit-cards/07_complete) +- - - - [templates](27_code-in-process/65_accepting-credit-cards/07_complete/templates) +- - [66_authentication_OAUTH](27_code-in-process/66_authentication_OAUTH) +- - - [01_app-engine-auth_REVIEW](27_code-in-process/66_authentication_OAUTH/01_app-engine-auth_REVIEW) +- - - [02_manual-auth](27_code-in-process/66_authentication_OAUTH/02_manual-auth) +- - - - [01_cookie_REVIEW](27_code-in-process/66_authentication_OAUTH/02_manual-auth/01_cookie_REVIEW) +- - - - [02_gorilla_REVIEW_photo-blog](27_code-in-process/66_authentication_OAUTH/02_manual-auth/02_gorilla_REVIEW_photo-blog) +- - - - - [01_simple](27_code-in-process/66_authentication_OAUTH/02_manual-auth/02_gorilla_REVIEW_photo-blog/01_simple) +- - - - - [02_photo-blog](27_code-in-process/66_authentication_OAUTH/02_manual-auth/02_gorilla_REVIEW_photo-blog/02_photo-blog) +- - - - - - [assets](27_code-in-process/66_authentication_OAUTH/02_manual-auth/02_gorilla_REVIEW_photo-blog/02_photo-blog/assets) +- - - - - - - [imgs](27_code-in-process/66_authentication_OAUTH/02_manual-auth/02_gorilla_REVIEW_photo-blog/02_photo-blog/assets/imgs) +- - - - - - - [templates](27_code-in-process/66_authentication_OAUTH/02_manual-auth/02_gorilla_REVIEW_photo-blog/02_photo-blog/assets/templates) +- - - - [03_memcache_REVIEW_twitter](27_code-in-process/66_authentication_OAUTH/02_manual-auth/03_memcache_REVIEW_twitter) +- - - - - [public](27_code-in-process/66_authentication_OAUTH/02_manual-auth/03_memcache_REVIEW_twitter/public) +- - - - - - [css](27_code-in-process/66_authentication_OAUTH/02_manual-auth/03_memcache_REVIEW_twitter/public/css) +- - - - - [templates](27_code-in-process/66_authentication_OAUTH/02_manual-auth/03_memcache_REVIEW_twitter/templates) +- - - - - - [html](27_code-in-process/66_authentication_OAUTH/02_manual-auth/03_memcache_REVIEW_twitter/templates/html) +- - - - [04_bcrypt](27_code-in-process/66_authentication_OAUTH/02_manual-auth/04_bcrypt) +- - - - - [01](27_code-in-process/66_authentication_OAUTH/02_manual-auth/04_bcrypt/01) +- - - - - [02](27_code-in-process/66_authentication_OAUTH/02_manual-auth/04_bcrypt/02) +- - - [03_oauth-github](27_code-in-process/66_authentication_OAUTH/03_oauth-github) +- - - - [00_readme](27_code-in-process/66_authentication_OAUTH/03_oauth-github/00_readme) +- - - - [01_authorization-code](27_code-in-process/66_authentication_OAUTH/03_oauth-github/01_authorization-code) +- - - - [02_access-token](27_code-in-process/66_authentication_OAUTH/03_oauth-github/02_access-token) +- - - - [03_url-ParseQuery](27_code-in-process/66_authentication_OAUTH/03_oauth-github/03_url-ParseQuery) +- - - - [04_user-email](27_code-in-process/66_authentication_OAUTH/03_oauth-github/04_user-email) +- - - - [05_configuration_scheduled-tasks_cron](27_code-in-process/66_authentication_OAUTH/03_oauth-github/05_configuration_scheduled-tasks_cron) +- - - - [06-complete](27_code-in-process/66_authentication_OAUTH/03_oauth-github/06-complete) +- - - [04_oauth-twitter](27_code-in-process/66_authentication_OAUTH/04_oauth-twitter) +- - - - [00_readme](27_code-in-process/66_authentication_OAUTH/04_oauth-twitter/00_readme) +- - - [05_oauth-facebook](27_code-in-process/66_authentication_OAUTH/05_oauth-facebook) +- - - - [00_readme](27_code-in-process/66_authentication_OAUTH/05_oauth-facebook/00_readme) +- - - [05_oauth-google](27_code-in-process/66_authentication_OAUTH/05_oauth-google) +- - - - [00_readme](27_code-in-process/66_authentication_OAUTH/05_oauth-google/00_readme) +- - - [06_oauth-linkedin](27_code-in-process/66_authentication_OAUTH/06_oauth-linkedin) +- - - - [00_readme](27_code-in-process/66_authentication_OAUTH/06_oauth-linkedin/00_readme) +- - - [07_oauth-vk](27_code-in-process/66_authentication_OAUTH/07_oauth-vk) +- - - - [00_readme](27_code-in-process/66_authentication_OAUTH/07_oauth-vk/00_readme) +- - - [08_oauth-dropbox](27_code-in-process/66_authentication_OAUTH/08_oauth-dropbox) +- - - - [00_readme](27_code-in-process/66_authentication_OAUTH/08_oauth-dropbox/00_readme) +- - [67_digital-ocean_aerospike](27_code-in-process/67_digital-ocean_aerospike) +- - - [01_helloWorld](27_code-in-process/67_digital-ocean_aerospike/01_helloWorld) +- - - [02_fullsite](27_code-in-process/67_digital-ocean_aerospike/02_fullsite) +- - - - [templates](27_code-in-process/67_digital-ocean_aerospike/02_fullsite/templates) +- - - [03-aerospike](27_code-in-process/67_digital-ocean_aerospike/03-aerospike) +- - - - [templates](27_code-in-process/67_digital-ocean_aerospike/03-aerospike/templates) +- - [68_task-queue](27_code-in-process/68_task-queue) +- - - [01_delay](27_code-in-process/68_task-queue/01_delay) +- - - [02_delay-cron](27_code-in-process/68_task-queue/02_delay-cron) +- - - [03_github](27_code-in-process/68_task-queue/03_github) +- - - [04_github-goroutines](27_code-in-process/68_task-queue/04_github-goroutines) +- - - [05_github-cron](27_code-in-process/68_task-queue/05_github-cron) +- - [90_append-to-file](27_code-in-process/90_append-to-file) +- - - [01-get-files](27_code-in-process/90_append-to-file/01-get-files) +- - - [02-apply](27_code-in-process/90_append-to-file/02-apply) +- - [97_temp](27_code-in-process/97_temp) +- - - [01](27_code-in-process/97_temp/01) +- - - [02](27_code-in-process/97_temp/02) +- - [98-good-student-code](27_code-in-process/98-good-student-code) +- - - [daniel](27_code-in-process/98-good-student-code/daniel) +- - - - [Week1](27_code-in-process/98-good-student-code/daniel/Week1) +- - - - - [blog](27_code-in-process/98-good-student-code/daniel/Week1/blog) +- - - - - [fullscreen](27_code-in-process/98-good-student-code/daniel/Week1/fullscreen) +- - - - - [google](27_code-in-process/98-good-student-code/daniel/Week1/google) +- - - - - [treehouse](27_code-in-process/98-good-student-code/daniel/Week1/treehouse) +- - - - [Week10](27_code-in-process/98-good-student-code/daniel/Week10) +- - - - - [dropbox-api](27_code-in-process/98-good-student-code/daniel/Week10/dropbox-api) +- - - - - [filebrowser](27_code-in-process/98-good-student-code/daniel/Week10/filebrowser) +- - - - - - [public](27_code-in-process/98-good-student-code/daniel/Week10/filebrowser/public) +- - - - - - [templates](27_code-in-process/98-good-student-code/daniel/Week10/filebrowser/templates) +- - - - - [payment](27_code-in-process/98-good-student-code/daniel/Week10/payment) +- - - - - - [templates](27_code-in-process/98-good-student-code/daniel/Week10/payment/templates) +- - - - [Week2](27_code-in-process/98-good-student-code/daniel/Week2) +- - - - - [backgroundPreview](27_code-in-process/98-good-student-code/daniel/Week2/backgroundPreview) +- - - - - [changingBackground](27_code-in-process/98-good-student-code/daniel/Week2/changingBackground) +- - - - - - [wallpapers](27_code-in-process/98-good-student-code/daniel/Week2/changingBackground/wallpapers) +- - - - - [destructButton](27_code-in-process/98-good-student-code/daniel/Week2/destructButton) +- - - - - [generatedList](27_code-in-process/98-good-student-code/daniel/Week2/generatedList) +- - - - - [imageListJavascript](27_code-in-process/98-good-student-code/daniel/Week2/imageListJavascript) +- - - - - [magic8ball](27_code-in-process/98-good-student-code/daniel/Week2/magic8ball) +- - - - - [whackAMole](27_code-in-process/98-good-student-code/daniel/Week2/whackAMole) +- - - - [Week3](27_code-in-process/98-good-student-code/daniel/Week3) +- - - - - [audioPlayer](27_code-in-process/98-good-student-code/daniel/Week3/audioPlayer) +- - - - - [hoverPreview](27_code-in-process/98-good-student-code/daniel/Week3/hoverPreview) +- - - - - [loadImage](27_code-in-process/98-good-student-code/daniel/Week3/loadImage) +- - - - - - [images](27_code-in-process/98-good-student-code/daniel/Week3/loadImage/images) +- - - - [Week4](27_code-in-process/98-good-student-code/daniel/Week4) +- - - - - [angularAjax](27_code-in-process/98-good-student-code/daniel/Week4/angularAjax) +- - - - - [chat](27_code-in-process/98-good-student-code/daniel/Week4/chat) +- - - - - [firebaseExample](27_code-in-process/98-good-student-code/daniel/Week4/firebaseExample) +- - - - - [flickrFeed](27_code-in-process/98-good-student-code/daniel/Week4/flickrFeed) +- - - - - [liveSearch](27_code-in-process/98-good-student-code/daniel/Week4/liveSearch) +- - - - - [mustacheTemplate](27_code-in-process/98-good-student-code/daniel/Week4/mustacheTemplate) +- - - - - [routing](27_code-in-process/98-good-student-code/daniel/Week4/routing) +- - - - [Week5](27_code-in-process/98-good-student-code/daniel/Week5) +- - - - - [web-components-training-exercises](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises) +- - - - - - [breaking-shadow-dom-polyfill](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/breaking-shadow-dom-polyfill) +- - - - - - - [another-component](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/breaking-shadow-dom-polyfill/another-component) +- - - - - - - [my-component](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/breaking-shadow-dom-polyfill/my-component) +- - - - - - [css-patterns-input-label-pairs](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/css-patterns-input-label-pairs) +- - - - - - [css-patterns-media-object](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/css-patterns-media-object) +- - - - - - [css-patterns-tabs](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/css-patterns-tabs) +- - - - - - [general-components](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/general-components) +- - - - - - - [hello-badge](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/general-components/hello-badge) +- - - - - - - [tabs](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/general-components/tabs) +- - - - - - - [waiting-spinner](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/general-components/waiting-spinner) +- - - - - - [hello-web-components](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/hello-web-components) +- - - - - - - [my-first-web-component](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/hello-web-components/my-first-web-component) +- - - - - - [intro-shadow-dom](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/intro-shadow-dom) +- - - - - - [nesting-components](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/nesting-components) +- - - - - - - [accordion_component](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/nesting-components/accordion_component) +- - - - - - [progress-bar-component](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/progress-bar-component) +- - - - - - [styleguide](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/styleguide) +- - - - - - - [components](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/styleguide/components) +- - - - - - - [vendor](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/styleguide/vendor) +- - - - - - [ui-libraries](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/ui-libraries) +- - - - - - - [dogo-toolkit](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/ui-libraries/dogo-toolkit) +- - - - - - - [jquery-ui](27_code-in-process/98-good-student-code/daniel/Week5/web-components-training-exercises/ui-libraries/jquery-ui) +- - - - [Week6](27_code-in-process/98-good-student-code/daniel/Week6) +- - - - - [1-text-editors](27_code-in-process/98-good-student-code/daniel/Week6/1-text-editors) +- - - - - [2-browser-devtools](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools) +- - - - - - [common](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/common) +- - - - - - [zlickr](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/zlickr) +- - - - - - - [css](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/zlickr/css) +- - - - - - - [img](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/zlickr/img) +- - - - - - [zmail](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/zmail) +- - - - - - - [css](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/zmail/css) +- - - - - - - [js](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/zmail/js) +- - - - - - [zordpress](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/zordpress) +- - - - - - - [css](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/zordpress/css) +- - - - - - - [js](27_code-in-process/98-good-student-code/daniel/Week6/2-browser-devtools/zordpress/js) +- - - - - [3-html5](27_code-in-process/98-good-student-code/daniel/Week6/3-html5) +- - - - - - [1-detection](27_code-in-process/98-good-student-code/daniel/Week6/3-html5/1-detection) +- - - - - - [2-structure](27_code-in-process/98-good-student-code/daniel/Week6/3-html5/2-structure) +- - - - - - [3-audio](27_code-in-process/98-good-student-code/daniel/Week6/3-html5/3-audio) +- - - - - - [4-video](27_code-in-process/98-good-student-code/daniel/Week6/3-html5/4-video) +- - - - - - [5-input](27_code-in-process/98-good-student-code/daniel/Week6/3-html5/5-input) +- - - - - - [6-mark](27_code-in-process/98-good-student-code/daniel/Week6/3-html5/6-mark) +- - - - - - [7-progress](27_code-in-process/98-good-student-code/daniel/Week6/3-html5/7-progress) +- - - - - [4-js](27_code-in-process/98-good-student-code/daniel/Week6/4-js) +- - - - - - [1-jquery](27_code-in-process/98-good-student-code/daniel/Week6/4-js/1-jquery) +- - - - - - [2-audio](27_code-in-process/98-good-student-code/daniel/Week6/4-js/2-audio) +- - - - - - [3-video](27_code-in-process/98-good-student-code/daniel/Week6/4-js/3-video) +- - - - - - [4-form](27_code-in-process/98-good-student-code/daniel/Week6/4-js/4-form) +- - - - - - [5-storage](27_code-in-process/98-good-student-code/daniel/Week6/4-js/5-storage) +- - - - - - [6-geolocation](27_code-in-process/98-good-student-code/daniel/Week6/4-js/6-geolocation) +- - - - - - [7-usermedia](27_code-in-process/98-good-student-code/daniel/Week6/4-js/7-usermedia) +- - - - - - [8-dragndrop](27_code-in-process/98-good-student-code/daniel/Week6/4-js/8-dragndrop) +- - - - - - [9-canvas](27_code-in-process/98-good-student-code/daniel/Week6/4-js/9-canvas) +- - - - - [5-web-components](27_code-in-process/98-good-student-code/daniel/Week6/5-web-components) +- - - - - - [0-proto](27_code-in-process/98-good-student-code/daniel/Week6/5-web-components/0-proto) +- - - - - - [1-custom-elements](27_code-in-process/98-good-student-code/daniel/Week6/5-web-components/1-custom-elements) +- - - - - - [2-html-templates](27_code-in-process/98-good-student-code/daniel/Week6/5-web-components/2-html-templates) +- - - - - - [3-shadow-dom](27_code-in-process/98-good-student-code/daniel/Week6/5-web-components/3-shadow-dom) +- - - - - - [4-html-imports](27_code-in-process/98-good-student-code/daniel/Week6/5-web-components/4-html-imports) +- - - - - [6-collapse](27_code-in-process/98-good-student-code/daniel/Week6/6-collapse) +- - - - - [7-polymer](27_code-in-process/98-good-student-code/daniel/Week6/7-polymer) +- - - - - - [1-registering](27_code-in-process/98-good-student-code/daniel/Week6/7-polymer/1-registering) +- - - - - - [2-lifecycle](27_code-in-process/98-good-student-code/daniel/Week6/7-polymer/2-lifecycle) +- - - - - - [3-properties](27_code-in-process/98-good-student-code/daniel/Week6/7-polymer/3-properties) +- - - - - - [4-local-dom](27_code-in-process/98-good-student-code/daniel/Week6/7-polymer/4-local-dom) +- - - - - - [5-data-binding](27_code-in-process/98-good-student-code/daniel/Week6/7-polymer/5-data-binding) +- - - - - [8-bonus](27_code-in-process/98-good-student-code/daniel/Week6/8-bonus) +- - - - [Week7](27_code-in-process/98-good-student-code/daniel/Week7) +- - - - - [Converter](27_code-in-process/98-good-student-code/daniel/Week7/Converter) +- - - - - [Hello](27_code-in-process/98-good-student-code/daniel/Week7/Hello) +- - - - - [Loops](27_code-in-process/98-good-student-code/daniel/Week7/Loops) +- - - - - [capitalize](27_code-in-process/98-good-student-code/daniel/Week7/capitalize) +- - - - - [distanceConverter](27_code-in-process/98-good-student-code/daniel/Week7/distanceConverter) +- - - - - [findSmallest](27_code-in-process/98-good-student-code/daniel/Week7/findSmallest) +- - - - - [monuments](27_code-in-process/98-good-student-code/daniel/Week7/monuments) +- - - - - [my-cat](27_code-in-process/98-good-student-code/daniel/Week7/my-cat) +- - - - - [my-md5](27_code-in-process/98-good-student-code/daniel/Week7/my-md5) +- - - - - [profileGenerator](27_code-in-process/98-good-student-code/daniel/Week7/profileGenerator) +- - - - - [rotate](27_code-in-process/98-good-student-code/daniel/Week7/rotate) +- - - - - [wordCount](27_code-in-process/98-good-student-code/daniel/Week7/wordCount) +- - - - - [yahooFinantial](27_code-in-process/98-good-student-code/daniel/Week7/yahooFinantial) +- - - - [Week8](27_code-in-process/98-good-student-code/daniel/Week8) +- - - - - [chatRoom](27_code-in-process/98-good-student-code/daniel/Week8/chatRoom) +- - - - - [colors](27_code-in-process/98-good-student-code/daniel/Week8/colors) +- - - - - [csv-convert](27_code-in-process/98-good-student-code/daniel/Week8/csv-convert) +- - - - - [customHttpServer](27_code-in-process/98-good-student-code/daniel/Week8/customHttpServer) +- - - - - [echoServer](27_code-in-process/98-good-student-code/daniel/Week8/echoServer) +- - - - - [firstAppEngine](27_code-in-process/98-good-student-code/daniel/Week8/firstAppEngine) +- - - - - [firstTemplate](27_code-in-process/98-good-student-code/daniel/Week8/firstTemplate) +- - - - - [formExample](27_code-in-process/98-good-student-code/daniel/Week8/formExample) +- - - - - [httpAnimals](27_code-in-process/98-good-student-code/daniel/Week8/httpAnimals) +- - - - - [json-example](27_code-in-process/98-good-student-code/daniel/Week8/json-example) +- - - - - [photoBlog](27_code-in-process/98-good-student-code/daniel/Week8/photoBlog) +- - - - - [profile](27_code-in-process/98-good-student-code/daniel/Week8/profile) +- - - - - [redisDatabase](27_code-in-process/98-good-student-code/daniel/Week8/redisDatabase) +- - - - - [secureHello](27_code-in-process/98-good-student-code/daniel/Week8/secureHello) +- - - - - [static-http](27_code-in-process/98-good-student-code/daniel/Week8/static-http) +- - - - - [testExample](27_code-in-process/98-good-student-code/daniel/Week8/testExample) +- - - - - [todolist](27_code-in-process/98-good-student-code/daniel/Week8/todolist) +- - - - [Week9](27_code-in-process/98-good-student-code/daniel/Week9) +- - - - - [chat-example](27_code-in-process/98-good-student-code/daniel/Week9/chat-example) +- - - - - - [public](27_code-in-process/98-good-student-code/daniel/Week9/chat-example/public) +- - - - - [movie-search](27_code-in-process/98-good-student-code/daniel/Week9/movie-search) +- - - - - - [templates](27_code-in-process/98-good-student-code/daniel/Week9/movie-search/templates) +- - - - - [storageExample](27_code-in-process/98-good-student-code/daniel/Week9/storageExample) +- - [99_svcc](27_code-in-process/99_svcc) +- - - [01_string-to-html](27_code-in-process/99_svcc/01_string-to-html) +- - - [02_os-args](27_code-in-process/99_svcc/02_os-args) +- - - [03_text-template](27_code-in-process/99_svcc/03_text-template) +- - - [04_pipeline](27_code-in-process/99_svcc/04_pipeline) +- - - [05_pipeline-range](27_code-in-process/99_svcc/05_pipeline-range) +- - - [06_pipeline-range-else](27_code-in-process/99_svcc/06_pipeline-range-else) +- - - [07_composition](27_code-in-process/99_svcc/07_composition) +- - - [08_composition-conditional](27_code-in-process/99_svcc/08_composition-conditional) +- - - [09_methods](27_code-in-process/99_svcc/09_methods) +- - - [10_xss](27_code-in-process/99_svcc/10_xss) +- - - [11_html-templates](27_code-in-process/99_svcc/11_html-templates) +- - - [12_parsefiles](27_code-in-process/99_svcc/12_parsefiles) +- - - [13_ParseGlob](27_code-in-process/99_svcc/13_ParseGlob) +- - - - [templates](27_code-in-process/99_svcc/13_ParseGlob/templates) +- - - [14_tcp_echo-server](27_code-in-process/99_svcc/14_tcp_echo-server) +- - - [15_tcp_echo-server](27_code-in-process/99_svcc/15_tcp_echo-server) +- - - [16_redis-clone_step-2](27_code-in-process/99_svcc/16_redis-clone_step-2) +- - - [17_redis-clone_step-5](27_code-in-process/99_svcc/17_redis-clone_step-5) +- - - [18_rot13](27_code-in-process/99_svcc/18_rot13) +- - - [19_DIY_http-server_request-line_headers](27_code-in-process/99_svcc/19_DIY_http-server_request-line_headers) +- - - [20_DIY_http-server_step-01](27_code-in-process/99_svcc/20_DIY_http-server_step-01) +- - - [21_DIY_http-server_step-02](27_code-in-process/99_svcc/21_DIY_http-server_step-02) +- - - [22_DIY_http-server_step-03](27_code-in-process/99_svcc/22_DIY_http-server_step-03) +- - - [23_DIY_http-server_step-04](27_code-in-process/99_svcc/23_DIY_http-server_step-04) +- - - [24_http-server_ServeMux](27_code-in-process/99_svcc/24_http-server_ServeMux) +- - - [25_http-server_DefaultServeMux](27_code-in-process/99_svcc/25_http-server_DefaultServeMux) +- - - [26_serving-files_io-Copy](27_code-in-process/99_svcc/26_serving-files_io-Copy) +- - - [27_serving-files_ServeContent](27_code-in-process/99_svcc/27_serving-files_ServeContent) +- - - [28_serving-files_ServeFile](27_code-in-process/99_svcc/28_serving-files_ServeFile) +- - - [29_serving-files_FileServer](27_code-in-process/99_svcc/29_serving-files_FileServer) +- - - [30_serving-files_FileServer](27_code-in-process/99_svcc/30_serving-files_FileServer) +- - - - [assets](27_code-in-process/99_svcc/30_serving-files_FileServer/assets) +- - - [31_serving-files_FileServer](27_code-in-process/99_svcc/31_serving-files_FileServer) +- - - - [assets](27_code-in-process/99_svcc/31_serving-files_FileServer/assets) +- - - [32_static-FileServer](27_code-in-process/99_svcc/32_static-FileServer) +- - - - [assets](27_code-in-process/99_svcc/32_static-FileServer/assets) +- - - - - [images](27_code-in-process/99_svcc/32_static-FileServer/assets/images) +- - - - - - [home](27_code-in-process/99_svcc/32_static-FileServer/assets/images/home) +- - - - - [stylesheets](27_code-in-process/99_svcc/32_static-FileServer/assets/stylesheets) +- - - [33_set-cookie](27_code-in-process/99_svcc/33_set-cookie) +- - - [34_get-cookie](27_code-in-process/99_svcc/34_get-cookie) +- - - [35_favicon-bye-bye](27_code-in-process/99_svcc/35_favicon-bye-bye) +- - - [36_sessions_cookie](27_code-in-process/99_svcc/36_sessions_cookie) +- - - [37_sessions_cookie_log-in-out](27_code-in-process/99_svcc/37_sessions_cookie_log-in-out) +- - - [38_HMAC](27_code-in-process/99_svcc/38_HMAC) +- - - - [01](27_code-in-process/99_svcc/38_HMAC/01) +- - - - [02](27_code-in-process/99_svcc/38_HMAC/02) +- - - - [03](27_code-in-process/99_svcc/38_HMAC/03) +- - - [39_AES-encrypt-decrypt](27_code-in-process/99_svcc/39_AES-encrypt-decrypt) +- - - [40_sessions_GORILLA](27_code-in-process/99_svcc/40_sessions_GORILLA) +- - - [41_sessions_GORILLA_log-in-out](27_code-in-process/99_svcc/41_sessions_GORILLA_log-in-out) +- - - [42_JSON](27_code-in-process/99_svcc/42_JSON) +- - - [43_sessions_GORILLA_JSON](27_code-in-process/99_svcc/43_sessions_GORILLA_JSON) +- - - [44_file-paths](27_code-in-process/99_svcc/44_file-paths) +- - - - [assets](27_code-in-process/99_svcc/44_file-paths/assets) +- - - - - [imgs](27_code-in-process/99_svcc/44_file-paths/assets/imgs) +- - - [45_sessions_GORILLA_photo-blog](27_code-in-process/99_svcc/45_sessions_GORILLA_photo-blog) +- - - - [assets](27_code-in-process/99_svcc/45_sessions_GORILLA_photo-blog/assets) +- - - - - [imgs](27_code-in-process/99_svcc/45_sessions_GORILLA_photo-blog/assets/imgs) +- - - - - [templates](27_code-in-process/99_svcc/45_sessions_GORILLA_photo-blog/assets/templates) +- - - [46_HTTPS-TLS](27_code-in-process/99_svcc/46_HTTPS-TLS) diff --git a/README.md b/README.md index 6675eefa..f9ceab8b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,32 @@ # GolangTraining Training for Golang (go language) + +## [Table of Contents](INDEX.md) +- [Getting Started](01_getting-started) +- [Package](02_package) +- [Variables](03_variables) +- [Scope](04_scope) +- [Blank Identifier](05_blank-identifier) +- [Constants](06_constants) +- [Memory Address](07_memory-address) +- [Pointers](08_pointers) +- [Remainder](09_remainder) +- [For Loop](10_for-loop) +- [Switch Statements](11_switch-statements) +- [If ElseIf Else](12_if_else-if_else) +- [Exercise Solutions](13_exercise-solutions) +- [Functions](14_functions) +- [Bool Expressions](15_bool-expressions) +- [Exercise Solutions](16_exercise-solutions) +- [Array](17_array) +- [Slice](18_slice) +- [Map](19_map) +- [Struct](20_struct) +- [Interface](21_interfaces) +- [Go Routines](22_go-routines) +- [Error Handling](23_error-handling) +- [Testing](24_testing) +- [Code Walk](25_code-walk) +- [Questions](26_QUESTIONS-FROM-STUDENTS) +- [Code in Process](27_code-in-process) + click here for [more details](INDEX.md) \ No newline at end of file diff --git a/index.go b/index.go new file mode 100644 index 00000000..21cbbfa4 --- /dev/null +++ b/index.go @@ -0,0 +1,64 @@ +package main + +import ( + "fmt" + "os" + "path/filepath" + "strings" +) + +func main() { + + // walk location + root := "." + + directories, err := Directories(root) + if err != nil { + fmt.Println(err) + return + } + + // create MD file + file, err := os.OpenFile("INDEX.md", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) + if err != nil { + fmt.Println(err) + return + } + defer func() { + _ = file.Close() + }() + + _, _ = file.WriteString("# Directory Index\n\n") + + // walk directories + for _, directory := range directories { + _ = filepath.Walk(directory, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if info.IsDir() { + depth := strings.Count(path, string(filepath.Separator)) - strings.Count(root, string(filepath.Separator)) + indent := strings.Repeat("- ", depth+1) + _, _ = fmt.Fprintf(file, "%s[%s](%s)\n", indent, info.Name(), path) + } + return nil + }) + } + + fmt.Println("directory index structure created") +} + +// Directories List of level 1 +func Directories(root string) ([]string, error) { + directories := make([]string, 0) + entries, err := os.ReadDir(root) + if err != nil { + return directories, err + } + for _, e := range entries { + if e.IsDir() && !strings.HasPrefix(e.Name(), ".") { + directories = append(directories, e.Name()) + } + } + return directories, nil +}