add role-based color coding for aria ref labels
Color legend: - Blue: links - Green: buttons - Orange: text inputs (textbox, combobox, searchbox) - Purple: checkboxes, radios, switches - Teal: sliders - Pink: menu items - Indigo: tabs, options - Yellow: default/unknown Also gitignore png screenshots in assets/
This commit is contained in:
@@ -8,3 +8,4 @@ coverage
|
||||
*.zip
|
||||
*.log
|
||||
tmp
|
||||
playwriter/src/assets/*.png
|
||||
|
||||
@@ -37,6 +37,37 @@ const INTERACTIVE_ROLES = new Set([
|
||||
'treeitem',
|
||||
])
|
||||
|
||||
// Color categories for different role types (light backgrounds with good contrast for black text)
|
||||
// Format: [gradient-top, gradient-bottom, border]
|
||||
const ROLE_COLORS: Record<string, [string, string, string]> = {
|
||||
// Links - light blue
|
||||
link: ['#B3E5FC', '#81D4FA', '#4FC3F7'],
|
||||
// Buttons - light green
|
||||
button: ['#C8E6C9', '#A5D6A7', '#81C784'],
|
||||
// Text inputs - light orange
|
||||
textbox: ['#FFE0B2', '#FFCC80', '#FFB74D'],
|
||||
combobox: ['#FFE0B2', '#FFCC80', '#FFB74D'],
|
||||
searchbox: ['#FFE0B2', '#FFCC80', '#FFB74D'],
|
||||
spinbutton: ['#FFE0B2', '#FFCC80', '#FFB74D'],
|
||||
// Checkboxes/Radios/Switches - light purple
|
||||
checkbox: ['#E1BEE7', '#CE93D8', '#BA68C8'],
|
||||
radio: ['#E1BEE7', '#CE93D8', '#BA68C8'],
|
||||
switch: ['#E1BEE7', '#CE93D8', '#BA68C8'],
|
||||
// Sliders - light teal
|
||||
slider: ['#B2DFDB', '#80CBC4', '#4DB6AC'],
|
||||
// Menu items - light pink
|
||||
menuitem: ['#F8BBD9', '#F48FB1', '#F06292'],
|
||||
menuitemcheckbox: ['#F8BBD9', '#F48FB1', '#F06292'],
|
||||
menuitemradio: ['#F8BBD9', '#F48FB1', '#F06292'],
|
||||
// Tabs/Options - light indigo
|
||||
tab: ['#C5CAE9', '#9FA8DA', '#7986CB'],
|
||||
option: ['#C5CAE9', '#9FA8DA', '#7986CB'],
|
||||
treeitem: ['#C5CAE9', '#9FA8DA', '#7986CB'],
|
||||
}
|
||||
|
||||
// Default yellow for unknown roles
|
||||
const DEFAULT_COLORS: [string, string, string] = ['#FFF785', '#FFC542', '#E3BE23']
|
||||
|
||||
// Use String.raw for CSS syntax highlighting in editors
|
||||
const css = String.raw
|
||||
|
||||
@@ -45,8 +76,6 @@ const LABEL_STYLES = css`
|
||||
position: absolute;
|
||||
font: bold 11px Helvetica, Arial, sans-serif;
|
||||
padding: 1px 4px;
|
||||
background: linear-gradient(to bottom, #FFF785 0%, #FFC542 100%);
|
||||
border: 1px solid #E3BE23;
|
||||
border-radius: 3px;
|
||||
color: black;
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
|
||||
@@ -197,15 +226,28 @@ export async function showAriaRefLabels({ page, interactiveOnly = true }: {
|
||||
})
|
||||
: refHandles
|
||||
|
||||
// Build refs with role info for color coding
|
||||
const refsWithRoles = filteredRefs.map(({ ref, handle }) => ({
|
||||
ref,
|
||||
element: handle,
|
||||
role: refToElement.get(ref)?.role || 'generic',
|
||||
}))
|
||||
|
||||
// Single evaluate call: create container, styles, and all labels
|
||||
// ElementHandles get unwrapped to DOM elements in browser context
|
||||
// Using 'any' types here since this code runs in browser context
|
||||
const labelCount = await page.evaluate(
|
||||
({ refs, containerId, containerStyles, labelStyles }: {
|
||||
refs: Array<{ ref: string; element: { getBoundingClientRect(): { width: number; height: number; left: number; top: number; right: number; bottom: number } } }>
|
||||
({ refs, containerId, containerStyles, labelStyles, roleColors, defaultColors }: {
|
||||
refs: Array<{
|
||||
ref: string
|
||||
role: string
|
||||
element: { getBoundingClientRect(): { width: number; height: number; left: number; top: number; right: number; bottom: number } }
|
||||
}>
|
||||
containerId: string
|
||||
containerStyles: string
|
||||
labelStyles: string
|
||||
roleColors: Record<string, [string, string, string]>
|
||||
defaultColors: [string, string, string]
|
||||
}) => {
|
||||
const doc = (globalThis as any).document
|
||||
const win = globalThis as any
|
||||
@@ -218,7 +260,7 @@ export async function showAriaRefLabels({ page, interactiveOnly = true }: {
|
||||
container.id = containerId
|
||||
container.style.cssText = containerStyles
|
||||
|
||||
// Inject Vimium-style CSS
|
||||
// Inject base label CSS
|
||||
const style = doc.createElement('style')
|
||||
style.textContent = labelStyles
|
||||
container.appendChild(style)
|
||||
@@ -241,7 +283,7 @@ export async function showAriaRefLabels({ page, interactiveOnly = true }: {
|
||||
|
||||
// Create label for each interactive element
|
||||
let count = 0
|
||||
for (const { ref, element } of refs) {
|
||||
for (const { ref, role, element } of refs) {
|
||||
const rect = element.getBoundingClientRect()
|
||||
|
||||
// Skip elements with no size (hidden)
|
||||
@@ -266,10 +308,15 @@ export async function showAriaRefLabels({ page, interactiveOnly = true }: {
|
||||
continue
|
||||
}
|
||||
|
||||
// Get colors for this role
|
||||
const [gradTop, gradBottom, border] = roleColors[role] || defaultColors
|
||||
|
||||
// Place the label
|
||||
const label = doc.createElement('div')
|
||||
label.className = '__pw_label__'
|
||||
label.textContent = ref
|
||||
label.style.background = `linear-gradient(to bottom, ${gradTop} 0%, ${gradBottom} 100%)`
|
||||
label.style.border = `1px solid ${border}`
|
||||
|
||||
// Position above element, accounting for scroll
|
||||
label.style.left = `${win.scrollX + labelLeft}px`
|
||||
@@ -284,10 +331,12 @@ export async function showAriaRefLabels({ page, interactiveOnly = true }: {
|
||||
return count
|
||||
},
|
||||
{
|
||||
refs: filteredRefs.map(({ ref, handle }) => ({ ref, element: handle })),
|
||||
refs: refsWithRoles.map(({ ref, role, element }) => ({ ref, role, element })),
|
||||
containerId: LABELS_CONTAINER_ID,
|
||||
containerStyles: CONTAINER_STYLES,
|
||||
labelStyles: LABEL_STYLES,
|
||||
roleColors: ROLE_COLORS,
|
||||
defaultColors: DEFAULT_COLORS,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 237 KiB |
@@ -31,7 +31,7 @@
|
||||
- generic [ref=e55]:
|
||||
- text: "Google offered in:"
|
||||
- link [ref=e56] [cursor=pointer]:
|
||||
- /url: https://www.google.com/setprefs?sig=0_uKW2_iLdDvITPr98P8jjLIgrMiY%3D&hl=it&source=homepage&sa=X&ved=0ahUKEwjeh4Llye-RAxVrJNAFHaspBugQ2ZgBCBU
|
||||
- /url: https://www.google.com/setprefs?sig=0_9hKalRtXzD5AWtzEh3KSYnYsv7w%3D&hl=it&source=homepage&sa=X&ved=0ahUKEwjUxd_Qyu-RAxUqwskDHd_ZFnQQ2ZgBCBU
|
||||
- text: Italiano
|
||||
- contentinfo [ref=e58]:
|
||||
- generic [ref=e59]: Italy
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 86 KiB |
@@ -56,11 +56,11 @@
|
||||
- link "indieweb.org" [ref=e42] [cursor=pointer]:
|
||||
- /url: from?site=indieweb.org
|
||||
- text: )
|
||||
- row "780 points by 47thpresident 18 hours ago | hide | 182 comments" [ref=e43]:
|
||||
- row "781 points by 47thpresident 18 hours ago | hide | 182 comments" [ref=e43]:
|
||||
- cell [ref=e44]
|
||||
- cell "780 points by 47thpresident 18 hours ago | hide | 182 comments" [ref=e45]:
|
||||
- cell "781 points by 47thpresident 18 hours ago | hide | 182 comments" [ref=e45]:
|
||||
- generic [ref=e46]:
|
||||
- text: 780 points by
|
||||
- text: 781 points by
|
||||
- link "47thpresident" [ref=e47] [cursor=pointer]:
|
||||
- /url: user?id=47thpresident
|
||||
- generic "2026-01-02T19:48:25 1767383305" [ref=e48]:
|
||||
@@ -73,69 +73,69 @@
|
||||
- link "182 comments" [ref=e51] [cursor=pointer]:
|
||||
- /url: item?id=46468600
|
||||
- row [ref=e52]
|
||||
- row "2. upvote Trump says Venezuela’s Maduro captured after strikes (reuters.com)" [ref=e53]:
|
||||
- row "2. upvote Daft Punk Easter Egg in the BPM Tempo of Harder, Better, Faster, Stronger? (madebywindmill.com)" [ref=e53]:
|
||||
- cell "2." [ref=e54]
|
||||
- cell "upvote" [ref=e55]:
|
||||
- link "upvote" [ref=e57] [cursor=pointer]:
|
||||
- /url: vote?id=46473348&how=up&goto=news
|
||||
- /url: vote?id=46469577&how=up&goto=news
|
||||
- generic "upvote" [ref=e58]
|
||||
- cell "Trump says Venezuela’s Maduro captured after strikes (reuters.com)" [ref=e59]:
|
||||
- cell "Daft Punk Easter Egg in the BPM Tempo of Harder, Better, Faster, Stronger? (madebywindmill.com)" [ref=e59]:
|
||||
- generic [ref=e60]:
|
||||
- link "Trump says Venezuela’s Maduro captured after strikes" [ref=e61] [cursor=pointer]:
|
||||
- /url: https://www.reuters.com/world/americas/loud-noises-heard-venezuela-capital-southern-area-without-electricity-2026-01-03/
|
||||
- link "Daft Punk Easter Egg in the BPM Tempo of Harder, Better, Faster, Stronger?" [ref=e61] [cursor=pointer]:
|
||||
- /url: https://www.madebywindmill.com/tempi/blog/hbfs-bpm/
|
||||
- generic [ref=e62]:
|
||||
- text: (
|
||||
- link "reuters.com" [ref=e63] [cursor=pointer]:
|
||||
- /url: from?site=reuters.com
|
||||
- link "madebywindmill.com" [ref=e63] [cursor=pointer]:
|
||||
- /url: from?site=madebywindmill.com
|
||||
- text: )
|
||||
- row "547 points by jumpocelot 7 hours ago | hide | 1254 comments" [ref=e64]:
|
||||
- row "578 points by simonw 17 hours ago | hide | 96 comments" [ref=e64]:
|
||||
- cell [ref=e65]
|
||||
- cell "547 points by jumpocelot 7 hours ago | hide | 1254 comments" [ref=e66]:
|
||||
- cell "578 points by simonw 17 hours ago | hide | 96 comments" [ref=e66]:
|
||||
- generic [ref=e67]:
|
||||
- text: 547 points by
|
||||
- link "jumpocelot" [ref=e68] [cursor=pointer]:
|
||||
- /url: user?id=jumpocelot
|
||||
- generic "2026-01-03T06:35:21 1767422121" [ref=e69]:
|
||||
- link "7 hours ago" [ref=e70] [cursor=pointer]:
|
||||
- /url: item?id=46473348
|
||||
- text: 578 points by
|
||||
- link "simonw" [ref=e68] [cursor=pointer]:
|
||||
- /url: user?id=simonw
|
||||
- generic "2026-01-02T21:27:44 1767389264" [ref=e69]:
|
||||
- link "17 hours ago" [ref=e70] [cursor=pointer]:
|
||||
- /url: item?id=46469577
|
||||
- text: "|"
|
||||
- link "hide" [ref=e71] [cursor=pointer]:
|
||||
- /url: hide?id=46473348&goto=news
|
||||
- /url: hide?id=46469577&goto=news
|
||||
- text: "|"
|
||||
- link "1254 comments" [ref=e72] [cursor=pointer]:
|
||||
- /url: item?id=46473348
|
||||
- link "96 comments" [ref=e72] [cursor=pointer]:
|
||||
- /url: item?id=46469577
|
||||
- row [ref=e73]
|
||||
- row "3. upvote Daft Punk Easter Egg in the BPM Tempo of Harder, Better, Faster, Stronger? (madebywindmill.com)" [ref=e74]:
|
||||
- row "3. upvote Trump says Venezuela’s Maduro captured after strikes (reuters.com)" [ref=e74]:
|
||||
- cell "3." [ref=e75]
|
||||
- cell "upvote" [ref=e76]:
|
||||
- link "upvote" [ref=e78] [cursor=pointer]:
|
||||
- /url: vote?id=46469577&how=up&goto=news
|
||||
- /url: vote?id=46473348&how=up&goto=news
|
||||
- generic "upvote" [ref=e79]
|
||||
- cell "Daft Punk Easter Egg in the BPM Tempo of Harder, Better, Faster, Stronger? (madebywindmill.com)" [ref=e80]:
|
||||
- cell "Trump says Venezuela’s Maduro captured after strikes (reuters.com)" [ref=e80]:
|
||||
- generic [ref=e81]:
|
||||
- link "Daft Punk Easter Egg in the BPM Tempo of Harder, Better, Faster, Stronger?" [ref=e82] [cursor=pointer]:
|
||||
- /url: https://www.madebywindmill.com/tempi/blog/hbfs-bpm/
|
||||
- link "Trump says Venezuela’s Maduro captured after strikes" [ref=e82] [cursor=pointer]:
|
||||
- /url: https://www.reuters.com/world/americas/loud-noises-heard-venezuela-capital-southern-area-without-electricity-2026-01-03/
|
||||
- generic [ref=e83]:
|
||||
- text: (
|
||||
- link "madebywindmill.com" [ref=e84] [cursor=pointer]:
|
||||
- /url: from?site=madebywindmill.com
|
||||
- link "reuters.com" [ref=e84] [cursor=pointer]:
|
||||
- /url: from?site=reuters.com
|
||||
- text: )
|
||||
- row "577 points by simonw 16 hours ago | hide | 96 comments" [ref=e85]:
|
||||
- row "553 points by jumpocelot 7 hours ago | hide | 1264 comments" [ref=e85]:
|
||||
- cell [ref=e86]
|
||||
- cell "577 points by simonw 16 hours ago | hide | 96 comments" [ref=e87]:
|
||||
- cell "553 points by jumpocelot 7 hours ago | hide | 1264 comments" [ref=e87]:
|
||||
- generic [ref=e88]:
|
||||
- text: 577 points by
|
||||
- link "simonw" [ref=e89] [cursor=pointer]:
|
||||
- /url: user?id=simonw
|
||||
- generic "2026-01-02T21:27:44 1767389264" [ref=e90]:
|
||||
- link "16 hours ago" [ref=e91] [cursor=pointer]:
|
||||
- /url: item?id=46469577
|
||||
- text: 553 points by
|
||||
- link "jumpocelot" [ref=e89] [cursor=pointer]:
|
||||
- /url: user?id=jumpocelot
|
||||
- generic "2026-01-03T06:35:21 1767422121" [ref=e90]:
|
||||
- link "7 hours ago" [ref=e91] [cursor=pointer]:
|
||||
- /url: item?id=46473348
|
||||
- text: "|"
|
||||
- link "hide" [ref=e92] [cursor=pointer]:
|
||||
- /url: hide?id=46469577&goto=news
|
||||
- /url: hide?id=46473348&goto=news
|
||||
- text: "|"
|
||||
- link "96 comments" [ref=e93] [cursor=pointer]:
|
||||
- /url: item?id=46469577
|
||||
- link "1264 comments" [ref=e93] [cursor=pointer]:
|
||||
- /url: item?id=46473348
|
||||
- row [ref=e94]
|
||||
- 'row "4. upvote Of Boot Vectors and Double Glitches: Bypassing RP2350''s Secure Boot (ccc.de)" [ref=e95]':
|
||||
- cell "4." [ref=e96]
|
||||
@@ -184,9 +184,9 @@
|
||||
- link "theregister.com" [ref=e126] [cursor=pointer]:
|
||||
- /url: from?site=theregister.com
|
||||
- text: )
|
||||
- row "424 points by Brajeshwar 23 hours ago | hide | 846 comments" [ref=e127]:
|
||||
- row "424 points by Brajeshwar 23 hours ago | hide | 847 comments" [ref=e127]:
|
||||
- cell [ref=e128]
|
||||
- cell "424 points by Brajeshwar 23 hours ago | hide | 846 comments" [ref=e129]:
|
||||
- cell "424 points by Brajeshwar 23 hours ago | hide | 847 comments" [ref=e129]:
|
||||
- generic [ref=e130]:
|
||||
- text: 424 points by
|
||||
- link "Brajeshwar" [ref=e131] [cursor=pointer]:
|
||||
@@ -198,7 +198,7 @@
|
||||
- link "hide" [ref=e134] [cursor=pointer]:
|
||||
- /url: hide?id=46465327&goto=news
|
||||
- text: "|"
|
||||
- link "846 comments" [ref=e135] [cursor=pointer]:
|
||||
- link "847 comments" [ref=e135] [cursor=pointer]:
|
||||
- /url: item?id=46465327
|
||||
- row [ref=e136]
|
||||
- row "6. ParadeDB (YC S23) Is Hiring Database Engineers (paradedb.notion.site)" [ref=e137]:
|
||||
@@ -214,11 +214,11 @@
|
||||
- link "paradedb.notion.site" [ref=e145] [cursor=pointer]:
|
||||
- /url: from?site=paradedb.notion.site
|
||||
- text: )
|
||||
- row "32 minutes ago | hide" [ref=e146]:
|
||||
- row "34 minutes ago | hide" [ref=e146]:
|
||||
- cell [ref=e147]
|
||||
- cell "32 minutes ago | hide" [ref=e148]:
|
||||
- cell "34 minutes ago | hide" [ref=e148]:
|
||||
- generic "2026-01-03T13:53:34 1767448414" [ref=e149]:
|
||||
- link "32 minutes ago" [ref=e150] [cursor=pointer]:
|
||||
- link "34 minutes ago" [ref=e150] [cursor=pointer]:
|
||||
- /url: item?id=46476636
|
||||
- text: "|"
|
||||
- link "hide" [ref=e151] [cursor=pointer]:
|
||||
@@ -239,9 +239,9 @@
|
||||
- link "siliconjunction.wordpress.com" [ref=e163] [cursor=pointer]:
|
||||
- /url: from?site=siliconjunction.wordpress.com
|
||||
- text: )
|
||||
- row "65 points by jensgk 9 hours ago | hide | 23 comments" [ref=e164]:
|
||||
- row "65 points by jensgk 9 hours ago | hide | 24 comments" [ref=e164]:
|
||||
- cell [ref=e165]
|
||||
- cell "65 points by jensgk 9 hours ago | hide | 23 comments" [ref=e166]:
|
||||
- cell "65 points by jensgk 9 hours ago | hide | 24 comments" [ref=e166]:
|
||||
- generic [ref=e167]:
|
||||
- text: 65 points by
|
||||
- link "jensgk" [ref=e168] [cursor=pointer]:
|
||||
@@ -253,7 +253,7 @@
|
||||
- link "hide" [ref=e171] [cursor=pointer]:
|
||||
- /url: hide?id=46443730&goto=news
|
||||
- text: "|"
|
||||
- link "23 comments" [ref=e172] [cursor=pointer]:
|
||||
- link "24 comments" [ref=e172] [cursor=pointer]:
|
||||
- /url: item?id=46443730
|
||||
- row [ref=e173]
|
||||
- row "8. upvote X-Clacks-Overhead (hleb.dev)" [ref=e174]:
|
||||
@@ -303,11 +303,11 @@
|
||||
- link "xeiaso.net" [ref=e205] [cursor=pointer]:
|
||||
- /url: from?site=xeiaso.net
|
||||
- text: )
|
||||
- row "612 points by todsacerdoti 14 hours ago | hide | 452 comments" [ref=e206]:
|
||||
- row "613 points by todsacerdoti 14 hours ago | hide | 452 comments" [ref=e206]:
|
||||
- cell [ref=e207]
|
||||
- cell "612 points by todsacerdoti 14 hours ago | hide | 452 comments" [ref=e208]:
|
||||
- cell "613 points by todsacerdoti 14 hours ago | hide | 452 comments" [ref=e208]:
|
||||
- generic [ref=e209]:
|
||||
- text: 612 points by
|
||||
- text: 613 points by
|
||||
- link "todsacerdoti" [ref=e210] [cursor=pointer]:
|
||||
- /url: user?id=todsacerdoti
|
||||
- generic "2026-01-03T00:15:47 1767399347" [ref=e211]:
|
||||
@@ -393,11 +393,11 @@
|
||||
- 'cell "Ask HN: Who is hiring? (January 2026)" [ref=e264]':
|
||||
- 'link "Ask HN: Who is hiring? (January 2026)" [ref=e266] [cursor=pointer]':
|
||||
- /url: item?id=46466074
|
||||
- row "306 points by whoishiring 22 hours ago | hide | 188 comments" [ref=e267]:
|
||||
- row "307 points by whoishiring 22 hours ago | hide | 188 comments" [ref=e267]:
|
||||
- cell [ref=e268]
|
||||
- cell "306 points by whoishiring 22 hours ago | hide | 188 comments" [ref=e269]:
|
||||
- cell "307 points by whoishiring 22 hours ago | hide | 188 comments" [ref=e269]:
|
||||
- generic [ref=e270]:
|
||||
- text: 306 points by
|
||||
- text: 307 points by
|
||||
- link "whoishiring" [ref=e271] [cursor=pointer]:
|
||||
- /url: user?id=whoishiring
|
||||
- generic "2026-01-02T16:00:42 1767369642" [ref=e272]:
|
||||
@@ -489,11 +489,11 @@
|
||||
- link "nullprogram.com" [ref=e329] [cursor=pointer]:
|
||||
- /url: from?site=nullprogram.com
|
||||
- text: )
|
||||
- row "76 points by ibobev 13 hours ago | hide | 16 comments" [ref=e330]:
|
||||
- row "77 points by ibobev 13 hours ago | hide | 16 comments" [ref=e330]:
|
||||
- cell [ref=e331]
|
||||
- cell "76 points by ibobev 13 hours ago | hide | 16 comments" [ref=e332]:
|
||||
- cell "77 points by ibobev 13 hours ago | hide | 16 comments" [ref=e332]:
|
||||
- generic [ref=e333]:
|
||||
- text: 76 points by
|
||||
- text: 77 points by
|
||||
- link "ibobev" [ref=e334] [cursor=pointer]:
|
||||
- /url: user?id=ibobev
|
||||
- generic "2026-01-03T01:18:07 1767403087" [ref=e335]:
|
||||
@@ -506,69 +506,69 @@
|
||||
- link "16 comments" [ref=e338] [cursor=pointer]:
|
||||
- /url: item?id=46471712
|
||||
- row [ref=e339]
|
||||
- row "16. upvote Profiling with Ctrl-C (2024) (yosefk.com)" [ref=e340]:
|
||||
- 'row "16. upvote Show HN: The ASCII Side of the Moon (aleyan.com)" [ref=e340]':
|
||||
- cell "16." [ref=e341]
|
||||
- cell "upvote" [ref=e342]:
|
||||
- link "upvote" [ref=e344] [cursor=pointer]:
|
||||
- /url: vote?id=46475296&how=up&goto=news
|
||||
- /url: vote?id=46421045&how=up&goto=news
|
||||
- generic "upvote" [ref=e345]
|
||||
- cell "Profiling with Ctrl-C (2024) (yosefk.com)" [ref=e346]:
|
||||
- 'cell "Show HN: The ASCII Side of the Moon (aleyan.com)" [ref=e346]':
|
||||
- generic [ref=e347]:
|
||||
- link "Profiling with Ctrl-C (2024)" [ref=e348] [cursor=pointer]:
|
||||
- /url: https://yosefk.com/blog/profiling-with-ctrl-c.html
|
||||
- 'link "Show HN: The ASCII Side of the Moon" [ref=e348] [cursor=pointer]':
|
||||
- /url: https://aleyan.com/projects/ascii-side-of-the-moon/?lat=32.72&lon=-117.16&date=2025-12-29T14%3A24Z
|
||||
- generic [ref=e349]:
|
||||
- text: (
|
||||
- link "yosefk.com" [ref=e350] [cursor=pointer]:
|
||||
- /url: from?site=yosefk.com
|
||||
- link "aleyan.com" [ref=e350] [cursor=pointer]:
|
||||
- /url: from?site=aleyan.com
|
||||
- text: )
|
||||
- row "9 points by hun3 3 hours ago | hide | discuss" [ref=e351]:
|
||||
- row "6 points by aleyan 3 hours ago | hide | discuss" [ref=e351]:
|
||||
- cell [ref=e352]
|
||||
- cell "9 points by hun3 3 hours ago | hide | discuss" [ref=e353]:
|
||||
- cell "6 points by aleyan 3 hours ago | hide | discuss" [ref=e353]:
|
||||
- generic [ref=e354]:
|
||||
- text: 9 points by
|
||||
- link "hun3" [ref=e355] [cursor=pointer]:
|
||||
- /url: user?id=hun3
|
||||
- generic "2026-01-03T11:13:48 1767438828" [ref=e356]:
|
||||
- text: 6 points by
|
||||
- link "aleyan" [ref=e355] [cursor=pointer]:
|
||||
- /url: user?id=aleyan
|
||||
- generic "2025-12-29T14:24:08 1767018248" [ref=e356]:
|
||||
- link "3 hours ago" [ref=e357] [cursor=pointer]:
|
||||
- /url: item?id=46475296
|
||||
- /url: item?id=46421045
|
||||
- text: "|"
|
||||
- link "hide" [ref=e358] [cursor=pointer]:
|
||||
- /url: hide?id=46475296&goto=news
|
||||
- /url: hide?id=46421045&goto=news
|
||||
- text: "|"
|
||||
- link "discuss" [ref=e359] [cursor=pointer]:
|
||||
- /url: item?id=46475296
|
||||
- /url: item?id=46421045
|
||||
- row [ref=e360]
|
||||
- row "17. upvote Linux kernel security work (kroah.com)" [ref=e361]:
|
||||
- row "17. upvote Profiling with Ctrl-C (2024) (yosefk.com)" [ref=e361]:
|
||||
- cell "17." [ref=e362]
|
||||
- cell "upvote" [ref=e363]:
|
||||
- link "upvote" [ref=e365] [cursor=pointer]:
|
||||
- /url: vote?id=46469623&how=up&goto=news
|
||||
- /url: vote?id=46475296&how=up&goto=news
|
||||
- generic "upvote" [ref=e366]
|
||||
- cell "Linux kernel security work (kroah.com)" [ref=e367]:
|
||||
- cell "Profiling with Ctrl-C (2024) (yosefk.com)" [ref=e367]:
|
||||
- generic [ref=e368]:
|
||||
- link "Linux kernel security work" [ref=e369] [cursor=pointer]:
|
||||
- /url: http://www.kroah.com/log/blog/2026/01/02/linux-kernel-security-work/
|
||||
- link "Profiling with Ctrl-C (2024)" [ref=e369] [cursor=pointer]:
|
||||
- /url: https://yosefk.com/blog/profiling-with-ctrl-c.html
|
||||
- generic [ref=e370]:
|
||||
- text: (
|
||||
- link "kroah.com" [ref=e371] [cursor=pointer]:
|
||||
- /url: from?site=kroah.com
|
||||
- link "yosefk.com" [ref=e371] [cursor=pointer]:
|
||||
- /url: from?site=yosefk.com
|
||||
- text: )
|
||||
- row "126 points by chmaynard 16 hours ago | hide | 56 comments" [ref=e372]:
|
||||
- row "9 points by hun3 3 hours ago | hide | discuss" [ref=e372]:
|
||||
- cell [ref=e373]
|
||||
- cell "126 points by chmaynard 16 hours ago | hide | 56 comments" [ref=e374]:
|
||||
- cell "9 points by hun3 3 hours ago | hide | discuss" [ref=e374]:
|
||||
- generic [ref=e375]:
|
||||
- text: 126 points by
|
||||
- link "chmaynard" [ref=e376] [cursor=pointer]:
|
||||
- /url: user?id=chmaynard
|
||||
- generic "2026-01-02T21:31:34 1767389494" [ref=e377]:
|
||||
- link "16 hours ago" [ref=e378] [cursor=pointer]:
|
||||
- /url: item?id=46469623
|
||||
- text: 9 points by
|
||||
- link "hun3" [ref=e376] [cursor=pointer]:
|
||||
- /url: user?id=hun3
|
||||
- generic "2026-01-03T11:13:48 1767438828" [ref=e377]:
|
||||
- link "3 hours ago" [ref=e378] [cursor=pointer]:
|
||||
- /url: item?id=46475296
|
||||
- text: "|"
|
||||
- link "hide" [ref=e379] [cursor=pointer]:
|
||||
- /url: hide?id=46469623&goto=news
|
||||
- /url: hide?id=46475296&goto=news
|
||||
- text: "|"
|
||||
- link "56 comments" [ref=e380] [cursor=pointer]:
|
||||
- /url: item?id=46469623
|
||||
- link "discuss" [ref=e380] [cursor=pointer]:
|
||||
- /url: item?id=46475296
|
||||
- row [ref=e381]
|
||||
- 'row "18. upvote IQuest-Coder: A new open-source code model beats Claude Sonnet 4.5 and GPT 5.1 [pdf] (github.com/iquestlab)" [ref=e382]':
|
||||
- cell "18." [ref=e383]
|
||||
@@ -585,11 +585,11 @@
|
||||
- link "github.com/iquestlab" [ref=e392] [cursor=pointer]:
|
||||
- /url: from?site=github.com/iquestlab
|
||||
- text: )
|
||||
- row "111 points by shenli3514 10 hours ago | hide | 33 comments" [ref=e393]:
|
||||
- row "112 points by shenli3514 10 hours ago | hide | 33 comments" [ref=e393]:
|
||||
- cell [ref=e394]
|
||||
- cell "111 points by shenli3514 10 hours ago | hide | 33 comments" [ref=e395]:
|
||||
- cell "112 points by shenli3514 10 hours ago | hide | 33 comments" [ref=e395]:
|
||||
- generic [ref=e396]:
|
||||
- text: 111 points by
|
||||
- text: 112 points by
|
||||
- link "shenli3514" [ref=e397] [cursor=pointer]:
|
||||
- /url: user?id=shenli3514
|
||||
- generic "2026-01-03T04:01:03 1767412863" [ref=e398]:
|
||||
@@ -602,261 +602,261 @@
|
||||
- link "33 comments" [ref=e401] [cursor=pointer]:
|
||||
- /url: item?id=46472667
|
||||
- row [ref=e402]
|
||||
- row "19. upvote UK company sends factory with 1,000C furnace into space (bbc.co.uk)" [ref=e403]:
|
||||
- row "19. upvote Linux kernel security work (kroah.com)" [ref=e403]:
|
||||
- cell "19." [ref=e404]
|
||||
- cell "upvote" [ref=e405]:
|
||||
- link "upvote" [ref=e407] [cursor=pointer]:
|
||||
- /url: vote?id=46442293&how=up&goto=news
|
||||
- /url: vote?id=46469623&how=up&goto=news
|
||||
- generic "upvote" [ref=e408]
|
||||
- cell "UK company sends factory with 1,000C furnace into space (bbc.co.uk)" [ref=e409]:
|
||||
- cell "Linux kernel security work (kroah.com)" [ref=e409]:
|
||||
- generic [ref=e410]:
|
||||
- link "UK company sends factory with 1,000C furnace into space" [ref=e411] [cursor=pointer]:
|
||||
- /url: https://www.bbc.co.uk/news/articles/c62vx0pgyrgo
|
||||
- link "Linux kernel security work" [ref=e411] [cursor=pointer]:
|
||||
- /url: http://www.kroah.com/log/blog/2026/01/02/linux-kernel-security-work/
|
||||
- generic [ref=e412]:
|
||||
- text: (
|
||||
- link "bbc.co.uk" [ref=e413] [cursor=pointer]:
|
||||
- /url: from?site=bbc.co.uk
|
||||
- link "kroah.com" [ref=e413] [cursor=pointer]:
|
||||
- /url: from?site=kroah.com
|
||||
- text: )
|
||||
- row "75 points by vekerdyb 12 hours ago | hide | 32 comments" [ref=e414]:
|
||||
- row "126 points by chmaynard 16 hours ago | hide | 56 comments" [ref=e414]:
|
||||
- cell [ref=e415]
|
||||
- cell "75 points by vekerdyb 12 hours ago | hide | 32 comments" [ref=e416]:
|
||||
- cell "126 points by chmaynard 16 hours ago | hide | 56 comments" [ref=e416]:
|
||||
- generic [ref=e417]:
|
||||
- text: 75 points by
|
||||
- link "vekerdyb" [ref=e418] [cursor=pointer]:
|
||||
- /url: user?id=vekerdyb
|
||||
- generic "2025-12-31T08:04:30 1767168270" [ref=e419]:
|
||||
- link "12 hours ago" [ref=e420] [cursor=pointer]:
|
||||
- /url: item?id=46442293
|
||||
- text: 126 points by
|
||||
- link "chmaynard" [ref=e418] [cursor=pointer]:
|
||||
- /url: user?id=chmaynard
|
||||
- generic "2026-01-02T21:31:34 1767389494" [ref=e419]:
|
||||
- link "16 hours ago" [ref=e420] [cursor=pointer]:
|
||||
- /url: item?id=46469623
|
||||
- text: "|"
|
||||
- link "hide" [ref=e421] [cursor=pointer]:
|
||||
- /url: hide?id=46442293&goto=news
|
||||
- /url: hide?id=46469623&goto=news
|
||||
- text: "|"
|
||||
- link "32 comments" [ref=e422] [cursor=pointer]:
|
||||
- /url: item?id=46442293
|
||||
- link "56 comments" [ref=e422] [cursor=pointer]:
|
||||
- /url: item?id=46469623
|
||||
- row [ref=e423]
|
||||
- row "20. upvote Jank Lang Hit Alpha (github.com/jank-lang)" [ref=e424]:
|
||||
- row "20. upvote UK company sends factory with 1,000C furnace into space (bbc.co.uk)" [ref=e424]:
|
||||
- cell "20." [ref=e425]
|
||||
- cell "upvote" [ref=e426]:
|
||||
- link "upvote" [ref=e428] [cursor=pointer]:
|
||||
- /url: vote?id=46468517&how=up&goto=news
|
||||
- /url: vote?id=46442293&how=up&goto=news
|
||||
- generic "upvote" [ref=e429]
|
||||
- cell "Jank Lang Hit Alpha (github.com/jank-lang)" [ref=e430]:
|
||||
- cell "UK company sends factory with 1,000C furnace into space (bbc.co.uk)" [ref=e430]:
|
||||
- generic [ref=e431]:
|
||||
- link "Jank Lang Hit Alpha" [ref=e432] [cursor=pointer]:
|
||||
- /url: https://github.com/jank-lang/jank
|
||||
- link "UK company sends factory with 1,000C furnace into space" [ref=e432] [cursor=pointer]:
|
||||
- /url: https://www.bbc.co.uk/news/articles/c62vx0pgyrgo
|
||||
- generic [ref=e433]:
|
||||
- text: (
|
||||
- link "github.com/jank-lang" [ref=e434] [cursor=pointer]:
|
||||
- /url: from?site=github.com/jank-lang
|
||||
- link "bbc.co.uk" [ref=e434] [cursor=pointer]:
|
||||
- /url: from?site=bbc.co.uk
|
||||
- text: )
|
||||
- row "195 points by makemethrowaway 18 hours ago | hide | 27 comments" [ref=e435]:
|
||||
- row "76 points by vekerdyb 12 hours ago | hide | 32 comments" [ref=e435]:
|
||||
- cell [ref=e436]
|
||||
- cell "195 points by makemethrowaway 18 hours ago | hide | 27 comments" [ref=e437]:
|
||||
- cell "76 points by vekerdyb 12 hours ago | hide | 32 comments" [ref=e437]:
|
||||
- generic [ref=e438]:
|
||||
- text: 195 points by
|
||||
- link "makemethrowaway" [ref=e439] [cursor=pointer]:
|
||||
- /url: user?id=makemethrowaway
|
||||
- generic "2026-01-02T19:39:38 1767382778" [ref=e440]:
|
||||
- link "18 hours ago" [ref=e441] [cursor=pointer]:
|
||||
- /url: item?id=46468517
|
||||
- text: 76 points by
|
||||
- link "vekerdyb" [ref=e439] [cursor=pointer]:
|
||||
- /url: user?id=vekerdyb
|
||||
- generic "2025-12-31T08:04:30 1767168270" [ref=e440]:
|
||||
- link "12 hours ago" [ref=e441] [cursor=pointer]:
|
||||
- /url: item?id=46442293
|
||||
- text: "|"
|
||||
- link "hide" [ref=e442] [cursor=pointer]:
|
||||
- /url: hide?id=46468517&goto=news
|
||||
- /url: hide?id=46442293&goto=news
|
||||
- text: "|"
|
||||
- link "27 comments" [ref=e443] [cursor=pointer]:
|
||||
- /url: item?id=46468517
|
||||
- link "32 comments" [ref=e443] [cursor=pointer]:
|
||||
- /url: item?id=46442293
|
||||
- row [ref=e444]
|
||||
- 'row "21. upvote The Cost of a Closure in C: The Rest (thephd.dev)" [ref=e445]':
|
||||
- row "21. upvote Jank Lang Hit Alpha (github.com/jank-lang)" [ref=e445]:
|
||||
- cell "21." [ref=e446]
|
||||
- cell "upvote" [ref=e447]:
|
||||
- link "upvote" [ref=e449] [cursor=pointer]:
|
||||
- /url: vote?id=46442229&how=up&goto=news
|
||||
- /url: vote?id=46468517&how=up&goto=news
|
||||
- generic "upvote" [ref=e450]
|
||||
- 'cell "The Cost of a Closure in C: The Rest (thephd.dev)" [ref=e451]':
|
||||
- cell "Jank Lang Hit Alpha (github.com/jank-lang)" [ref=e451]:
|
||||
- generic [ref=e452]:
|
||||
- 'link "The Cost of a Closure in C: The Rest" [ref=e453] [cursor=pointer]':
|
||||
- /url: https://thephd.dev/the-cost-of-a-closure-in-c-c2y-followup
|
||||
- link "Jank Lang Hit Alpha" [ref=e453] [cursor=pointer]:
|
||||
- /url: https://github.com/jank-lang/jank
|
||||
- generic [ref=e454]:
|
||||
- text: (
|
||||
- link "thephd.dev" [ref=e455] [cursor=pointer]:
|
||||
- /url: from?site=thephd.dev
|
||||
- link "github.com/jank-lang" [ref=e455] [cursor=pointer]:
|
||||
- /url: from?site=github.com/jank-lang
|
||||
- text: )
|
||||
- row "50 points by ingve 11 hours ago | hide | 22 comments" [ref=e456]:
|
||||
- row "195 points by makemethrowaway 18 hours ago | hide | 27 comments" [ref=e456]:
|
||||
- cell [ref=e457]
|
||||
- cell "50 points by ingve 11 hours ago | hide | 22 comments" [ref=e458]:
|
||||
- cell "195 points by makemethrowaway 18 hours ago | hide | 27 comments" [ref=e458]:
|
||||
- generic [ref=e459]:
|
||||
- text: 50 points by
|
||||
- link "ingve" [ref=e460] [cursor=pointer]:
|
||||
- /url: user?id=ingve
|
||||
- generic "2025-12-31T07:44:25 1767167065" [ref=e461]:
|
||||
- link "11 hours ago" [ref=e462] [cursor=pointer]:
|
||||
- /url: item?id=46442229
|
||||
- text: 195 points by
|
||||
- link "makemethrowaway" [ref=e460] [cursor=pointer]:
|
||||
- /url: user?id=makemethrowaway
|
||||
- generic "2026-01-02T19:39:38 1767382778" [ref=e461]:
|
||||
- link "18 hours ago" [ref=e462] [cursor=pointer]:
|
||||
- /url: item?id=46468517
|
||||
- text: "|"
|
||||
- link "hide" [ref=e463] [cursor=pointer]:
|
||||
- /url: hide?id=46442229&goto=news
|
||||
- /url: hide?id=46468517&goto=news
|
||||
- text: "|"
|
||||
- link "22 comments" [ref=e464] [cursor=pointer]:
|
||||
- /url: item?id=46442229
|
||||
- link "27 comments" [ref=e464] [cursor=pointer]:
|
||||
- /url: item?id=46468517
|
||||
- row [ref=e465]
|
||||
- 'row "22. upvote Show HN: uvx ptn, scan a QR, get a terminal in your phone (github.com/lyehe)" [ref=e466]':
|
||||
- 'row "22. upvote The Cost of a Closure in C: The Rest (thephd.dev)" [ref=e466]':
|
||||
- cell "22." [ref=e467]
|
||||
- cell "upvote" [ref=e468]:
|
||||
- link "upvote" [ref=e470] [cursor=pointer]:
|
||||
- /url: vote?id=46472772&how=up&goto=news
|
||||
- /url: vote?id=46442229&how=up&goto=news
|
||||
- generic "upvote" [ref=e471]
|
||||
- 'cell "Show HN: uvx ptn, scan a QR, get a terminal in your phone (github.com/lyehe)" [ref=e472]':
|
||||
- 'cell "The Cost of a Closure in C: The Rest (thephd.dev)" [ref=e472]':
|
||||
- generic [ref=e473]:
|
||||
- 'link "Show HN: uvx ptn, scan a QR, get a terminal in your phone" [ref=e474] [cursor=pointer]':
|
||||
- /url: https://github.com/lyehe/porterminal
|
||||
- 'link "The Cost of a Closure in C: The Rest" [ref=e474] [cursor=pointer]':
|
||||
- /url: https://thephd.dev/the-cost-of-a-closure-in-c-c2y-followup
|
||||
- generic [ref=e475]:
|
||||
- text: (
|
||||
- link "github.com/lyehe" [ref=e476] [cursor=pointer]:
|
||||
- /url: from?site=github.com/lyehe
|
||||
- link "thephd.dev" [ref=e476] [cursor=pointer]:
|
||||
- /url: from?site=thephd.dev
|
||||
- text: )
|
||||
- row "43 points by yxl448 10 hours ago | hide | 10 comments" [ref=e477]:
|
||||
- row "50 points by ingve 11 hours ago | hide | 22 comments" [ref=e477]:
|
||||
- cell [ref=e478]
|
||||
- cell "43 points by yxl448 10 hours ago | hide | 10 comments" [ref=e479]:
|
||||
- cell "50 points by ingve 11 hours ago | hide | 22 comments" [ref=e479]:
|
||||
- generic [ref=e480]:
|
||||
- text: 43 points by
|
||||
- link "yxl448" [ref=e481] [cursor=pointer]:
|
||||
- /url: user?id=yxl448
|
||||
- generic "2026-01-03T04:22:29 1767414149" [ref=e482]:
|
||||
- link "10 hours ago" [ref=e483] [cursor=pointer]:
|
||||
- /url: item?id=46472772
|
||||
- text: 50 points by
|
||||
- link "ingve" [ref=e481] [cursor=pointer]:
|
||||
- /url: user?id=ingve
|
||||
- generic "2025-12-31T07:44:25 1767167065" [ref=e482]:
|
||||
- link "11 hours ago" [ref=e483] [cursor=pointer]:
|
||||
- /url: item?id=46442229
|
||||
- text: "|"
|
||||
- link "hide" [ref=e484] [cursor=pointer]:
|
||||
- /url: hide?id=46472772&goto=news
|
||||
- /url: hide?id=46442229&goto=news
|
||||
- text: "|"
|
||||
- link "10 comments" [ref=e485] [cursor=pointer]:
|
||||
- /url: item?id=46472772
|
||||
- link "22 comments" [ref=e485] [cursor=pointer]:
|
||||
- /url: item?id=46442229
|
||||
- row [ref=e486]
|
||||
- row "23. upvote Adventure 751 (1980) (bluerenga.blog)" [ref=e487]:
|
||||
- 'row "23. upvote Show HN: uvx ptn, scan a QR, get a terminal in your phone (github.com/lyehe)" [ref=e487]':
|
||||
- cell "23." [ref=e488]
|
||||
- cell "upvote" [ref=e489]:
|
||||
- link "upvote" [ref=e491] [cursor=pointer]:
|
||||
- /url: vote?id=46472230&how=up&goto=news
|
||||
- /url: vote?id=46472772&how=up&goto=news
|
||||
- generic "upvote" [ref=e492]
|
||||
- cell "Adventure 751 (1980) (bluerenga.blog)" [ref=e493]:
|
||||
- 'cell "Show HN: uvx ptn, scan a QR, get a terminal in your phone (github.com/lyehe)" [ref=e493]':
|
||||
- generic [ref=e494]:
|
||||
- link "Adventure 751 (1980)" [ref=e495] [cursor=pointer]:
|
||||
- /url: https://bluerenga.blog/2026/01/01/adventure-751-1980/
|
||||
- 'link "Show HN: uvx ptn, scan a QR, get a terminal in your phone" [ref=e495] [cursor=pointer]':
|
||||
- /url: https://github.com/lyehe/porterminal
|
||||
- generic [ref=e496]:
|
||||
- text: (
|
||||
- link "bluerenga.blog" [ref=e497] [cursor=pointer]:
|
||||
- /url: from?site=bluerenga.blog
|
||||
- link "github.com/lyehe" [ref=e497] [cursor=pointer]:
|
||||
- /url: from?site=github.com/lyehe
|
||||
- text: )
|
||||
- row "37 points by quuxplusone 11 hours ago | hide | 3 comments" [ref=e498]:
|
||||
- row "43 points by yxl448 10 hours ago | hide | 10 comments" [ref=e498]:
|
||||
- cell [ref=e499]
|
||||
- cell "37 points by quuxplusone 11 hours ago | hide | 3 comments" [ref=e500]:
|
||||
- cell "43 points by yxl448 10 hours ago | hide | 10 comments" [ref=e500]:
|
||||
- generic [ref=e501]:
|
||||
- text: 37 points by
|
||||
- link "quuxplusone" [ref=e502] [cursor=pointer]:
|
||||
- /url: user?id=quuxplusone
|
||||
- generic "2026-01-03T02:38:06 1767407886" [ref=e503]:
|
||||
- link "11 hours ago" [ref=e504] [cursor=pointer]:
|
||||
- /url: item?id=46472230
|
||||
- text: 43 points by
|
||||
- link "yxl448" [ref=e502] [cursor=pointer]:
|
||||
- /url: user?id=yxl448
|
||||
- generic "2026-01-03T04:22:29 1767414149" [ref=e503]:
|
||||
- link "10 hours ago" [ref=e504] [cursor=pointer]:
|
||||
- /url: item?id=46472772
|
||||
- text: "|"
|
||||
- link "hide" [ref=e505] [cursor=pointer]:
|
||||
- /url: hide?id=46472230&goto=news
|
||||
- /url: hide?id=46472772&goto=news
|
||||
- text: "|"
|
||||
- link "3 comments" [ref=e506] [cursor=pointer]:
|
||||
- /url: item?id=46472230
|
||||
- link "10 comments" [ref=e506] [cursor=pointer]:
|
||||
- /url: item?id=46472772
|
||||
- row [ref=e507]
|
||||
- row "24. upvote Unix v4 (1973) – Live Terminal (unixv4.dev)" [ref=e508]:
|
||||
- row "24. upvote Adventure 751 (1980) (bluerenga.blog)" [ref=e508]:
|
||||
- cell "24." [ref=e509]
|
||||
- cell "upvote" [ref=e510]:
|
||||
- link "upvote" [ref=e512] [cursor=pointer]:
|
||||
- /url: vote?id=46468283&how=up&goto=news
|
||||
- /url: vote?id=46472230&how=up&goto=news
|
||||
- generic "upvote" [ref=e513]
|
||||
- cell "Unix v4 (1973) – Live Terminal (unixv4.dev)" [ref=e514]:
|
||||
- cell "Adventure 751 (1980) (bluerenga.blog)" [ref=e514]:
|
||||
- generic [ref=e515]:
|
||||
- link "Unix v4 (1973) – Live Terminal" [ref=e516] [cursor=pointer]:
|
||||
- /url: https://unixv4.dev/
|
||||
- link "Adventure 751 (1980)" [ref=e516] [cursor=pointer]:
|
||||
- /url: https://bluerenga.blog/2026/01/01/adventure-751-1980/
|
||||
- generic [ref=e517]:
|
||||
- text: (
|
||||
- link "unixv4.dev" [ref=e518] [cursor=pointer]:
|
||||
- /url: from?site=unixv4.dev
|
||||
- link "bluerenga.blog" [ref=e518] [cursor=pointer]:
|
||||
- /url: from?site=bluerenga.blog
|
||||
- text: )
|
||||
- row "155 points by pjmlp 19 hours ago | hide | 76 comments" [ref=e519]:
|
||||
- row "37 points by quuxplusone 11 hours ago | hide | 3 comments" [ref=e519]:
|
||||
- cell [ref=e520]
|
||||
- cell "155 points by pjmlp 19 hours ago | hide | 76 comments" [ref=e521]:
|
||||
- cell "37 points by quuxplusone 11 hours ago | hide | 3 comments" [ref=e521]:
|
||||
- generic [ref=e522]:
|
||||
- text: 155 points by
|
||||
- link "pjmlp" [ref=e523] [cursor=pointer]:
|
||||
- /url: user?id=pjmlp
|
||||
- generic "2026-01-02T19:18:36 1767381516" [ref=e524]:
|
||||
- link "19 hours ago" [ref=e525] [cursor=pointer]:
|
||||
- /url: item?id=46468283
|
||||
- text: 37 points by
|
||||
- link "quuxplusone" [ref=e523] [cursor=pointer]:
|
||||
- /url: user?id=quuxplusone
|
||||
- generic "2026-01-03T02:38:06 1767407886" [ref=e524]:
|
||||
- link "11 hours ago" [ref=e525] [cursor=pointer]:
|
||||
- /url: item?id=46472230
|
||||
- text: "|"
|
||||
- link "hide" [ref=e526] [cursor=pointer]:
|
||||
- /url: hide?id=46468283&goto=news
|
||||
- /url: hide?id=46472230&goto=news
|
||||
- text: "|"
|
||||
- link "76 comments" [ref=e527] [cursor=pointer]:
|
||||
- /url: item?id=46468283
|
||||
- link "3 comments" [ref=e527] [cursor=pointer]:
|
||||
- /url: item?id=46472230
|
||||
- row [ref=e528]
|
||||
- 'row "25. upvote Fighting Fire with Fire: Scalable Oral Exams (behind-the-enemy-lines.com)" [ref=e529]':
|
||||
- row "25. upvote Unix v4 (1973) – Live Terminal (unixv4.dev)" [ref=e529]:
|
||||
- cell "25." [ref=e530]
|
||||
- cell "upvote" [ref=e531]:
|
||||
- link "upvote" [ref=e533] [cursor=pointer]:
|
||||
- /url: vote?id=46467677&how=up&goto=news
|
||||
- /url: vote?id=46468283&how=up&goto=news
|
||||
- generic "upvote" [ref=e534]
|
||||
- 'cell "Fighting Fire with Fire: Scalable Oral Exams (behind-the-enemy-lines.com)" [ref=e535]':
|
||||
- cell "Unix v4 (1973) – Live Terminal (unixv4.dev)" [ref=e535]:
|
||||
- generic [ref=e536]:
|
||||
- 'link "Fighting Fire with Fire: Scalable Oral Exams" [ref=e537] [cursor=pointer]':
|
||||
- /url: https://www.behind-the-enemy-lines.com/2025/12/fighting-fire-with-fire-scalable-oral.html
|
||||
- link "Unix v4 (1973) – Live Terminal" [ref=e537] [cursor=pointer]:
|
||||
- /url: https://unixv4.dev/
|
||||
- generic [ref=e538]:
|
||||
- text: (
|
||||
- link "behind-the-enemy-lines.com" [ref=e539] [cursor=pointer]:
|
||||
- /url: from?site=behind-the-enemy-lines.com
|
||||
- link "unixv4.dev" [ref=e539] [cursor=pointer]:
|
||||
- /url: from?site=unixv4.dev
|
||||
- text: )
|
||||
- row "177 points by sethbannon 20 hours ago | hide | 232 comments" [ref=e540]:
|
||||
- row "155 points by pjmlp 19 hours ago | hide | 76 comments" [ref=e540]:
|
||||
- cell [ref=e541]
|
||||
- cell "177 points by sethbannon 20 hours ago | hide | 232 comments" [ref=e542]:
|
||||
- cell "155 points by pjmlp 19 hours ago | hide | 76 comments" [ref=e542]:
|
||||
- generic [ref=e543]:
|
||||
- text: 177 points by
|
||||
- link "sethbannon" [ref=e544] [cursor=pointer]:
|
||||
- /url: user?id=sethbannon
|
||||
- generic "2026-01-02T18:18:47 1767377927" [ref=e545]:
|
||||
- link "20 hours ago" [ref=e546] [cursor=pointer]:
|
||||
- /url: item?id=46467677
|
||||
- text: 155 points by
|
||||
- link "pjmlp" [ref=e544] [cursor=pointer]:
|
||||
- /url: user?id=pjmlp
|
||||
- generic "2026-01-02T19:18:36 1767381516" [ref=e545]:
|
||||
- link "19 hours ago" [ref=e546] [cursor=pointer]:
|
||||
- /url: item?id=46468283
|
||||
- text: "|"
|
||||
- link "hide" [ref=e547] [cursor=pointer]:
|
||||
- /url: hide?id=46467677&goto=news
|
||||
- /url: hide?id=46468283&goto=news
|
||||
- text: "|"
|
||||
- link "232 comments" [ref=e548] [cursor=pointer]:
|
||||
- /url: item?id=46467677
|
||||
- link "76 comments" [ref=e548] [cursor=pointer]:
|
||||
- /url: item?id=46468283
|
||||
- row [ref=e549]
|
||||
- row "26. upvote Accounting for Computer Scientists (2011) (kleppmann.com)" [ref=e550]:
|
||||
- 'row "26. upvote Fighting Fire with Fire: Scalable Oral Exams (behind-the-enemy-lines.com)" [ref=e550]':
|
||||
- cell "26." [ref=e551]
|
||||
- cell "upvote" [ref=e552]:
|
||||
- link "upvote" [ref=e554] [cursor=pointer]:
|
||||
- /url: vote?id=46467651&how=up&goto=news
|
||||
- /url: vote?id=46467677&how=up&goto=news
|
||||
- generic "upvote" [ref=e555]
|
||||
- cell "Accounting for Computer Scientists (2011) (kleppmann.com)" [ref=e556]:
|
||||
- 'cell "Fighting Fire with Fire: Scalable Oral Exams (behind-the-enemy-lines.com)" [ref=e556]':
|
||||
- generic [ref=e557]:
|
||||
- link "Accounting for Computer Scientists (2011)" [ref=e558] [cursor=pointer]:
|
||||
- /url: https://martin.kleppmann.com/2011/03/07/accounting-for-computer-scientists.html
|
||||
- 'link "Fighting Fire with Fire: Scalable Oral Exams" [ref=e558] [cursor=pointer]':
|
||||
- /url: https://www.behind-the-enemy-lines.com/2025/12/fighting-fire-with-fire-scalable-oral.html
|
||||
- generic [ref=e559]:
|
||||
- text: (
|
||||
- link "kleppmann.com" [ref=e560] [cursor=pointer]:
|
||||
- /url: from?site=kleppmann.com
|
||||
- link "behind-the-enemy-lines.com" [ref=e560] [cursor=pointer]:
|
||||
- /url: from?site=behind-the-enemy-lines.com
|
||||
- text: )
|
||||
- row "128 points by tosh 19 hours ago | hide | 49 comments" [ref=e561]:
|
||||
- row "177 points by sethbannon 20 hours ago | hide | 233 comments" [ref=e561]:
|
||||
- cell [ref=e562]
|
||||
- cell "128 points by tosh 19 hours ago | hide | 49 comments" [ref=e563]:
|
||||
- cell "177 points by sethbannon 20 hours ago | hide | 233 comments" [ref=e563]:
|
||||
- generic [ref=e564]:
|
||||
- text: 128 points by
|
||||
- link "tosh" [ref=e565] [cursor=pointer]:
|
||||
- /url: user?id=tosh
|
||||
- generic "2026-01-02T18:16:07 1767377767" [ref=e566]:
|
||||
- link "19 hours ago" [ref=e567] [cursor=pointer]:
|
||||
- /url: item?id=46467651
|
||||
- text: 177 points by
|
||||
- link "sethbannon" [ref=e565] [cursor=pointer]:
|
||||
- /url: user?id=sethbannon
|
||||
- generic "2026-01-02T18:18:47 1767377927" [ref=e566]:
|
||||
- link "20 hours ago" [ref=e567] [cursor=pointer]:
|
||||
- /url: item?id=46467677
|
||||
- text: "|"
|
||||
- link "hide" [ref=e568] [cursor=pointer]:
|
||||
- /url: hide?id=46467651&goto=news
|
||||
- /url: hide?id=46467677&goto=news
|
||||
- text: "|"
|
||||
- link "49 comments" [ref=e569] [cursor=pointer]:
|
||||
- /url: item?id=46467651
|
||||
- link "233 comments" [ref=e569] [cursor=pointer]:
|
||||
- /url: item?id=46467677
|
||||
- row [ref=e570]
|
||||
- 'row "27. upvote Ask HN: Who wants to be hired? (January 2026)" [ref=e571]':
|
||||
- cell "27." [ref=e572]
|
||||
@@ -867,11 +867,11 @@
|
||||
- 'cell "Ask HN: Who wants to be hired? (January 2026)" [ref=e577]':
|
||||
- 'link "Ask HN: Who wants to be hired? (January 2026)" [ref=e579] [cursor=pointer]':
|
||||
- /url: item?id=46466073
|
||||
- row "124 points by whoishiring 22 hours ago | hide | 231 comments" [ref=e580]:
|
||||
- row "125 points by whoishiring 22 hours ago | hide | 231 comments" [ref=e580]:
|
||||
- cell [ref=e581]
|
||||
- cell "124 points by whoishiring 22 hours ago | hide | 231 comments" [ref=e582]:
|
||||
- cell "125 points by whoishiring 22 hours ago | hide | 231 comments" [ref=e582]:
|
||||
- generic [ref=e583]:
|
||||
- text: 124 points by
|
||||
- text: 125 points by
|
||||
- link "whoishiring" [ref=e584] [cursor=pointer]:
|
||||
- /url: user?id=whoishiring
|
||||
- generic "2026-01-02T16:00:42 1767369642" [ref=e585]:
|
||||
@@ -884,37 +884,37 @@
|
||||
- link "231 comments" [ref=e588] [cursor=pointer]:
|
||||
- /url: item?id=46466073
|
||||
- row [ref=e589]
|
||||
- 'row "28. upvote Show HN: The ASCII Side of the Moon (aleyan.com)" [ref=e590]':
|
||||
- row "28. upvote Accounting for Computer Scientists (2011) (kleppmann.com)" [ref=e590]:
|
||||
- cell "28." [ref=e591]
|
||||
- cell "upvote" [ref=e592]:
|
||||
- link "upvote" [ref=e594] [cursor=pointer]:
|
||||
- /url: vote?id=46421045&how=up&goto=news
|
||||
- /url: vote?id=46467651&how=up&goto=news
|
||||
- generic "upvote" [ref=e595]
|
||||
- 'cell "Show HN: The ASCII Side of the Moon (aleyan.com)" [ref=e596]':
|
||||
- cell "Accounting for Computer Scientists (2011) (kleppmann.com)" [ref=e596]:
|
||||
- generic [ref=e597]:
|
||||
- 'link "Show HN: The ASCII Side of the Moon" [ref=e598] [cursor=pointer]':
|
||||
- /url: https://aleyan.com/projects/ascii-side-of-the-moon/?lat=32.72&lon=-117.16&date=2025-12-29T14%3A24Z
|
||||
- link "Accounting for Computer Scientists (2011)" [ref=e598] [cursor=pointer]:
|
||||
- /url: https://martin.kleppmann.com/2011/03/07/accounting-for-computer-scientists.html
|
||||
- generic [ref=e599]:
|
||||
- text: (
|
||||
- link "aleyan.com" [ref=e600] [cursor=pointer]:
|
||||
- /url: from?site=aleyan.com
|
||||
- link "kleppmann.com" [ref=e600] [cursor=pointer]:
|
||||
- /url: from?site=kleppmann.com
|
||||
- text: )
|
||||
- row "5 points by aleyan 3 hours ago | hide | discuss" [ref=e601]:
|
||||
- row "128 points by tosh 19 hours ago | hide | 49 comments" [ref=e601]:
|
||||
- cell [ref=e602]
|
||||
- cell "5 points by aleyan 3 hours ago | hide | discuss" [ref=e603]:
|
||||
- cell "128 points by tosh 19 hours ago | hide | 49 comments" [ref=e603]:
|
||||
- generic [ref=e604]:
|
||||
- text: 5 points by
|
||||
- link "aleyan" [ref=e605] [cursor=pointer]:
|
||||
- /url: user?id=aleyan
|
||||
- generic "2025-12-29T14:24:08 1767018248" [ref=e606]:
|
||||
- link "3 hours ago" [ref=e607] [cursor=pointer]:
|
||||
- /url: item?id=46421045
|
||||
- text: 128 points by
|
||||
- link "tosh" [ref=e605] [cursor=pointer]:
|
||||
- /url: user?id=tosh
|
||||
- generic "2026-01-02T18:16:07 1767377767" [ref=e606]:
|
||||
- link "19 hours ago" [ref=e607] [cursor=pointer]:
|
||||
- /url: item?id=46467651
|
||||
- text: "|"
|
||||
- link "hide" [ref=e608] [cursor=pointer]:
|
||||
- /url: hide?id=46421045&goto=news
|
||||
- /url: hide?id=46467651&goto=news
|
||||
- text: "|"
|
||||
- link "discuss" [ref=e609] [cursor=pointer]:
|
||||
- /url: item?id=46421045
|
||||
- link "49 comments" [ref=e609] [cursor=pointer]:
|
||||
- /url: item?id=46467651
|
||||
- row [ref=e610]
|
||||
- row "29. upvote The rsync algorithm (1996) [pdf] (cmu.edu)" [ref=e611]:
|
||||
- cell "29." [ref=e612]
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 189 KiB |
Reference in New Issue
Block a user