diff --git a/.github/ISSUE_TEMPLATE/bug-report-block.yml b/.github/ISSUE_TEMPLATE/bug-report-block.yml index 941f38310be..f7e3b81db1d 100644 --- a/.github/ISSUE_TEMPLATE/bug-report-block.yml +++ b/.github/ISSUE_TEMPLATE/bug-report-block.yml @@ -1,4 +1,4 @@ -name: Bug Report (block) +name: Bug Report (Blocks) description: Create a report to help us improve our blocks labels: - A-blocks diff --git a/.github/ISSUE_TEMPLATE/bug-report-deer.yml b/.github/ISSUE_TEMPLATE/bug-report-deer.yml new file mode 100644 index 00000000000..fde2f1b1bcf --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report-deer.yml @@ -0,0 +1,98 @@ +name: Bug Report (deer) +description: Create a report to help us improve `deer` +labels: + - A-deer + - C-bug +assignees: + - Alfred-Mountfield + - TimDiekmann + - indietyp +body: + - type: markdown + attributes: + value: | + Thank you for taking the time to fill out this bug report! + + Please try to fill out the fields below. If you don't know what to put in the fields please left them blank. + + - type: textarea + id: description + attributes: + label: Describe the bug + description: A clear and concise description of what the bug is. + validations: + required: true + + - type: textarea + id: reproduce + attributes: + label: To reproduce + description: Steps to reproduce the behavior. + render: Rust + placeholder: | + fn main() { + // How to reproduce the issue + } + validations: + required: false + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: A clear and concise description of what you expected to happen. + validations: + required: false + + - type: input + id: rustc + attributes: + label: Rust compiler + description: Which Rust compiler do you use? The current rust version can be printed by `rustc -V` + placeholder: e.g. 1.66.0 nightly (2022-09-27) + validations: + required: false + + - type: input + id: os + attributes: + label: Host + description: Which operating system are you on? Please post the output for `host` of `rustc -vV`. + placeholder: e.g. aarch64-apple-darwin + validations: + required: false + + - type: input + id: target + attributes: + label: Target + description: What target are you compiling to? You can find a list of all installed targets with `rustup show`. + placeholder: e.g. x86_64-unknown-linux-musl + validations: + required: false + + - type: input + id: revision + attributes: + label: Revision + description: What revision of `deer` do you use? + placeholder: e.g. abcd1234 + validations: + required: false + + - type: input + id: features + attributes: + label: Features + description: What features are enabled? + placeholder: default, std + validations: + required: false + + - type: textarea + id: additional + attributes: + label: Additional context + description: Add any other context about the problem here, e.g. screenshots. + validations: + required: false diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9c4150b17bc..0a315277e77 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,6 +19,7 @@ These apply across all projects: - Always include a link to the issue or discussion proposing the change. - Write tests to accompany your PR, or ask for help/guidance if this is a blocker. - Make sure that your PR doesn’t break existing tests. + - Sign our _Contributor License Agreement_ at the CLA Assistant's prompting. (To learn more, read [why we have a CLA](https://hash.ai/legal/cla)) - Once you have receive a pull request review, please bear the following in mind: - reviewers may make suggestions for _optional_ changes which are not required to get your code merged. It should be obvious which suggestions are optional, and which are required changes. If it is not obvious, ask for clarification. - please do not resolve comment threads unless you opened them - leave it to the person who raised a comment to decide if any further discussion is required (GitHub will also automatically resolve any code suggestions you click 'commit' on). Comment threads may also be left open so that they can be linked to later. diff --git a/packages/libs/error-stack/CHANGELOG.md b/packages/libs/error-stack/CHANGELOG.md index fd9f4b86621..60765ce63ca 100644 --- a/packages/libs/error-stack/CHANGELOG.md +++ b/packages/libs/error-stack/CHANGELOG.md @@ -7,6 +7,10 @@ All notable changes to `error-stack` will be documented in this file. - Support for [`serde`](https://serde.rs) (`Serialize` only) - Support for [`defmt`](https://defmt.ferrous-systems.com) +## Unreleased + +- Add Apache 2.0 as an additional license option ([#1172](https://github.com/hashintel/hash/pull/1172)) + ## [0.2.2](https://github.com/hashintel/hash/tree/error-stack%400.2.2/packages/libs/error-stack) - 2022-10-07 - Add a space before attachment formatting ([#1174](https://github.com/hashintel/hash/pull/1174)) diff --git a/packages/libs/error-stack/Cargo.toml b/packages/libs/error-stack/Cargo.toml index 657141db9c7..bd01fdc5341 100644 --- a/packages/libs/error-stack/Cargo.toml +++ b/packages/libs/error-stack/Cargo.toml @@ -8,7 +8,7 @@ version = "0.2.2" authors = ["HASH"] edition = "2021" rust-version = "1.63.0" -license = "MIT" +license = "MIT OR Apache-2.0" description = "A context-aware error-handling library that supports arbitrary attached user data" documentation = "https://docs.rs/error-stack" readme = "README.md" diff --git a/packages/libs/error-stack/LICENSE-APACHE.md b/packages/libs/error-stack/LICENSE-APACHE.md new file mode 100644 index 00000000000..6ac710501f8 --- /dev/null +++ b/packages/libs/error-stack/LICENSE-APACHE.md @@ -0,0 +1,191 @@ + + +# Apache License + +_Version 2.0, January 2004_ +_<>_ + +### Terms and Conditions for use, reproduction, and distribution + +#### 1. Definitions + +“License” shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +“Licensor” shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +“Legal Entity” shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, “control” means **(i)** the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the +outstanding shares, or **(iii)** beneficial ownership of such entity. + +“You” (or “Your”) shall mean an individual or Legal Entity exercising +permissions granted by this License. + +“Source” form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +“Object” form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +“Work” shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +“Derivative Works” shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +“Contribution” shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +“submitted” means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as “Not a Contribution.” + +“Contributor” shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +#### 2. Grant of Copyright License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +#### 3. Grant of Patent License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +#### 4. Redistribution + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +- **(a)** You must give any other recipients of the Work or Derivative Works a copy of + this License; and +- **(b)** You must cause any modified files to carry prominent notices stating that You + changed the files; and +- **(c)** You must retain, in the Source form of any Derivative Works that You distribute, + all copyright, patent, trademark, and attribution notices from the Source form + of the Work, excluding those notices that do not pertain to any part of the + Derivative Works; and +- **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any + Derivative Works that You distribute must include a readable copy of the + attribution notices contained within such NOTICE file, excluding those notices + that do not pertain to any part of the Derivative Works, in at least one of the + following places: within a NOTICE text file distributed as part of the + Derivative Works; within the Source form or documentation, if provided along + with the Derivative Works; or, within a display generated by the Derivative + Works, if and wherever such third-party notices normally appear. The contents of + the NOTICE file are for informational purposes only and do not modify the + License. You may add Your own attribution notices within Derivative Works that + You distribute, alongside or as an addendum to the NOTICE text from the Work, + provided that such additional attribution notices cannot be construed as + modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +#### 5. Submission of Contributions + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +#### 6. Trademarks + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +#### 7. Disclaimer of Warranty + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +#### 8. Limitation of Liability + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +#### 9. Accepting Warranty or Additional Liability + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +_END OF TERMS AND CONDITIONS_ + +### APPENDIX: Apply the Apache License to a specific file + +To apply the Apache License to an individual file, attach the following notice. +The text should be enclosed in the appropriate comment syntax for the file +format. + + Copyright © 2022–, HASH + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/libs/error-stack/LICENSE.md b/packages/libs/error-stack/LICENSE-MIT.md similarity index 94% rename from packages/libs/error-stack/LICENSE.md rename to packages/libs/error-stack/LICENSE-MIT.md index 155049598ed..e33c1d34b0e 100644 --- a/packages/libs/error-stack/LICENSE.md +++ b/packages/libs/error-stack/LICENSE-MIT.md @@ -1,7 +1,6 @@ -MIT License -=========== +# MIT License -Copyright © 2022, HASH +Copyright © 2022–, HASH Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -19,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/packages/libs/error-stack/README.md b/packages/libs/error-stack/README.md index d946bb8a827..f12a9a75703 100644 --- a/packages/libs/error-stack/README.md +++ b/packages/libs/error-stack/README.md @@ -97,6 +97,18 @@ This will most likely result in an error and print ![](https://github.com/hashintel/hash/blob/8ed55bd73045fba83a7ea2e199b31d5b829537b9/packages/libs/error-stack/assets/full.png?raw=true) -Please see the [documentation] for a full description. +## Usage -For more examples, please check out the [examples](./examples) folder. +Please see the [documentation]. + +For more examples of `error-stack` in use, please check out the [examples](https://github.com/hashintel/hash/tree/main/packages/libs/error-stack/examples) folder. + +## Contributors + +`error-stack` was created and is maintained by [HASH](https://hash.dev/). As an open-source project, we gratefully accept external contributions and have published a [contributing guide](https://github.com/hashintel/hash/blob/main/CONTRIBUTING.md) that outlines the process. If you have questions, please reach out to us on our [Discord server](https://hash.ai/discord). + +## License + +Licensed under either of [Apache License, Version 2.0](LICENSE-APACHE.md) or [MIT license](LICENSE-MIT.md) at your option. + +For more information about contributing to this crate, see our top-level [CONTRIBUTING](https://github.com/hashintel/hash/blob/main/CONTRIBUTING.md) policy. diff --git a/sites/hashai/README.md b/sites/hashai/README.md index 0361cdaf402..bd23a4f909e 100644 --- a/sites/hashai/README.md +++ b/sites/hashai/README.md @@ -5,4 +5,4 @@ The [hash.ai](https://hash.ai) website code currently resides in our private [`i - **User Guide** ([hash.ai/docs](https://hash.ai/docs)): found in this repository under the [`resources/docs`](https://github.com/hashintel/hash/tree/main/sites/hashai/resources/docs) directory - **Glossary Definitions** ([hash.ai/glossary](https://hash.ai/glossary)): found in this repository under the [`resources/glossary`](https://github.com/hashintel/hash/tree/main/sites/hashai/resources/glossary) directory -Other hash.ai website content will be uploaded to this `sites/hashai` directory and the `resources` subdirectory in due course. +Other hash.ai website content will be uploaded to the `resources` directory in due course. diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_1.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_1.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_1.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_1.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_10.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_10.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_10.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_10.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_2.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_2.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_2.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_2.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_3.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_3.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_3.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_3.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_4.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_4.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_4.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_4.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_5.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_5.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_5.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_5.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_6.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_6.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_6.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_6.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_7.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_7.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_7.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_7.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_8.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_8.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_8.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_8.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_9.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_9.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_9.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_9.png diff --git a/sites/hashdev/public/blog/1_block-design/DesignGuidelines_Cover.png b/sites/hashdev/public/blog/0001_block-design/DesignGuidelines_Cover.png similarity index 100% rename from sites/hashdev/public/blog/1_block-design/DesignGuidelines_Cover.png rename to sites/hashdev/public/blog/0001_block-design/DesignGuidelines_Cover.png diff --git a/sites/hashdev/public/blog/1_block-design/README.md b/sites/hashdev/public/blog/0001_block-design/README.md similarity index 81% rename from sites/hashdev/public/blog/1_block-design/README.md rename to sites/hashdev/public/blog/0001_block-design/README.md index d108779ad59..d36170ca752 100644 --- a/sites/hashdev/public/blog/1_block-design/README.md +++ b/sites/hashdev/public/blog/0001_block-design/README.md @@ -1,4 +1,4 @@ This directory contains assets for Maggie's "Design guidelines for building blocks with the Block Protocol" blog post. - Public on the [hash.dev blog](https://hash.dev/blog/block-design) -- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/1_block-design.mdx) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0001_block-design.mdx) diff --git a/sites/hashdev/public/blog/2_open-source/OpenSource_Cover.jpg b/sites/hashdev/public/blog/0002_open-source/OpenSource_Cover.jpg similarity index 100% rename from sites/hashdev/public/blog/2_open-source/OpenSource_Cover.jpg rename to sites/hashdev/public/blog/0002_open-source/OpenSource_Cover.jpg diff --git a/sites/hashdev/public/blog/2_open-source/README.md b/sites/hashdev/public/blog/0002_open-source/README.md similarity index 79% rename from sites/hashdev/public/blog/2_open-source/README.md rename to sites/hashdev/public/blog/0002_open-source/README.md index 068767f4925..8f5864fe98f 100644 --- a/sites/hashdev/public/blog/2_open-source/README.md +++ b/sites/hashdev/public/blog/0002_open-source/README.md @@ -1,4 +1,4 @@ This directory contains assets for David's "Open source at HASH" blog post. - Public on the [hash.dev blog](https://hash.dev/blog/open-source) -- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/2_open-source.mdx) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0002_open-source.mdx) diff --git a/sites/hashdev/public/blog/3_one-principle/3_one-principle.jpg b/sites/hashdev/public/blog/0003_one-principle/3_one-principle.jpg similarity index 100% rename from sites/hashdev/public/blog/3_one-principle/3_one-principle.jpg rename to sites/hashdev/public/blog/0003_one-principle/3_one-principle.jpg diff --git a/sites/hashdev/public/blog/3_one-principle/README.md b/sites/hashdev/public/blog/0003_one-principle/README.md similarity index 79% rename from sites/hashdev/public/blog/3_one-principle/README.md rename to sites/hashdev/public/blog/0003_one-principle/README.md index e5eec32dee1..303ba5ac67e 100644 --- a/sites/hashdev/public/blog/3_one-principle/README.md +++ b/sites/hashdev/public/blog/0003_one-principle/README.md @@ -1,4 +1,4 @@ This directory contains assets for David's "The Non-Negotiable Principle" blog post. - Public on the [hash.dev blog](https://hash.dev/blog/one-principle) -- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/3_one-principle.mdx) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0003_one-principle.mdx) diff --git a/sites/hashdev/public/blog/4_announcing-error-stack/ErrorStack_Cover.jpg b/sites/hashdev/public/blog/0004_announcing-error-stack/ErrorStack_Cover.jpg similarity index 100% rename from sites/hashdev/public/blog/4_announcing-error-stack/ErrorStack_Cover.jpg rename to sites/hashdev/public/blog/0004_announcing-error-stack/ErrorStack_Cover.jpg diff --git a/sites/hashdev/public/blog/4_announcing-error-stack/README.md b/sites/hashdev/public/blog/0004_announcing-error-stack/README.md similarity index 76% rename from sites/hashdev/public/blog/4_announcing-error-stack/README.md rename to sites/hashdev/public/blog/0004_announcing-error-stack/README.md index 04eb40347d8..9fd42661b9a 100644 --- a/sites/hashdev/public/blog/4_announcing-error-stack/README.md +++ b/sites/hashdev/public/blog/0004_announcing-error-stack/README.md @@ -1,4 +1,4 @@ This directory contains assets for Tim's "Announcing error-stack" blog post. - Public on the [hash.dev blog](https://hash.dev/blog/announcing-error-stack) -- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/4_announcing-error-stack.mdx) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0004_announcing-error-stack.mdx) diff --git a/sites/hashdev/public/blog/5_build-blocks-in-any-language/FSharp_Cover.jpg b/sites/hashdev/public/blog/0005_build-blocks-in-any-language/FSharp_Cover.jpg similarity index 100% rename from sites/hashdev/public/blog/5_build-blocks-in-any-language/FSharp_Cover.jpg rename to sites/hashdev/public/blog/0005_build-blocks-in-any-language/FSharp_Cover.jpg diff --git a/sites/hashdev/public/blog/0005_build-blocks-in-any-language/README.md b/sites/hashdev/public/blog/0005_build-blocks-in-any-language/README.md new file mode 100644 index 00000000000..8fb5b956395 --- /dev/null +++ b/sites/hashdev/public/blog/0005_build-blocks-in-any-language/README.md @@ -0,0 +1,4 @@ +This directory contains assets for Ahmad's "How to build Block Protocol blocks in any language" blog post. + +- Public on the [hash.dev blog](https://hash.dev/blog/build-blocks-in-any-language) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0005_build-blocks-in-any-language.mdx) diff --git a/sites/hashdev/public/blog/5_build-blocks-in-any-language/expression_math.png b/sites/hashdev/public/blog/0005_build-blocks-in-any-language/expression_math.png similarity index 100% rename from sites/hashdev/public/blog/5_build-blocks-in-any-language/expression_math.png rename to sites/hashdev/public/blog/0005_build-blocks-in-any-language/expression_math.png diff --git a/sites/hashdev/public/blog/5_build-blocks-in-any-language/mvu.png b/sites/hashdev/public/blog/0005_build-blocks-in-any-language/mvu.png similarity index 100% rename from sites/hashdev/public/blog/5_build-blocks-in-any-language/mvu.png rename to sites/hashdev/public/blog/0005_build-blocks-in-any-language/mvu.png diff --git a/sites/hashdev/public/blog/5_build-blocks-in-any-language/person_count.png b/sites/hashdev/public/blog/0005_build-blocks-in-any-language/person_count.png similarity index 100% rename from sites/hashdev/public/blog/5_build-blocks-in-any-language/person_count.png rename to sites/hashdev/public/blog/0005_build-blocks-in-any-language/person_count.png diff --git a/sites/hashdev/public/blog/6_block-protocol-v02/BlockProtocolV2_Cover.jpg b/sites/hashdev/public/blog/0006_block-protocol-v02/BlockProtocolV2_Cover.jpg similarity index 100% rename from sites/hashdev/public/blog/6_block-protocol-v02/BlockProtocolV2_Cover.jpg rename to sites/hashdev/public/blog/0006_block-protocol-v02/BlockProtocolV2_Cover.jpg diff --git a/sites/hashdev/public/blog/6_block-protocol-v02/README.md b/sites/hashdev/public/blog/0006_block-protocol-v02/README.md similarity index 79% rename from sites/hashdev/public/blog/6_block-protocol-v02/README.md rename to sites/hashdev/public/blog/0006_block-protocol-v02/README.md index d78fdd8ebe7..c06b1edf3cd 100644 --- a/sites/hashdev/public/blog/6_block-protocol-v02/README.md +++ b/sites/hashdev/public/blog/0006_block-protocol-v02/README.md @@ -1,4 +1,4 @@ This directory contains assets for David's "De-commodifying the internet, block by block" blog post. - Public on the [hash.dev blog](https://hash.dev/blog/block-protocol-v02) -- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/6_block-protocol-v02.mdx) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0006_block-protocol-v02.mdx) diff --git a/sites/hashdev/public/blog/7_block-paved-path/7_block-path-cover.jpg b/sites/hashdev/public/blog/0007_block-paved-path/7_block-path-cover.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/7_block-path-cover.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/7_block-path-cover.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/README.md b/sites/hashdev/public/blog/0007_block-paved-path/README.md similarity index 79% rename from sites/hashdev/public/blog/7_block-paved-path/README.md rename to sites/hashdev/public/blog/0007_block-paved-path/README.md index 0d3f475087b..fc39f08de9e 100644 --- a/sites/hashdev/public/blog/7_block-paved-path/README.md +++ b/sites/hashdev/public/blog/0007_block-paved-path/README.md @@ -1,4 +1,4 @@ This directory contains assets for Maggie's "The Block-paved Path to Structured Data" blog post. - Public on the [hash.dev blog](https://hash.dev/blog/block-paved-path) -- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/7_block-paved-path.mdx) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0007_block-paved-path.mdx) diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-1.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-1.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-1.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-1.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-10.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-10.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-10.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-10.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-11.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-11.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-11.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-11.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-12.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-12.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-12.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-12.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-13.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-13.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-13.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-13.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-14.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-14.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-14.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-14.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-14a.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-14a.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-14a.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-14a.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-15.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-15.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-15.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-15.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-16.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-16.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-16.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-16.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-17.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-17.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-17.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-17.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-18.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-18.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-18.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-18.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-19.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-19.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-19.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-19.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-2.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-2.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-2.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-2.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-20.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-20.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-20.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-20.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-21.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-21.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-21.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-21.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-22.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-22.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-22.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-22.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-23.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-23.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-23.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-23.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-24.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-24.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-24.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-24.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-25.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-25.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-25.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-25.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-26.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-26.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-26.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-26.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-27.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-27.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-27.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-27.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-28.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-28.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-28.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-28.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-29.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-29.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-29.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-29.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-3.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-3.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-3.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-3.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-30.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-30.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-30.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-30.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-31.mp4 b/sites/hashdev/public/blog/0007_block-paved-path/block-path-31.mp4 similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-31.mp4 rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-31.mp4 diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-32.mp4 b/sites/hashdev/public/blog/0007_block-paved-path/block-path-32.mp4 similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-32.mp4 rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-32.mp4 diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-33.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-33.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-33.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-33.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-34.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-34.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-34.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-34.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-35.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-35.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-35.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-35.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-36.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-36.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-36.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-36.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-37.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-37.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-37.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-37.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-38.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-38.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-38.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-38.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-39.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-39.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-39.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-39.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-4.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-4.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-4.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-4.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-40.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-40.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-40.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-40.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-41.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-41.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-41.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-41.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-42.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-42.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-42.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-42.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-43.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-43.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-43.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-43.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-44.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-44.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-44.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-44.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-45.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-45.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-45.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-45.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-46.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-46.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-46.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-46.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-47.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-47.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-47.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-47.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-48.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-48.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-48.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-48.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-49.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-49.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-49.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-49.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-5.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-5.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-5.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-5.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-50.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-50.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-50.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-50.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-51.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-51.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-51.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-51.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-52.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-52.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-52.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-52.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-53.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-53.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-53.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-53.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-54.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-54.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-54.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-54.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-55.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-55.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-55.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-55.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-56.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-56.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-56.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-56.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-57.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-57.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-57.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-57.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-58.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-58.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-58.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-58.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-59.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-59.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-59.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-59.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-6.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-6.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-6.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-6.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-60.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-60.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-60.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-60.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-61.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-61.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-61.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-61.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-62.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-62.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-62.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-62.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-63.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-63.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-63.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-63.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-64.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-64.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-64.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-64.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-65.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-65.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-65.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-65.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-66.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-66.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-66.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-66.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-67.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-67.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-67.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-67.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-68.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-68.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-68.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-68.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-69.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-69.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-69.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-69.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-7.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-7.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-7.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-7.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-70.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-70.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-70.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-70.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-71.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-71.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-71.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-71.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-72.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-72.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-72.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-72.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-73.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-73.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-73.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-73.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-74.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-74.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-74.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-74.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-75.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-75.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-75.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-75.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-76.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-76.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-76.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-76.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-77.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-77.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-77.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-77.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-78.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-78.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-78.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-78.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-79.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-79.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-79.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-79.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-8.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-8.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-8.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-8.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-80.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-80.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-80.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-80.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-81.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-81.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-81.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-81.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-82.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-82.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-82.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-82.jpg diff --git a/sites/hashdev/public/blog/7_block-paved-path/block-path-9.jpg b/sites/hashdev/public/blog/0007_block-paved-path/block-path-9.jpg similarity index 100% rename from sites/hashdev/public/blog/7_block-paved-path/block-path-9.jpg rename to sites/hashdev/public/blog/0007_block-paved-path/block-path-9.jpg diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/8_sensitivity_assessor.jpg b/sites/hashdev/public/blog/0008_sensitivity-assessor/8_sensitivity_assessor.jpg similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/8_sensitivity_assessor.jpg rename to sites/hashdev/public/blog/0008_sensitivity-assessor/8_sensitivity_assessor.jpg diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/8_sensitivity_assessor_uncompressed.jpg b/sites/hashdev/public/blog/0008_sensitivity-assessor/8_sensitivity_assessor_uncompressed.jpg similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/8_sensitivity_assessor_uncompressed.jpg rename to sites/hashdev/public/blog/0008_sensitivity-assessor/8_sensitivity_assessor_uncompressed.jpg diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/README.md b/sites/hashdev/public/blog/0008_sensitivity-assessor/README.md similarity index 79% rename from sites/hashdev/public/blog/8_sensitivity-assessor/README.md rename to sites/hashdev/public/blog/0008_sensitivity-assessor/README.md index fb0d77a3113..b05e94ca766 100644 --- a/sites/hashdev/public/blog/8_sensitivity-assessor/README.md +++ b/sites/hashdev/public/blog/0008_sensitivity-assessor/README.md @@ -1,4 +1,4 @@ This directory contains assets for VMASC's "Sensitivity analysis within HASH simulations" blog post. - Public on the [hash.dev blog](https://hash.dev/blog/sensitivity-assessor) -- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/8_sensitivity-assessor.mdx) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0008_sensitivity-assessor.mdx) diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/equation-1.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/equation-1.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/equation-1.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/equation-1.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/equation-2.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/equation-2.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/equation-2.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/equation-2.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/equation-3.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/equation-3.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/equation-3.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/equation-3.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-10_sensitivity-assessment-table.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-10_sensitivity-assessment-table.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-10_sensitivity-assessment-table.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-10_sensitivity-assessment-table.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-11_converting-from-hash-to-sa.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-11_converting-from-hash-to-sa.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-11_converting-from-hash-to-sa.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-11_converting-from-hash-to-sa.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-12_hash-output-sa-format.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-12_hash-output-sa-format.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-12_hash-output-sa-format.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-12_hash-output-sa-format.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-1_simulation-init-state.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-1_simulation-init-state.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-1_simulation-init-state.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-1_simulation-init-state.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-2_simulation-step-15.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-2_simulation-step-15.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-2_simulation-step-15.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-2_simulation-step-15.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-3_simulation-step-30.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-3_simulation-step-30.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-3_simulation-step-30.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-3_simulation-step-30.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-4_plot-view.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-4_plot-view.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-4_plot-view.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-4_plot-view.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-5_eda-capabilities.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-5_eda-capabilities.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-5_eda-capabilities.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-5_eda-capabilities.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-6_verifying-requirements.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-6_verifying-requirements.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-6_verifying-requirements.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-6_verifying-requirements.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-7_understanding-quantification-sensitivity-assessments.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-7_understanding-quantification-sensitivity-assessments.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-7_understanding-quantification-sensitivity-assessments.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-7_understanding-quantification-sensitivity-assessments.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-8_understanding-likelihood-1.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-8_understanding-likelihood-1.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-8_understanding-likelihood-1.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-8_understanding-likelihood-1.png diff --git a/sites/hashdev/public/blog/8_sensitivity-assessor/figure-9_understanding-likelihood-2.png b/sites/hashdev/public/blog/0008_sensitivity-assessor/figure-9_understanding-likelihood-2.png similarity index 100% rename from sites/hashdev/public/blog/8_sensitivity-assessor/figure-9_understanding-likelihood-2.png rename to sites/hashdev/public/blog/0008_sensitivity-assessor/figure-9_understanding-likelihood-2.png diff --git a/sites/hashdev/public/blog/0009_strange-loop-workshop/README.md b/sites/hashdev/public/blog/0009_strange-loop-workshop/README.md new file mode 100644 index 00000000000..26a9e20bb4b --- /dev/null +++ b/sites/hashdev/public/blog/0009_strange-loop-workshop/README.md @@ -0,0 +1,4 @@ +This directory contains assets for Ciaran's "Build a block at Strange Loop" blog post. + +- Public on the [hash.dev blog](https://hash.dev/blog/strange-loop-workshop) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0009_strange-loop-workshop.mdx) diff --git a/sites/hashdev/public/blog/9_strange-loop-workshop/cover-image-alt.jpg b/sites/hashdev/public/blog/0009_strange-loop-workshop/cover-image-alt.jpg similarity index 100% rename from sites/hashdev/public/blog/9_strange-loop-workshop/cover-image-alt.jpg rename to sites/hashdev/public/blog/0009_strange-loop-workshop/cover-image-alt.jpg diff --git a/sites/hashdev/public/blog/9_strange-loop-workshop/cover-image.jpg b/sites/hashdev/public/blog/0009_strange-loop-workshop/cover-image.jpg similarity index 100% rename from sites/hashdev/public/blog/9_strange-loop-workshop/cover-image.jpg rename to sites/hashdev/public/blog/0009_strange-loop-workshop/cover-image.jpg diff --git a/sites/hashdev/public/blog/10_error-stack-update-0-2/Cover.jpg b/sites/hashdev/public/blog/0010_error-stack-update-0-2/Cover.jpg similarity index 100% rename from sites/hashdev/public/blog/10_error-stack-update-0-2/Cover.jpg rename to sites/hashdev/public/blog/0010_error-stack-update-0-2/Cover.jpg diff --git a/sites/hashdev/public/blog/10_error-stack-update-0-2/README.md b/sites/hashdev/public/blog/0010_error-stack-update-0-2/README.md similarity index 77% rename from sites/hashdev/public/blog/10_error-stack-update-0-2/README.md rename to sites/hashdev/public/blog/0010_error-stack-update-0-2/README.md index bb3b76525dd..ddeb5bbe496 100644 --- a/sites/hashdev/public/blog/10_error-stack-update-0-2/README.md +++ b/sites/hashdev/public/blog/0010_error-stack-update-0-2/README.md @@ -1,4 +1,4 @@ This directory contains assets for Tim's "Announcing error-stack v0.2" blog post. - Public on the [hash.dev blog](https://hash.dev/blog/error-stack-update-0-2) -- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/10_error-stack-update-0-2.mdx) +- Editable on [GitHub](https://github.com/hashintel/hash/blob/main/sites/hashdev/src/_pages/blog/0010_error-stack-update-0-2.mdx) diff --git a/sites/hashdev/src/_pages/blog/1_block-design.mdx b/sites/hashdev/src/_pages/blog/0001_block-design.mdx similarity index 96% rename from sites/hashdev/src/_pages/blog/1_block-design.mdx rename to sites/hashdev/src/_pages/blog/0001_block-design.mdx index 09bec35fdae..00f5d21021f 100644 --- a/sites/hashdev/src/_pages/blog/1_block-design.mdx +++ b/sites/hashdev/src/_pages/blog/0001_block-design.mdx @@ -1,6 +1,6 @@ --- authorPhoto: blog/authors/maggie-appleton.png -postPhoto: blog/1_block-design/DesignGuidelines_Cover.png +postPhoto: blog/0001_block-design/DesignGuidelines_Cover.png title: "Design guidelines for building blocks with the Block Protocol" subtitle: "How to make your blocks feel intuitive, easy to use, and beautiful across every application." author: "Maggie Appleton" @@ -10,7 +10,7 @@ date: "2022-04-24" This guide is for developers who want to build blocks with the [Block Protocol](https://blockprotocol.org). The protocol allows you to build blocks that will work in any application that also follows the protocol. It acts as the communication layer between an application and a block. The block and the application don't need to know anything about how the other is built. They only need to follow the protocol to work seamlessly together. -![A diagram of a set of blocks connected through the Block Protocol to an embedding application on the other side](blog/1_block-design/DesignGuidelines_2.png) +![A diagram of a set of blocks connected through the Block Protocol to an embedding application on the other side](blog/0001_block-design/DesignGuidelines_2.png) This opens up a world of possibilities; as a developer, you can build any block you like and publish it to the [Block Hub](https://blockprotocol.org/hub) or [npm](https://www.npmjs.com/). Other developers can then download and use it in any protocol-compliant application. @@ -68,7 +68,7 @@ Embedding applications can also pass a plain old CSS file into the block if they No matter how beautiful a block looks, it's not worth much to anyone if it's difficult to use. Soft drop shadows and smooth gradients aren't going to delight the user if they're furiously trying to find the “save” button, and you've stashed it inside a dropdown menu that's too low contrast to see. A text input field with a very low contrast dropdown menu below it. Inside there is a low contrast 'save' button and a much larger and more prominent 'delete' button. - + I like to give the punchline away early in my talks. I'm here to convince you of a thesis – that block-based interfaces can help us create _more_ structured data on the web. - + We're going to tackle this in four parts; we'll first clarify _why_ we should care about structured data at all. We'll then look at the rise of **block-based interfaces** – a design pattern that's become incredibly popular over the last 5 years. We'll then consider some current problems with block-based interfaces. And finally we'll explore a [protocol](https://blockprotocol.org) that we've been working on at [HASH](https://hash.ai). The goal of it is to address many of these problems both with blocks and structured data. - + First, why is it worth dreaming about a world where we have _more_ structured data than right now? - + “Structured data” means different things in different contexts, but in this talk I'm specifically going to be talking about structured data on the web. @@ -55,19 +55,19 @@ The web is filled with content – blog posts, product descriptions, images, hea - + So if I wanted to search the web for content on Ted Chiang's book [Exhalation](https://en.wikipedia.org/wiki/Exhalation:_Stories) (a great read, by the way)... - + And I do a standard text search for “exhalation”, I'll get _some_ results about the book. But I'm just as likely to get results about breathing techniques or medical issues. The computer doesn't know the difference between Exhalation the book, and exhalation the biological concept. But we can fix this... - + ...by adding structured data. This simply means labelling this content in a way computers can understand. We can programmatically declare a type on it. @@ -80,7 +80,7 @@ Some of these properties will be types that have their own properties. For examp - + To give you a practical example of what this looks like, this is what unstructured data might look like for a website about this conference. We have the title in an `

` tag and the description, times, and location in `

` tags. @@ -88,7 +88,7 @@ As far as the computer knows, this content is a bunch of mystery nonsense. It's - + In contrast, this is what it would look like as structured data. This is the same event written up in JSON-LD (JSON Linked Data), which is currently the most popular and widely used format across the web. @@ -96,7 +96,7 @@ We can see it declares that this thing is of the type _Event_, and has propertie - + At this point, some people are thinking this all sounds very familiar. What I'm describing is the semantic web. @@ -110,7 +110,7 @@ At this point I'll say I'm _not_ a semantic web expect, and this is a very touch - +

First, ontologies – meaning the schemas we define for types like “Person” or @@ -139,7 +139,7 @@ the left.” Try putting that into your schema. - +

The second issue is competing formats. Over the years people have proposed @@ -155,13 +155,13 @@ You are probably overwhelmed by that list, and so are all the developers who are - + Third, there are incentive issues. It takes a lot of developer labour to add semantic markup to a website, and doesn't offer immediate benefits in return. Structured data can certainly improve SEO and content discovery, but beyond that we haven't found enough compelling use cases for it for creators and publishers. - +

Lastly, the ambitious scale of the semantic web compounds all the above @@ -173,7 +173,7 @@ All these problems have made a lot of people skeptical about the feasibility of - + The debate about the semantic web has devolved into an unhelpful binary. @@ -185,7 +185,7 @@ This conversation doesn't leave a lot of room for nuance. - + What's we're missing here is the sensible middle ground of opportunity. There's plenty of value in pursuing structured data at a smaller scale. It's much easier to agree upon and maintain ontologies within companies, sets of companies, academic institutions, and communities. @@ -193,13 +193,13 @@ The original idea wasn't the problem, only the scale of it. - + Structured data is clearly useful. In fact, it's already actively used and useful across the web now. The most common use case you've likely heard of is around enabling SEO and “rich results” in search engines. - + If I search for a recipe like “carrot cake” on the search engine Bing, I get a page filled with useful information like images, ratings, keywords, and Wikipedia data. All without needing to navigate to individual results pages. This is a much better experience than seeing a wall of text. @@ -207,7 +207,7 @@ Bing knows which sites contain carrot cake recipes and can surface details from - + Similarly, if I search for the book “The Dawn of Everything” on Google, I get page showing me key information about the book. But I also get a row of options for where to buy this book and how much it costs. @@ -217,7 +217,7 @@ Search results are perhaps our best modern success story of leveraging structure - + Second, structured data can help us manage content in a way that leads to adaptable, more sophisticated UX. This use case is what most of the people at this conference are focused on. @@ -225,13 +225,13 @@ Structuring content just within a single company can lead to enormous benefits. - + This is an example of a content model from the book [Designing Connected Content](https://learning.oreilly.com/library/view/designing-connected-content/9780134764061/). It shows a set of entities, properties, and relationships related to an Event type. This sort of structured content modelling allows us to create interfaces that provide users with a clear [mental model](https://www.nngroup.com/articles/mental-models/) of the things they're interacting with. It also makes it easy to define these pieces of data in one central place and flexibly reuse them across devices, platforms, and contexts. - + Lastly, structured data makes life much easier for data scientists and academics. Data scientists in particular have trouble getting good quality data off the web. They often have to scrape websites, download messy data files, then manually clean, label, and format the data before they can work with it. Structured data eliminates much of that work. @@ -239,7 +239,7 @@ There's also a lot of interest from the academic community around “knowledge g - + Let's jump back to our structured data binary for a moment. Right now we're about here on the spectrum of no structured data to all structured data. A very small percentage of content on the web is encoded with structured data. @@ -247,7 +247,7 @@ We also don't have a lot of accessible, high-quality software that helps us crea - + I think a practical question we should all be asking is how do we get _here_? Rather than trying to make the _whole_ web structured data, how do we simply nudge this arrow slightly further along to the right? @@ -255,7 +255,7 @@ The goal is _more_ structured data, not _all_ structured data. - + One of the major barriers to this goal is that almost all our existing tools related to structured data are designed to serve developers. @@ -263,31 +263,31 @@ Most of the focus of the semantic web movement has gone into creating syntax for - + And _this_ is a really rough user interface to work in. And it's certainly not accessible to most people. - + Which brings us to a prescient question: how do we make it easier for everyone to create structured data? - + Or put more specifically, what type of interfaces might enable non-developers to create structured data? - + So, I have a hypothesis for this question. And you can probably guess what it is... [blocks](https://hash.ai/glossary/blocks)! - + I now want to talk to you about the huge surge in blocks and composable interfaces we've seen over the last five years. @@ -297,7 +297,7 @@ Well, you have almost certainly seen and used a block. - + _This is a video - click play on the slide_ @@ -309,7 +309,7 @@ You're essentially able to create very powerful layouts and formats with a very - + _This is a video - click play on the slide_ @@ -323,19 +323,19 @@ This is all _very_ difficult to do if you're working in native web languages lik - + The interface patterns in block-based editors have already become quite consistent and standardized. In most of them you can type `/` and get a dropdown list of block options. - + In some of the more complex ones, they present blocks in a sidebar or configuration panel. But generally everyone has converged on a standardized format for how these editors work. Which is great for users who don't have to relearn the patterns for every new app. - + So now that we've seen a couple of examples of block-based interfaces, I want to give you a more concise definition of a “block” @@ -343,19 +343,19 @@ I define it as a single unit of content... - + ...within a document or canvas... - + ...that can be flexibly composed and rearranged... - + ...and has a _type_ that determines how it displays data. @@ -363,7 +363,7 @@ So a table obviously lays data out in rows and columns... - + ...while a kanban lays it out in a set of cards. @@ -371,25 +371,25 @@ Another key feature of blocks is you can _change that type_ while the data insid - + ...an image gallery. - + And critically, blocks allow _end-users_, meaning anyone who is _not_ a professional developer, to create, edit, and delete the data within these blocks. All without writing any code. The users are in control of the data rather than the developers. - + Blocks also enable what I call _modular, composable interfaces_. Open canvases where users can drag and drop blocks into place like legos. These are easy to use and accessible to a much wider audience than any markup or syntax could hope to be. - + These types of interfaces are obviously very **powerful** and **popular**. And to explain why I'm going to reference a quote from [Joel Spolsky](https://www.joelonsoftware.com/), who co-founded [HASH](https://hash.ai), as well as companies like _Stack Overflow_, _Trello_, and _Glitch_. @@ -401,13 +401,13 @@ The reason these apps are great for such a broad range of use cases is they give - + And I think block-based apps are becoming the meta-medium for horizontal apps. They're a material with the potential to do whatever you need them to. They allow you to _pick your own_ fancy data structures from a wide list. - + Unsurprisingly, block-based apps have started popping up everywhere. There are three main categories they fall into. @@ -415,13 +415,13 @@ The first is documents, wikis, and knowledge management systems. The kinds of ap - + The second is WYSIWYG website builders and web publishing platforms. This includes platforms like WordPress's Gutenberg editor, Squarespace, and Webflow. They're explicitly designed to help you create standard web designs like landing pages, contact forms, and blogs. - + The third category that's just starting to take shape is what I'm calling “Do-it-Yourself SaaS tooling.” These apps give users to ability to create their own interfaces with a lot more programmatic functionality baked in. You can usually query a separate data source, add "if this, then that" logic to elements, and define more advanced block functionality like filterable lists and dropdown selectors. @@ -429,7 +429,7 @@ Rather than subscribing to ten different SaaS services, these apps are beginning - + The lines between these categories are quite fuzzy. I think of it as a spectrum of block-based paradigms. Each app frames what you're creating slightly differently. Some present it as a document, some as a website, and some as a fully-fledged app. @@ -439,7 +439,7 @@ This is why so many people have ended up using tools like Notion as website buil - + But I think the _real_ benefit of these block-based applications – the reason they're so widely used – is they **shift power from developers to users**. @@ -451,7 +451,7 @@ If 5 years ago I wanted to put a table of data onto a website, I would be writin - + We've established that blocks are wildly popular, and they enable hundreds of thousands of people to publish rich, complex documents to the web. @@ -459,13 +459,13 @@ So, what's the problem here? And how does this relate to structured data? - + First, blocks are proprietary to individual applications, and can't be moved between applications. - + If I have a block that I love using in one of my apps – probably because it's well designed and easy to interace with – I'm only able to use it within that app. @@ -473,7 +473,7 @@ Let's say there's a block that renders LaTeX beautifully in my note-taking app. - + Closely related to that: an _enormous_ number of developer hours are spent reinventing the same blocks over and over. @@ -481,7 +481,7 @@ Most of these apps have the same basic types of blocks; header, checklist, table - + If we look at the kanban block in Notion, Coda, and ClickUp, we'll notice they all work the same. They offer the same basic functionality, format, and interactions. But the developers had to build each of these seperately. (**Editor's note:** take for example apps like WordPress, DayOne and Tumblr — each of these from the single same company, Automattic, each using the exact same framework, Gutenberg, and yet each today has their _own_ 'image' block, developed separately without shared abstractions to build upon) @@ -491,13 +491,13 @@ This is a waste of time and energy for developers. It's also frustrating for use - + The next issue is that users only get access to a limited range of blocks. - + Users are given between 30-70 blocks in each of these applications, and usually on the lower end of that range. @@ -505,7 +505,7 @@ Here's the block picker dropdown in an app _Clover_ with a fairly typical list o - + Compare this to what your everyday React developer has access to. If I hop onto the _npm_ package manager for JavaScript, and search for “react components”, I get over 64,000 results to pick from. Obviously, not all of these components are going to be block-like things. Many will be utilities or helpers. @@ -513,19 +513,19 @@ But this still shows there is a huge discrepancy between the power and choice de - + The final and biggest problem with proprietary blocks is that there's no structured data behind these blocks. Which in turns leads to poor data interoperability between platforms. - + A table in Wordpress Gutenberg and a table in Notion appear to have the same data structure on the surface. They both have values stored in rows are columns. But they're built differently on the back-end. They're not _designed_ to be shareable. This means we can't easily pass data from a Gutenberg table into a Notion table. - + Which brings me to our last section: the Block Protocol! @@ -533,13 +533,13 @@ The [Block Protocol](https://blockprotocol.org) is a project by [HASH](https://h - + It specifies a standardized way for any block to communicate with any block-based application. - + But rather than these two systems talking directly to one another as they like, they instead both communicate in a way defined by the protocol. The protocol in essence provides a shared set of terms for negotiation between the two parties. A bit like a set of rules about what you can say and how you should say it. @@ -547,7 +547,7 @@ Any block that talks to this protocol can talk to any application that also spea - + This makes it possible to embed blocks that follow the protocol into any app that also follows the protocol. @@ -555,7 +555,7 @@ The developers of the block and the application don't have to know anything abou - + Embedding is great, but what we really want here is _data exchange_. @@ -567,7 +567,7 @@ Obviously, the block can only make these changes with the _permission_ of the ap - + Blocks can also send data to one another, which leads to some dynamic interactivity between them. @@ -575,7 +575,7 @@ I like to think of these as [oEmbeds](https://en.wikipedia.org/wiki/OEmbed) or [ - + Well, **so what?** @@ -585,7 +585,7 @@ First of all, it means that any independent developer can build a block. Then an - + But really, **so what?** What does this mean in terms of practical user benefits? @@ -593,25 +593,25 @@ Well, in this hopeful world, users would be able to pick from a much wider varie - + At the moment users get this limited list of 30 or so basic blocks. - + But we would love to make it possible for users to have hundreds or thousands of specialized blocks to pick from. They should have a much wider variety of types avaliable in their apps. People be able to pick from weirder, niche blocks like recipe creators, data visualisation displays, flight path trackers, or financial planners. - + Secondly, applications would get access to this wider range of blocks for little or no extra developer work. - + Each app would be able to make this infinite list of block options available. Which saves the developers building those apps from having to make all these block types themselves, or rebuild a table block for the 100th time. @@ -619,13 +619,13 @@ It also offers their end-users a much better experience. Which is the whole poin - + Lastly, this protocol makes it easier to create structured data and encourages more data interopability. - + Blocks that follow the protocol must declare a schema – an expected data structure. @@ -633,13 +633,13 @@ So a to-do list block would expect to reviece a set of `Task` items. - + And that `Task` will have an expected list of properties like a `title`, `description`, `status`, and `dueDate`. We declare these in a JSON object and valiadate them with [JSON schema](https://json-schema.org/). - + This means that blocks can be designed to fit specific data structures, rather than all being generic formats. @@ -647,13 +647,13 @@ We could have very specialised block types like a Flight Map block that takes in - + This gives us an interesting new interplay of data and views. We can start with structured data – with specific concepts – and then find a block that's specifically designed to display it. - + The power of this can best be explained by a quote from the late, great Christopher Alexander: “Design is finding a form to fit a context” @@ -661,7 +661,7 @@ Structured data is a kind of context, and blocks give us the flexibility to find - + There's also another layer to this. We can go the other direction and use blocks to _create_ structured data. @@ -669,7 +669,7 @@ We can start with a block which has a user-friendly interface to input and edit - + So this is all a lovely idea, but I'm sure many of you are already thinking of all the horrendous ways this could go wrong. @@ -679,19 +679,19 @@ A few of the major challenges we have draft solutions for are security and sandb - + There's many more of these. We have an [FAQ](https://blockprotocol.org/docs/faq) page with extensive answers written for each of these. We're always looking to add more so feel free to [get in touch](https://blockprotocol.org/contact) if your question isn't answered. - + The bigger picture goal of this whole project is to create a virtous cycle. We want people to create blocks, so that blocks can create structured data, so that people have access to more structured data to reuse in blocks. - + In turn, we hope this leads to better user experiences, better data science, and eventually better decision-making tools, like [HASH](https://hash.ai/). Thank you! diff --git a/sites/hashdev/src/_pages/blog/8_sensitivity-assessor.mdx b/sites/hashdev/src/_pages/blog/0008_sensitivity-assessor.mdx similarity index 94% rename from sites/hashdev/src/_pages/blog/8_sensitivity-assessor.mdx rename to sites/hashdev/src/_pages/blog/0008_sensitivity-assessor.mdx index b5d47410c98..6a9ecb89a75 100644 --- a/sites/hashdev/src/_pages/blog/8_sensitivity-assessor.mdx +++ b/sites/hashdev/src/_pages/blog/0008_sensitivity-assessor.mdx @@ -1,6 +1,6 @@ --- authorPhoto: blog/authors/ross-gore.png -postPhoto: blog/8_sensitivity-assessor/8_sensitivity_assessor.jpg +postPhoto: blog/0008_sensitivity-assessor/8_sensitivity_assessor.jpg title: "Sensitivity analysis within HASH simulations" subtitle: "Identify conditions and variables that drive simulations towards unexpected outcomes" author: "Ross Gore" @@ -26,19 +26,19 @@ We'll explore how the _Sensitivity Assessor_ can be used to improve our understa The following figures show the HASH simulation as it progresses. Green squares represent the healthy agents, red squares represent the sick agents, and white squares represent the immune agents. The first screenshot displays the start of the simulation immediately following the initialization of all agents. The second figure shows the simulation after fifteen time steps and the third figure displays the simulation state after thirty time steps. - + Figure 1: start of the simulation immediately following initialization - + Figure 2: the state of the simulation after 15 time steps - + Figure 3: the state of the simulation after 30 time steps @@ -48,7 +48,7 @@ The simulation is meant to represent the spread of a virus and its effects on th The following screen capture shows the graph of the infection process for one of the experiments that was created. It highlights a simulation run where the number of healthy agents falls to zero. - + Figure 4: a times series of the immune, infected and healthy agents for a simulation run @@ -83,7 +83,7 @@ The Sensitivity Assessor (SA) provides new analytic and insight gathering capabi The Sensitivity Assessor provides data analysis capabilities that facilitate exploration and sanity checking of the variables from model inputs and outputs. A data description of each variable within the input file is provided using descriptive statistics. The goal is to provide insight into the central tendency of each variable (i.e., mean and median), the distribution around that tendency (i.e., standard deviation (SD) and median absolute deviation (MAD)), minimum (Min) and maximum (Max) values, and the number of samples (n). - + Figure 5: Sensitivity Assessor - Exploratory Data Analysis (EDA) capabilities @@ -95,7 +95,7 @@ Simulations can frequently have a set of requirements that must always hold and The Sensitivity Assessor allows users to define requirements of the simulation that should always hold and never be violated. An intuitive interface exists for easily defining requirements in the form of different types of predicates. Variables are then read in from the simulation output, i.e., the input file, and these provide the variable names for building the predicates. The Sensitivity Assessor then scans simulation run outcomes and displays to users the number of times that a defined requirement appears within the simulation outputs, the number of times it is met, and the number of violations identified (if any). - + Figure 6: verifying requirements with the Sensitivity Assessor @@ -116,7 +116,7 @@ The Sensitivity Assessor quantifies the extent to which certain conditions contr The sensitivity assessment is conducted using the variables and data provided to the Sensitivity Assessor. Data is expected to be in [tidy](https://r4ds.had.co.nz/tidy-data.html) with variables in each column and each row representing a set of observations of the variables. Assessments are conducted with respect to the specified variable of interest within the range of interest that is specified using the slider bars. - + Figure 7: understanding the quantification of a sensitivity assessment @@ -130,13 +130,13 @@ The remaining variables are used to form conditions. These conditions are evalua - **Likelihood that the Condition appears alongside Assessment Variable and Range – `Likelihood_1`:** a correlation measure that explores the likelihood that the condition appears alongside the specified range for the variable of interest. Note that the specified range for the variable of interest remains constant across the entire set of checks, so all checks are conducted against the same target. The following equation conveys `Likelihood_1`: Likelihood_1 equation - + Figure 8: understanding `Likelihood_1` @@ -145,13 +145,13 @@ Figure 8: understanding `Likelihood_1` - **Likelihood that the Condition appears alongside Assessment Variable and Range – `Likelihood_2`:** a measure of how often the Condition is True at the same time that the variable of interest is within its specified range of interest. The following equation conveys `Likelihood_2`: Likelihood_2 equation - + Figure 9: understanding `Likelihood_2` @@ -161,7 +161,7 @@ Figure 9: understanding `Likelihood_2` - The following equation conveys the `Sensitivity Assessment`. Sensitivity Assessment equation + Figure 10: Sensitivity Assessment table @@ -191,7 +191,7 @@ The JSON output of HASH simulation experiment runs can be [downloaded within HAS The Sensitivity Assessor expects data to be provided to it in a particular structure, and in CSV format. HASH simulation experiment run outputs can be converted for you into the expected format using VMASC's web-based [HASH to Sensitivity Assessor](https://vmasc.shinyapps.io/from-hash-to-sa/) utility. - + Figure 11: the _HASH to Sensitivity Assessor_ utility @@ -221,7 +221,7 @@ To use the _HASH to Sensitivity Assessor_: - variables names and their corresponding values used in the experiment - selected output column name based on selection in Step 2 along with corresponding value based on the function selected in Step 3 - + Figure 12: the CSV file corresponding to a HASH experiment JSON file generated by the _HASH to Sensitivity Assessor_ utility diff --git a/sites/hashdev/src/_pages/blog/9_strange-loop-workshop.mdx b/sites/hashdev/src/_pages/blog/0009_strange-loop-workshop.mdx similarity index 64% rename from sites/hashdev/src/_pages/blog/9_strange-loop-workshop.mdx rename to sites/hashdev/src/_pages/blog/0009_strange-loop-workshop.mdx index 4df534f02e3..589a60234be 100644 --- a/sites/hashdev/src/_pages/blog/9_strange-loop-workshop.mdx +++ b/sites/hashdev/src/_pages/blog/0009_strange-loop-workshop.mdx @@ -1,6 +1,6 @@ --- authorPhoto: blog/authors/ciaran-morinan.jpg -postPhoto: blog/9_strange-loop-workshop/cover-image.jpg +postPhoto: blog/0009_strange-loop-workshop/cover-image.jpg title: "Build a block at Strange Loop" subtitle: "Learn how to develop your own block at our live Strange Loop workshop" author: "Ciaran Morinan" @@ -20,12 +20,12 @@ The Block Protocol standardizes the interface between web applications and indiv Workshop participants will be guided step-by-step through building and publishing a block which can then be immediately accessed and used within any Block Protocol supporting application. Attendees should have some basic prior knowledge of frontend development. -#### Register to attend +### Register to attend I'll be leading the workshop alongside HASH co-founder Jude Allred. Anybody can register on the [Strange Loop website](https://www.thestrangeloop.com/). If you can't make it live, in follow-up we'll be publishing the tutorial developed for the workshop as a standalone guide that you can consume at your own pace, and from the comfort of your own home (or workplace!) -#### About _HASH_ and the _Block Protocol_ +### Who are we? -_HASH_ is building the next generation of decision-making, data modeling, and knowledge management tools. HASH combines a [global entity graph](https://hash.ai/platform/hash) with [composable blocks](https://blockprotocol.org/) for semantic interface-building, alongside rich data-processing and [simulation](https://hash.ai/simulations) capabilities to enable everybody to make the right decisions. +_HASH_ is building the next generation of decision-making, data modeling, and knowledge management tools. By combining a [global entity graph](https://hash.ai/platform/hash) with [composable blocks](https://blockprotocol.org/) for semantic interface-building, alongside rich data processing and [simulation capabilities](https://hash.ai/simulations), we hope to enable everybody to make the right decisions. -The _Block Protocol_ is the open framework and standard for block-app communication. It standardizes not just how blocks may be inserted within embedding applications, but how they and their embedders can communicate with one another and operate on semantically rich data structures, providing native-like experiences to users while leveraging an unbounded ecosystem of externally developed blocks and types. Read more at [https://blockprotocol.org](https://blockprotocol.org) +The _Block Protocol_ is our open framework for standardizing for block \<-\> app communication. It standardizes not just how blocks may be inserted within embedding applications, but how they and their embedders can communicate with one another and operate on semantically rich data structures, providing native-like experiences to users while leveraging an unbounded ecosystem of externally developed blocks and types. Read more at [blockprotocol.org](https://blockprotocol.org) diff --git a/sites/hashdev/src/_pages/blog/10_error-stack-update-0-2.mdx b/sites/hashdev/src/_pages/blog/0010_error-stack-update-0-2.mdx similarity index 99% rename from sites/hashdev/src/_pages/blog/10_error-stack-update-0-2.mdx rename to sites/hashdev/src/_pages/blog/0010_error-stack-update-0-2.mdx index 2a49bd28e42..15104c5ce40 100644 --- a/sites/hashdev/src/_pages/blog/10_error-stack-update-0-2.mdx +++ b/sites/hashdev/src/_pages/blog/0010_error-stack-update-0-2.mdx @@ -1,10 +1,10 @@ --- authorPhoto: blog/authors/tim-diekmann.jpg -postPhoto: blog/10_error-stack-update-0-2/Cover.jpg +postPhoto: blog/0010_error-stack-update-0-2/Cover.jpg title: "Announcing error-stack v0.2" subtitle: "Introducing customizable outputs, related errors, multiple sources, and much more to error handling in Rust" author: "Tim Diekmann" -jobTitle: "Platform Engineer, HASH" +jobTitle: "Senior Platform Engineer, HASH" date: "2022-10-03" ---