| Variant | Year | Clock (MHz) | Bus (MHz) | Mult. | FPU | L1 Cache | Pipeline | MMU | Reg Width | Addr Bus | Data Bus | Process | Transistors | Voltage | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 80286 | 1982 | 6, 8, 10, 12.5 | = clock | 1x | None (ext. 80287) | None | ~3-stage prefetch | Segmentation only | 16-bit | 24-bit | 16-bit | 1.5 µm | 134K | 5V | |
| 386DX | 1985 | 16, 20, 25, 33 | = clock | 1x | None (ext. 80387) | None | Prefetch, not pipelined | Seg + paging | 32-bit | 32-bit | 32-bit | 1.5→1 µm | 275K | 5V | Full 32-bit debut |
| 386SX | 1988 | 16, 20, 25, 33 | = clock | 1x | None (ext. 80387SX) | None | Same as 386DX | Seg + paging | 32-bit | 24-bit | 16-bit | 1→0.8 µm | 275K | 5V | Cost-reduce |
| API | Type | Platform | Vendor | Level | Primary Use | Year |
|---|---|---|---|---|---|---|
| WebGPU | Graphics + Compute | Web browsers | Khronos Group | Low-level | Next-gen web GPU | 2023 |
| MoltenVK | Translation | Apple platforms | Khronos Group | N/A | Vulkan on Metal | 2018 |
| Direct3D 12 | Graphics | Windows, Xbox | Microsoft | Low-level | Modern game engines | 2015 |
| Vulkan | Graphics + Compute | Cross-platform | Khronos Group | Low-level | Modern cross-platform rendering | 2016 |
| Metal | Graphics + Compute | macOS, iOS | Apple | Low-level | Apple ecosystem apps/games | 2014 |
| Mantle | Graphics | Windows (deprecated) | AMD | Low-level | Vulkan precursor | 2013 |
Genre: Historical Drama
Tone: Quietly tragic, observational, with subtle humour and moments of intensity
Languages: English and French (as appropriate)
Point of View: George Walker
Set in 1834, The Grand Master tells the story of Alexander McDonnell and Louis-Charles Mahé de La Bourdonnais, two of the greatest chess players of their time. Despite living in opposite worlds and speaking different languages, they share a deep, unspoken connection through the chessboard, where their personalities are reversed:
| use rusqlite::{Connection, Result, Params}; | |
| pub struct Query<'conn> { | |
| stmt: rusqlite::CachedStatement<'conn>, | |
| } | |
| impl<'conn> Query<'conn> { | |
| pub fn new(conn: &'conn Connection, sql: &str) -> Result<Self> { | |
| Ok(Self { stmt: conn.prepare_cached(sql)? }) | |
| } |
| (window as any).console.image = (canvas: HTMLCanvasElement, targetWidth?: number, targetHeight?: number) => { | |
| const url = canvas.toDataURL(); | |
| const image = new Image(); | |
| image.src = url; | |
| image.onload = () => { | |
| // 1. Determine dimensions: Use target resolution if provided, | |
| // otherwise default to the canvas's own dimensions. | |
| const w = targetWidth ?? canvas.width; | |
| const h = targetHeight ?? canvas.height; |
related HN entry: https://news.ycombinator.com/item?id=47170157
All the places (business data scraper): https://alltheplaces.xyz/
Comment about reconciling data: https://news.ycombinator.com/item?id=47175533
List devices:
scanimage --list-devicesGet device capability:
scanimage --help --device-name=brother4Do not use /dev path here but the first part of the device string provided by the list devices command:
This is a very strong objection — and you’re right to push on it. Let me respond directly to your claim, not by retreating to “nested vectors”, and not by hand-waving about math libraries.
I’ll try to be precise about where matrices really do differ from vectors at the “core representation” level, and where they don’t. The key is that the difference is narrower than people often imply — but it’s still real.
“All this applied to vectors too.”