diff --git a/.github/contributing.md b/.github/contributing.md index cf9677c7..e65eb83c 100644 --- a/.github/contributing.md +++ b/.github/contributing.md @@ -3,12 +3,14 @@ - [Goal of the Project](#goal-of-the-project) +- [Editorial Process](#editorial-process) - [Example Law: The Law of Leaky Abstractions](#example-law-the-law-of-leaky-abstractions) - [Translations](#translations) - [How do I know if a law is relevant?](#how-do-i-know-if-a-law-is-relevant) - [How do I know if a law is 'well known' enough?](#how-do-i-know-if-a-law-is-well-known-enough) - [Use of Images](#use-of-images) - [Developer Guide](#developer-guide) +- [Contributor Credit and a Possible Book](#contributor-credit-and-a-possible-book) @@ -33,12 +35,23 @@ Some other tips: - Do not advocate for the law, or aim to be opinionated on the correctness or incorrectness of the law, as this repository is simply the descriptions and links. - Avoid 'you' when writing. For example, prefer "This law suggests refactoring should be avoided when..." rather than "you should avoid refactoring when...". This keeps the style slightly more formal and avoids seeming like advocation of a law. -An example law is shown below, which covers most of the key points: +## Editorial Process + +Every contribution is edited, either before it is merged or shortly afterwards. In practice this means changes to style, tone, structure and length, a check that the description is correct and relevant, and a check that quotes and images are properly attributed. + +A law may therefore end up reading quite differently from the version that was submitted. This is not a comment on the quality of the contribution. The aim is to keep a long document in a single voice, and to keep every entry to the same shape and length. + +Two things make this much easier: + +- Do not copy and paste text from other sources, unless it is explicitly quoted and attributed. See [Use of Images](#use-of-images) for the equivalent point about pictures. +- Include a link to the source for anything you reference, and the licence for any image. --- ## Example Law: The Law of Leaky Abstractions +An example law is shown below, which covers most of the key points. + [The Law of Leaky Abstractions on Joel on Software](https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/) > All non-trivial abstractions, to some degree, are leaky. @@ -87,19 +100,30 @@ A good test is 'If I search for it on Google, will I find it in the first few re ## Use of Images -Please make sure to attribute images properly if you are referencing them. Also, include a white background, as some viewers will be viewing the site in 'Dark Mode' which can make images with a transparent background difficult to read. +Original diagrams are strongly preferred. If you do reference an image from elsewhere, please include the source URL, the author and the licence in the pull request, so that it can be attributed properly. Images without a clear licence cannot be accepted, and images may later be redrawn to keep the artwork consistent. + +Also include a white background, as some viewers will be reading in 'Dark Mode', which can make images with a transparent background difficult to read. ## Developer Guide Where possible, anything which is not the core `README.md` file is kept in the `.github/` folder to keep the landing page for the repository as clean as possible. -To use the makefile, pass its path explicitly, e.g: +The website at [hacker-laws.com](https://hacker-laws.com) is built from `README.md`. To build and serve it locally: ```bash -make -f .github/makefile +cd .github/website +make install +make serve ``` -Or create an alias: +Run `make` on its own to see the other targets. -```bash -alias hlmake="make -f .github/makefile" +## Contributor Credit and a Possible Book + +This project may in time be turned into a book. + +If that happens, every contributor will be credited in an appendix. Contributors are listed by GitHub handle by default. If you would prefer to be credited by name, please say so in your pull request. + +By opening a pull request you grant the maintainer a permanent, worldwide, royalty-free and non-exclusive licence to use, edit, translate and publish your contribution in any format, including print and electronic editions which are sold. You keep the copyright in what you wrote, and remain free to use it elsewhere yourself. + +The repository stays under [CC BY-SA 4.0](../LICENSE) and will remain free to read. diff --git a/.github/makefile b/.github/makefile deleted file mode 100644 index 4403d61a..00000000 --- a/.github/makefile +++ /dev/null @@ -1,22 +0,0 @@ -default: help - -.PHONY: help -help: # Show help for each of the Makefile recipes. - @grep -E '^[a-zA-Z0-9 -]+:.*#' Makefile | sort | while read -r l; do printf "\033[1;32m$$(echo $$l | cut -f 1 -d':')\033[00m:$$(echo $$l | cut -f 2- -d'#')\n"; done - -.PHONY: prepare-markdown -prepare-markdown: # Prepare the markdown for PDF output. - ./scripts/prepare-markdown-for-ebook.sh "README.md" "hacker-laws.md" - -.PHONY: create-pdf -create-pdf: # Create the PDF. - docker run --rm \ - --platform linux/amd64 \ - -v ${PWD}:/data \ - pandoc/latex:3.6 \ - -V toc-title:"Table Of Contents" \ - --toc \ - --pdf-engine=lualatex \ - --standalone \ - --output hacker-laws.pdf \ - hacker-laws.md diff --git a/.github/workflows/cicd.yaml b/.github/workflows/cicd.yaml index 5cf7cf77..dfa856cb 100644 --- a/.github/workflows/cicd.yaml +++ b/.github/workflows/cicd.yaml @@ -41,47 +41,6 @@ jobs: manifest-file: .github/release-please-manifest.json config-file: .github/release-please-config.json - release-pdf: - runs-on: ubuntu-24.04 - needs: release - if: ${{ needs.release.outputs.released }} - steps: - - name: Checkout - uses: actions/checkout@v4 - - # Set a descriptive version. For PRs it'll be the short sha. - - name: Check Version - run: echo "${VERSION}" - env: - VERSION: ${{ needs.release.outputs.tag }} - - # Set a descriptive version. For PRs it'll be the short sha. - - name: Prepare Markdown - run: | - # Set the env vars we use (version set for clarity). - export DATE=$(date +%F) - export VERSION="${VERSION}" - make -f .github/makefile prepare-markdown - env: - VERSION: ${{ needs.release.outputs.tag }} - - # Create the PDF files. - - name: Create PDF - run: make -f .github/makefile create-pdf - - # Publish the PDF and intermediate markdown as an artifact. - # - name: Publish PDF Artifact - # uses: actions/upload-artifact@3 - # with: - # name: hacker-laws.pdf - # path: hacker-laws.pdf - - - name: Attach assets to GitHub Release - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh release upload "${{ needs.release.outputs.tag }}" --clobber hacker-laws.pdf hacker-laws.md - deploy: environment: name: github-pages diff --git a/.gitignore b/.gitignore index e43b0f98..56336134 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +scratch/ diff --git a/README.md b/README.md index cab3e459..9b3cf8ea 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@ - 🧠 Check out my new project [Terminal AI](https://github.com/dwmkerr/terminal-ai) - ☕️ Like this project? Consider [buying me a coffee with a one-off donation](https://github.com/sponsors/dwmkerr?frequency=one-time) - 🎧 Listen to the podcast [The Changelog - Laws for Hackers to Live By](https://changelog.com/podcast/403) -- 📖 Download the [PDF eBook](https://github.com/dwmkerr/hacker-laws/releases/latest/download/hacker-laws.pdf) - 🌏 See the Translations: [🇧🇷](./translations/pt-BR.md) [🇨🇳](https://github.com/nusr/hacker-laws-zh) [🇫🇷](./translations/fr.md) [🇮🇹](./translations/it-IT.md) [🇱🇻](./translations/lv.md) [🇰🇷](https://github.com/codeanddonuts/hacker-laws-kr) [🇷🇺](https://github.com/solarrust/hacker-laws) [🇪🇸](./translations/es-ES.md) [🇹🇷](./translations/tr.md) [🇮🇩](./translations/id.md) [🇯🇵](./translations/jp.md) [🇵🇱](./translations/pl.md) [🇻🇳](./translations/vi.md) --- @@ -88,7 +87,6 @@ - [The Principle of Least Astonishment](#the-principle-of-least-astonishment) - [Reading List](#reading-list) - [Online Resources](#online-resources) -- [PDF eBook](#pdf-ebook) - [Podcast](#podcast) - [Contributors](#contributors) @@ -98,6 +96,8 @@ There are lots of laws which people discuss when talking about development. This repository is a reference and overview of some of the most common ones. Please share and submit PRs! +This project may in time be turned into a book. If it is, all contributors will be credited in an appendix, listed by GitHub handle, or by name if requested in the pull request. See the [Contributing Guidelines](.github/contributing.md) for details. + Warning: This repo contains an explanation of some laws, principles and patterns, but does not _advocate_ for any of them. Whether they should be applied will always be a matter of debate, and greatly dependent on what you are working on. ## Laws @@ -141,7 +141,7 @@ Best illustrated with an example. If a program is made up of two parts, part A, The diagram below shows some examples of potential improvements in speed: -Diagram: Amdahl's Law +Diagram: Amdahl's Law, showing speedup against the number of processors for four different parallel portions As can be seen, even a program which is 50% parallelisable will benefit very little beyond 10 processing units, whereas a program which is 95% parallelisable can still achieve significant speed improvements with over a thousand processing units. @@ -283,7 +283,7 @@ Real-world examples: Fitts' law predicts that the time required to move to a target area is a function of the distance to the target divided by the width of the target. -Diagram: Fitts Law +Diagram: Fitts' Law, showing the distance D to a target and the width W of that target The consequences of this law dictate that when designing UX or UI, interactive elements should be as large as possible and the distance between the users attention area and interactive element should be as small as possible. This has consequences on design, such as grouping tasks that are commonly used with one another close. @@ -354,7 +354,7 @@ This principle suggests that actions resulting in a negative outcome were not a In the equation below, `T` is the time to make a decision, `n` is the number of options, and `b` is a constant which is determined by analysis of the data. -![Hicks law](./images/hicks_law.svg) +Equation: T equals b multiplied by the base two logarithm of n plus one This law only applies when the number of options is _ordered_, for example, alphabetically. This is implied in the base two logarithm - which implies the decision maker is essentially performing a _binary search_. If the options are not well ordered, experiments show the time taken is linear. @@ -404,7 +404,7 @@ For example, a decrease in response latency for a particular end-point could cau The Hype Cycle is a visual representation of the excitement and development of technology over time, originally produced by Gartner. It is best shown with a visual: -![The Hype Cycle](./images/gartner_hype_cycle.png) +Diagram: The Hype Cycle, showing expectations over time through the technology trigger, peak of inflated expectations, trough of disillusionment, slope of enlightenment and plateau of productivity In short, this cycle suggests that there is typically a burst of excitement around new technology and its potential impact. Teams often jump into these technologies quickly, and sometimes find themselves disappointed with the results. This might be because the technology is not yet mature enough, or real-world applications are not yet fully realised. After a certain amount of time, the capabilities of the technology increase and practical opportunities to use it increase, and teams can finally become productive. Roy Amara's quote sums this up most succinctly - "We tend to overestimate the effect of a technology in the short run and underestimate in the long run". @@ -805,7 +805,7 @@ This rule suggests that regardless of the size of the company, teams should be s The number of links between people can be expressed as `n(n-1)/2` where n = number of people. -Complete graph; Links between people +Diagram: a complete graph of seven nodes, showing a link between every pair of people ### Twyman's law @@ -1216,12 +1216,6 @@ Some useful resources and reading. - [CB Insights: 8 Laws Driving Success In Tech: Amazon's 2-Pizza Rule, The 80/20 Principle, & More](https://www.cbinsights.com/research/report/tech-laws-success-failure) - an interesting write up of some laws which have been highly influential in technology. -## PDF eBook - -The project is available as a PDF eBook, [download the latest PDF eBook with this link](https://github.com/dwmkerr/hacker-laws/releases/latest/download/hacker-laws.pdf) or check the [release](https://github.com/dwmkerr/hacker-laws/releases) page for older versions. - -A new version of the eBook is created automatically when a new version tag is pushed. - ## Podcast Hacker Laws has been featured in [The Changelog](https://changelog.com/podcast/403), you can check out the Podcast episode with the link below: diff --git a/images/Fitts_Law.svg b/images/Fitts_Law.svg deleted file mode 100644 index 0cbee932..00000000 --- a/images/Fitts_Law.svg +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - - Layer 1 - - - - - - - - - - - - - Target - - W - - - - - - - - - - D - - - - - - - - - - - - - diff --git a/images/amdahls-law.svg b/images/amdahls-law.svg new file mode 100644 index 00000000..0b06004a --- /dev/null +++ b/images/amdahls-law.svg @@ -0,0 +1,62 @@ + + Amdahl's Law: speedup against number of processors + + + 0 + + 2 + + 4 + + 6 + + 8 + + 10 + + 12 + + 14 + + 16 + + 18 + + 20 + + 1 + + 4 + + 16 + + 64 + + 256 + + 1024 + + 4096 + + 16384 + + 65536 + + + + + + + + Parallel portion + + 50% + + 75% + + 90% + + 95% + Number of processors + Speedup + diff --git a/images/amdahls_law.png b/images/amdahls_law.png deleted file mode 100644 index 3fd74726..00000000 Binary files a/images/amdahls_law.png and /dev/null differ diff --git a/images/complete-graph.svg b/images/complete-graph.svg new file mode 100644 index 00000000..c90dff42 --- /dev/null +++ b/images/complete-graph.svg @@ -0,0 +1,32 @@ + + A complete graph of seven nodes, with every node linked + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/complete_graph.png b/images/complete_graph.png deleted file mode 100644 index 02a5c0e4..00000000 Binary files a/images/complete_graph.png and /dev/null differ diff --git a/images/fitts-law.svg b/images/fitts-law.svg new file mode 100644 index 00000000..738f2a1d --- /dev/null +++ b/images/fitts-law.svg @@ -0,0 +1,19 @@ + + Fitts' Law: distance to a target and the width of the target + + + Target + + + + + + + W + + + + + + D + diff --git a/images/gartner_hype_cycle.png b/images/gartner_hype_cycle.png deleted file mode 100644 index a911144f..00000000 Binary files a/images/gartner_hype_cycle.png and /dev/null differ diff --git a/images/hicks-law.svg b/images/hicks-law.svg new file mode 100644 index 00000000..d73e60bf --- /dev/null +++ b/images/hicks-law.svg @@ -0,0 +1,5 @@ + + Hick's Law: T equals b times log base 2 of n plus 1 + + T = b · log2(n + 1) + diff --git a/images/hicks_law.svg b/images/hicks_law.svg deleted file mode 100644 index a9c17595..00000000 --- a/images/hicks_law.svg +++ /dev/null @@ -1,36 +0,0 @@ - -{\displaystyle T=b\cdot \log _{2}(n+1)} - - - - \ No newline at end of file diff --git a/images/hype-cycle.svg b/images/hype-cycle.svg new file mode 100644 index 00000000..faca5140 --- /dev/null +++ b/images/hype-cycle.svg @@ -0,0 +1,14 @@ + + The hype cycle: expectations against time + + + + + Technology trigger + Peak of inflated expectations + Trough of disillusionment + Slope of enlightenment + Plateau of productivity + Expectations + Time + diff --git a/scripts/prepare-markdown-for-ebook.sh b/scripts/prepare-markdown-for-ebook.sh deleted file mode 100755 index 5d8a609b..00000000 --- a/scripts/prepare-markdown-for-ebook.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -# Fail on errors. -set -e -o pipefail - -# Check if parameters are provided -input="$1" -output="$2" -if [ -z "${input}" ] || [ -z "${output}" ]; then - echo "usage: $(basename "$0") " >&2 - echo " input: source markdown file (usually README.md)" >&2 - echo " output: output markdown file (usually hacker-laws.md)" >&2 - exit 1 -fi - -# Grab env vars used to configure output, fail if required are missing. -export date="${DATE:-$(date +%F)}" -export version="${VERSION?error: VERSION must be set}" - - -# Update the input file to an intermedate. -intermediate="${input}.temp" -cat < "${intermediate}" ---- -title: "Hacker Laws" -author: "Dave Kerr, github.com/dwmkerr/hacker-laws" -subtitle: "Laws, Theories, Principles, and Patterns that developers will find useful. ${VERSION}, ${DATE}." -version: ${VERSION} ---- - -EOF -cat "${input}" >> "${intermediate}" -DATE="${date}" VERSION="${version}" envsubst < "${intermediate}" > "${output}" - -# Use a single `sed` command to clean up unwanted lines and emojis in one pass. -sed -e '/💻📖.*/d' \ - -e 's/❗/Warning/g' \ - -e '/^\[Translations.*/d' \ - -e '/\*.*/d' \ - -e '/ \*.*/d' \ - -e '/## Translations/,$d' "${output}" > "${intermediate}" -mv "${intermediate}" "${output}" - -echo "${output} prepared successfully." diff --git a/translations/es-ES.md b/translations/es-ES.md index c7aee821..6b10b53e 100644 --- a/translations/es-ES.md +++ b/translations/es-ES.md @@ -75,7 +75,7 @@ Mejor lo ilustramos con un ejemplo. Si un programa se compone de dos partes, la El diagrama de abajo muestra algunos ejemplos de mejoras potenciales en velocidad: -![Diagram: Amdahl's Law](./images/amdahls_law.png) +![Diagram: Amdahl's Law](./images/amdahls-law.svg) *(Imagen de Referencia: Por Daniels220 en Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* @@ -205,7 +205,7 @@ Por ejemplo, un decremento en la latencia de respuesta para un end-point particu El Ciclo de Sobreexpectación es una representación visual de la excitación y desarrollo de tecnología a lo largo del tiempo, originalmente producido por Gartner. Se explica mejor de forma visual: -![El Cico de Sobreexpectación](./images/gartner_hype_cycle.png) +![El Cico de Sobreexpectación](./images/hype-cycle.svg) *(Referencia de Imagen: Por Jeremykemp en Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)* diff --git a/translations/fr.md b/translations/fr.md index dcc1b95f..3185b4ae 100644 --- a/translations/fr.md +++ b/translations/fr.md @@ -84,7 +84,7 @@ Prenons un exemple: si un programme est composé de 2 parties, la partie A devan Le diagramme ci-dessous montre quelques exemples de gain de vitesse potentiels : -Diagram: Amdahl's Law +Diagram: Amdahl's Law *(Reference: par Daniels220 sur English Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* @@ -249,7 +249,7 @@ Par exemple, un abaissement de la latence de réponse sur une route (end-point) Le cycle du hype est une représentation visuelle de l'attrait et du développement d'une technologie au fil du temps. Initialement réalisé par Gartner, le concept est plus clair avec un diagramme : -![The Hype Cycle](../images/gartner_hype_cycle.png) +![The Hype Cycle](../images/hype-cycle.svg) *(Reference: par Jeremykemp sur English Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)* diff --git a/translations/id.md b/translations/id.md index 87fccaa8..1eff9f3c 100644 --- a/translations/id.md +++ b/translations/id.md @@ -84,7 +84,7 @@ Ilustrasikan terbaik dengan sebuah contoh. Jika suatu program terdiri dari dua b Diagram di bawah ini menunjukkan beberapa contoh peningkatan kecepatan potensial: -Diagram: Amdahl's Law +Diagram: Amdahl's Law *(Gambar referensi: Oleh Daniels220 di Wikipedia Bahasa Inggris, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* @@ -255,7 +255,7 @@ Sebagai contoh, penurunan latensi respons untuk titik akhir tertentu dapat menye Hype Siklus adalah representasi visual dari kegembiraan dan pengembangan teknologi dari waktu ke waktu, awalnya diproduksi oleh Gartner. Paling baik ditunjukkan dengan visual: -![Siklus Hype](./../images/gartner_hype_cycle.png) +![Siklus Hype](./../images/hype-cycle.svg) *(Referensi Gambar: Oleh Jeremykemp di bahasa inggris Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)* diff --git a/translations/it-IT.md b/translations/it-IT.md index 53246eae..878a5de0 100644 --- a/translations/it-IT.md +++ b/translations/it-IT.md @@ -67,7 +67,7 @@ Ecco un esempio illustrativo. Se un programma è costituito da due parti - una p Il diagramma sotto riportato illustra gli andamenti nel tempo della velocità di esecuzione in alcuni casi: -![Diagram: Amdahl's Law](./images/amdahls_law.png) +![Diagram: Amdahl's Law](./images/amdahls-law.svg) *(Crediti Immagine: Daniels220 su Wikipedia in lingua inglese, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* @@ -182,7 +182,7 @@ Per esempio, la diminuzione nella latenza di risposta di uno specifico end-point L'Hype Cycle è una rappresentazione visuale del clamore attorno allo sviluppo di una tecnologia nel tempo, originariamente ideata da Gartner. Un esempio: -![The Hype Cycle](./images/gartner_hype_cycle.png) +![The Hype Cycle](./images/hype-cycle.svg) *(Crediti Immagine: Jeremykemp su Wikipedia in lingua inglese, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)* diff --git a/translations/jp.md b/translations/jp.md index 5ac17acd..944987c9 100644 --- a/translations/jp.md +++ b/translations/jp.md @@ -100,7 +100,7 @@ 下記の図は、並列度増加と期待する速度改善の例を示しています。 -Diagram: Amdahl's Law +Diagram: Amdahl's Law *(画像参照:英語版ウィキペディアのDaniels220、クリエイティブコモンズの表示-継承3.0非移植、https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* @@ -265,7 +265,7 @@ ハイプ・サイクルは、元々はガートナー社によって作成された、時間をかけてテクノロジーの興奮と発展を視覚的に表現したものです。視覚的に表示するのが最適です。 -![The Hype Cycle](../images/gartner_hype_cycle.png) +![The Hype Cycle](../images/hype-cycle.svg) *(画像参照:英語版ウィキペディアのJeremykemp著、CC BY-SA 3.0、https://commons.wikimedia.org/w/index.php?curid = 10547051)* diff --git a/translations/lv.md b/translations/lv.md index cca6be0d..f58e299d 100644 --- a/translations/lv.md +++ b/translations/lv.md @@ -82,7 +82,7 @@ Vislabāk ilustrēts ar piemēru. Ja programma sastāv no divām daļām, daļas Turpmāk redzamajā diagrammā ir parādīti daži iespējamo ātruma uzlabojumu piemēri. -Diagram: Amdahla likums +Diagram: Amdahla likums *(Atsauce uz attēlu: Daniels220 angļu valodā Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* @@ -253,7 +253,7 @@ Piemēram, atbildes latentuma samazināšanās konkrētā galapunktā varētu ra Hype Cycle ir Gārtnera sākotnēji ražotās tehnoloģijas saviļņojuma un attīstības vizuāls attēlojums laika gaitā. Vislabāk to rāda vizuāli: -![The Hype Cycle](../images/gartner_hype_cycle.png) +![The Hype Cycle](../images/hype-cycle.svg) *(Atsauce uz attēlu: angļu valodā Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)* diff --git a/translations/pl.md b/translations/pl.md index 44ce1360..2dfe29a2 100644 --- a/translations/pl.md +++ b/translations/pl.md @@ -114,7 +114,7 @@ Najlepiej zilustrowane przykładem. Jeśli program składa się z dwóch częśc Poniższy diagram pokazuje kilka przykładów potencjalnej poprawy szybkości: -Schemat: Prawo Amdahla +Schemat: Prawo Amdahla *(Odniesienie do obrazu: Daniels219 z angielskiej Wikipedii, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* @@ -244,9 +244,7 @@ Przykłady ze świata rzeczywistego: Prawo Fittsa przewiduje, że czas potrzebny do przemieszczenia się do obszaru docelowego jest funkcją odległości do celu podzielonej przez szerokość celu. -Schemat: Prawo dopasowania - -*(Odniesienie do obrazu: Foobar628 z angielskiej Wikipedii, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/Fitts%27s_law#/media/File:Fitts_Law.svg)* +Schemat: Prawo dopasowania Konsekwencje tego prawa nakazują, aby przy projektowaniu UX czy UI elementy interaktywne były jak największe, a odległość między obszarem uwagi użytkownika a elementem interaktywnym była jak najmniejsza. Ma to konsekwencje dla projektu, takie jak grupowanie zadań, które są często używane blisko siebie. @@ -318,7 +316,7 @@ Zasada ta sugeruje, że działania prowadzące do negatywnych skutków nie były W poniższym równaniu `T` to czas na podjęcie decyzji, `n` to liczba opcji, a `b` to stała określona na podstawie analizy danych. -![Prawo Hicksa](/images/hicks_law.svg) +![Prawo Hicksa](/images/hicks-law.svg) *(Odniesienie do obrazu: Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/Hick%27s_law)* @@ -370,7 +368,7 @@ Na przykład, zmniejszenie opóźnienia odpowiedzi dla określonego punktu końc Hype Cycle to wizualna reprezentacja ekscytacji i rozwoju technologii na przestrzeni czasu, pierwotnie wyprodukowana przez firmę Gartner. Najlepiej pokazać to za pomocą wizualizacji: -![Cykl szumu](/images/gartner_hype_cycle.png) +![Cykl szumu](/images/hype-cycle.svg) *(Odniesienie do obrazu: Jeremykemp z angielskiej Wikipedii, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)* @@ -648,7 +646,7 @@ Ta zasada sugeruje, że niezależnie od wielkości firmy, zespoły powinny być Liczbę powiązań między ludźmi można wyrazić jako `n(n-1)/2` gdzie n = liczba osób. -Kompletny wykres; Powiązania między ludźmi +Kompletny wykres; Powiązania między ludźmi ### Prawo Wadlera diff --git a/translations/pt-BR.md b/translations/pt-BR.md index b1939a72..98099c39 100644 --- a/translations/pt-BR.md +++ b/translations/pt-BR.md @@ -99,7 +99,7 @@ Fica mais fácil de entender com um exemplo prático. Se um programa é feito de O diagrama abaixo mostra alguns exemplos de melhoria na velocidade: -![Diagram: Lei de Amadhl](../images/amdahls_law.png) +![Diagram: Lei de Amadhl](../images/amdahls-law.svg) *(Image Reference: By Daniels220 at English Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* @@ -260,7 +260,7 @@ Por exemplo, a diminuição na latência da resposta para um `end-point` particu > Roy Amara O Ciclo Hype é uma representação visual da empolgação e desenvolvimento da tecnologia ao longo do tempo, originalmente produzida por Gartner. -![The Hype Cycle](../images/gartner_hype_cycle.png) +![The Hype Cycle](../images/hype-cycle.svg) *(Image Reference: By Jeremykemp at English Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)* diff --git a/translations/tr.md b/translations/tr.md index 24581dc8..e588a5e8 100644 --- a/translations/tr.md +++ b/translations/tr.md @@ -104,7 +104,7 @@ En güzel şu örnekle anlatılabilir. Bir programın iki bölümden oluştuğun Aşağıdaki diyagram bazı olası hız geliştirmelerine örnekler içeriyor: -Diagram: Amdahl's Law +Diagram: Amdahl's Law *(Diyagramın kaynağı: Daniels220 tarafından İngilizce Wikipedia'da, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)* @@ -216,9 +216,7 @@ Ek kaynaklar: Fitts yasası, bir hedef alana gitmek için gereken sürenin hesaplanmasında, hedefe olan mesafenin hedefin genişliğine bölünmesinin bir işlevi olduğunu öngörür. -The Hype Cycle - -*(Diagramın Kaynağı: By Foobar628 at English Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/Fitts%27s_law#/media/File:Fitts_Law.svg)* +The Hype Cycle Bu yasanın sonuçları, UX veya UI tasarlanırken etkileşimli öğelerin mümkün olduğunca büyük olması ve kullanıcıların dikkat alanı ile etkileşimli öğe arasındaki mesafenin mümkün olduğunca küçük olması gerektiğini ortaya çıkarır. Bunun tasarım üzerinde sonuçları vardır, örneğin birbirleriyle yakın kullanılan işlevlerin gruplanması gibi. @@ -285,7 +283,7 @@ Bu prensip, olumsuz sonuçlara yol açan eylemlerin, çoğunlukla kötü niyetin Aşağıdaki denklemde, `T` karar verme zamanıdır, `n` seçenek sayısıdır ve `b` verilerin analizi ile belirlenen bir sabittir. -![Hicks law](./images/hicks_law.svg) +![Hicks law](./images/hicks-law.svg) *(Diagramın Kaynağı: Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/Hick%27s_law)* @@ -334,7 +332,7 @@ Bu yasa der ki; sistemde yapılan bir iyileştirme sistemin diğer taraflarında Hype Döngüsü bir teknolojinin zamanla yarattığı heyecan ve gelişiminin görsel olarak sunumudur ve Gartner tarafından ilk olarak oluşturulmuştur. En güzel anlatım aşağıdaki bir görsel ile yapılabilir: -![The Hype Cycle](./images/gartner_hype_cycle.png) +![The Hype Cycle](./images/hype-cycle.svg) *(Resmin Kaynağı: Jeremykemp tarafından İngilizce Wikipeda'da, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)* diff --git a/translations/vi.md b/translations/vi.md index 7eaaa0be..e44e76e0 100644 --- a/translations/vi.md +++ b/translations/vi.md @@ -114,7 +114,7 @@ Minh họa tốt nhất với một ví dụ. Nếu một chương trình có ha Sơ đồ dưới đây cho thấy một số ví dụ về những cải tiến tiềm năng về tốc độ: -Diagram: Amdahl's Law +Diagram: Amdahl's Law _(Tham khảo hình ảnh: Bởi Daniels219 tại Wikipedia tiếng Anh, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)_ @@ -244,9 +244,7 @@ Ví dụ trong thế giới thực: Định luật Fitts dự đoán rằng thời gian cần thiết để di chuyển đến một khu vực mục tiêu là một hàm của khoảng cách đến mục tiêu chia cho chiều rộng của mục tiêu. -Diagram: Fitts Law - -_(Tham khảo hình ảnh: Bởi Foobar628 tại Wikipedia tiếng Anh, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/Fitts%27s_law#/media/File:Fitts_Law.svg)_ +Diagram: Fitts Law Hệ quả của luật này quy định rằng khi thiết kế UX hoặc UI, các phần tử tương tác phải càng lớn càng tốt và khoảng cách giữa vùng chú ý của người dùng và phần tử tương tác phải càng nhỏ càng tốt. Điều này có hậu quả về thiết kế, chẳng hạn như nhóm các nhiệm vụ thường được sử dụng với nhau. @@ -318,7 +316,7 @@ Nguyên tắc này gợi ý rằng những hành động dẫn đến một kế Trong phương trình dưới đây, `T` là thời gian để đưa ra quyết định, `n` là số lựa chọn và `b` là hằng số được xác định bằng phân tích dữ liệu. -![Luật Hicks](./images/hicks_law.svg) +![Luật Hicks](./images/hicks-law.svg) _(Hình ảnh tham khảo: Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/Hick%27s_law)_ @@ -370,7 +368,7 @@ Ví dụ: giảm độ trễ phản hồi cho một điểm cuối cụ thể c Hype Cycle là hình ảnh đại diện cho sự sôi động và phát triển của công nghệ theo thời gian, ban đầu được sản xuất bởi Gartner. Nó được hiển thị tốt nhất bằng hình ảnh: -![Chu kỳ Hype](./images/gartner_hype_cycle.png) +![Chu kỳ Hype](./images/hype-cycle.svg) _(Tham khảo hình ảnh: Bởi Jeremykemp tại Wikipedia tiếng Anh, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)_ @@ -648,7 +646,7 @@ Quy tắc này cho thấy rằng bất kể quy mô của công ty, các đội Số lượng liên kết giữa mọi người có thể được biểu thị bằng `n(n-1)/2` trong đó n = số người. -Đồ thị hoàn chỉnh; Liên kết giữa mọi người +Đồ thị hoàn chỉnh; Liên kết giữa mọi người ### Luật Wadler