mirror of
https://github.com/mblanke/ThreatHunt.git
synced 2026-03-01 05:50:21 -05:00
- NetworkMap: hunt-scoped force-directed graph with click-to-inspect popover - NetworkMap: zoom/pan (wheel, drag, buttons), viewport transform - NetworkMap: clickable IP/Host/Domain/URL legend chips to filter node types - NetworkMap: brighter colors, 20% smaller nodes - DatasetViewer: IOC columns highlighted with colored headers + cell tinting - AUPScanner: hunt dropdown replacing dataset checkboxes, auto-select all - Rename 'Social Media (Personal)' theme to 'Social Media' with DB migration - Fix /api/hunts timeout: Dataset.rows lazy='noload' (was selectin cascade) - Add OS column mapping to normalizer - Full backend services, DB models, alembic migrations, new routes - New components: Dashboard, HuntManager, FileUpload, NetworkMap, etc. - Docker Compose deployment with nginx reverse proxy
21 lines
892 B
Markdown
21 lines
892 B
Markdown
# Algorithms & Performance
|
|
|
|
Use this skill when performance matters (large inputs, hot paths, or repeated calls).
|
|
|
|
## Checklist
|
|
- Identify the **state** you're recomputing.
|
|
- Add **memoization / caching** when the same subproblem repeats.
|
|
- Prefer **linear scans** + caches over nested loops when possible.
|
|
- If you can write it as a **recurrence**, you can test it.
|
|
|
|
## Practical heuristics
|
|
- Measure first when possible (timing + input sizes).
|
|
- Optimize the biggest wins: avoid repeated I/O, repeated parsing, repeated network calls.
|
|
- Keep caches bounded (size/TTL) and invalidate safely.
|
|
- Choose data structures intentionally: dict/set for membership, heap for top-k, deque for queues.
|
|
|
|
## Review notes (for PRs)
|
|
- Call out accidental O(n²) patterns.
|
|
- Suggest table/DP or memoization when repeated work is obvious.
|
|
- Add tests that cover base cases + typical cases + worst-case size.
|