惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
博客园_首页
宝玉的分享
宝玉的分享
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
T
Tailwind CSS Blog
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客
罗磊的独立博客
F
Fortinet All Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
阮一峰的网络日志
阮一峰的网络日志
I
InfoQ
Simon Willison's Weblog
Simon Willison's Weblog
D
DataBreaches.Net
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Scott Helme
Scott Helme
B
Blog
M
MIT News - Artificial intelligence
K
Kaspersky official blog
H
Help Net Security
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
Engineering at Meta
Engineering at Meta
博客园 - 【当耐特】
L
Lohrmann on Cybersecurity
P
Privacy & Cybersecurity Law Blog
Project Zero
Project Zero
The Hacker News
The Hacker News
B
Blog RSS Feed
T
Tor Project blog

Stonecharioteer on Tech

I Traced My Traffic Through a Home Tailscale Exit Node What Was I Reading Last? In Three Not-So-Easy Pieces Dogfooding Is Hard Code blocks in your books, finally GoForGo v0.9.0 Merrilin - We built an app to read books I use a Macbook now Data Structures & Algorithms - Preparing for Interviews Using a local DNS namespace for local service discovery Direction KOllector - Publishing KOReader Highlights gbt: branches touched in the last 24 hours A Soiree into Symbols in Ruby Some Smalltalk about Ruby Loops Ruby Blocks Returning from Ruby Blocks, Procs and Lambdas My Linux Laptop Finally Works: How Claude Helped Me Fix Years of Annoyances TIL: Watchexec - Modern File Watching for Development Workflows A Less Busy Mind GoForGo - Learn Go through live examples Migrating My Old Blog to Hugo with Claude The Qtile Window Manager: A Python-Powered Tiling Experience Read the RFCs that Built the Internet Py-x-Protobuf - Or How I Learned to Stop Worrying and Love Protocol Buffers Python Reverse a List New Beginnings Leaving ChainSafe Systems Screen Lock for Cinnamon Desktop using Zenity and Terminal Commands Crews Not Teams A System for Getting Better at LeetCode So Far So Rust Retrying HTTP Requests with Rust A Primer on Control Charts Learning Rust Explicit is Better than Implicit: Rust for Pythonistas Using Custom Delimiters in Jinja Templates TIL: Creating Fixed Length Iterables in Python Documentation Without Assumption Vagrant Python - A Reflection in 2022 Learning Golang No, A Virtual Machine Is Not Enough: Why Developers Need Native Linux Empathy in Tech For Those Who Came in Late A Weekend With PostgreSQL TIL: Gooey and Python Fire for Quick GUIs and CLIs TIL: 2ality - Dr. Axel Rauschmayer's JavaScript Blog TIL: MassDNS - High-Performance Bulk DNS Lookups TIL: Matomo Analytics, Google Tech Writing, Memory Programming, and NES TV Signals TIL: MontyDB - MongoDB Implemented in Python Returning to the Craft of Programming TIL: CPUFetch, OneFetch, and Learn CSS TIL: DNS Performance Testing and Pi-hole with Unbound TIL: Eli Bendersky's Blog, Awesome By Example, NoCoDB, and Martin Kleppmann TIL: CRDTs, Extreme HTTP Performance, and BYTEPATH Game TIL: AutoInvent, ASGI, Python Packaging, RAPIDS GPU Computing, and FlaskCon TIL: MangaDesk - Terminal Client for MangaDex TIL: McFly - Smart Shell History Search TIL: Siege Load Testing and Awesome FastAPI Resources TIL: Ventoy Bootable USB and Justniffer Network Analysis TIL: CLI Code Review, Git Split Diffs, and Internal Combustion Engine TIL: Benford's Law, Web Security Headers, Event Sourcing, and Mozilla Security Guidelines How to Write Documentation - The README.md File The Importance of Documentation TIL: NNgroup UX Research, SponsorBlock, and Labella Python Library TIL: The Little Book of Rust Macros and Rust Performance Book TIL: Git-Bug Distributed Issue Tracker and Omni Kubernetes Monitoring TIL: Zellij - Modern Terminal Multiplexer TIL: How Discord Handles 2.5 Million Concurrent Voice Users TIL: Volumio - The Audiophile Music Player TIL: Areopagitica - Milton's Defense of Free Speech TIL: Fast Node Manager, Zoxide Smart CD, Technical Writing, PyO3, and Qubes OS TIL: Slurm Workload Manager for HPC Clusters TIL: Data Visualization Guide and Oso Authorization Academy TIL: CORS Deep Dive, Piku Tiny PaaS, Rust Strings, and Deno Standard Library TIL: Raspberry Pi OS Development, Vim Beginner Guide, Password Management, and QueryBook TIL: uBlock Origin Performance Optimization on Firefox TIL: Breaking PostgreSQL at Scale and LeetCode Problem Patterns TIL: Awesome Tmux Resources for Terminal Multiplexing TIL: Grit - A Multitree-Based Personal Task Manager TIL: Lens 4.2 Kubernetes IDE, Shell Scripting Guide, and Dark HTTP Server Do The Job You Hate So You Won't Hate The Job You Love TIL: Innernet VPN Solution and NoteCalc Calculator App TIL: Argo CD for GitOps and Lens Kubernetes IDE TIL: Modern Rust CLI Tools - System Monitoring, HTTP Requests, and DNS TIL: tz - A Time Zone Helper Tool TIL: Distributed Systems Education, Fallacies, and Self-Hosted Internet Archiving TIL: Real-Time Voice Cloning Technology TIL: ChartMuseum for Helm, AMD's Corporate Journey, and Kubernetes Pod Scaling TIL: Docker and Kubernetes Tools - Whaler, Descheduler, and Dive TIL: Post-Mortem Collection, Terminal Plotting, and Technical Twitter TIL: Dark Mode Toggle Web Component by Google Chrome Labs TIL: Python eval(), exec(), and compile() Functions TIL: Camelot PDF Tables, PostgreSQL Row Level Security, Zerodha Varsity, and Write Yourself a Git TIL: fuser Command for Process and File Investigation TIL: i Hate Regex - The Ultimate Regex Cheat Sheet TIL: Dolt - Git for Data and Database Version Control TIL: Comprehensive Distributed Systems Reading List TIL: Cosmopolitan C Library, Distributed Systems Book, High Performance Browser Networking, and Rust Roguelike Tutorial TIL: ABlog for Sphinx - Documentation as a Blog Platform
TIL: x86 Assembly Programming and SafeEyes Break Reminder
2021-03-03 · via Stonecharioteer on Tech

x86 Assembly Programming Fundamentals

A fundamental introduction to x86 assembly programming

Comprehensive introduction to low-level programming with x86 assembly:

Why Learn Assembly:

  • System Understanding: How computers work at the lowest level
  • Performance Optimization: Critical code optimization techniques
  • Debugging Skills: Better understanding of compiled code behavior
  • Security Research: Reverse engineering and vulnerability analysis
  • Embedded Systems: Direct hardware programming capabilities

x86 Architecture Basics:

Registers:

; General-purpose registers (32-bit)
EAX - Accumulator (arithmetic operations)
EBX - Base (memory addressing)
ECX - Counter (loop operations)
EDX - Data (I/O operations)

; Pointer and index registers
ESP - Stack Pointer
EBP - Base Pointer (stack frame)
ESI - Source Index (string operations)
EDI - Destination Index (string operations)

Memory Addressing:

; Direct addressing
mov eax, [0x1000]      ; Load from memory address

; Register indirect
mov eax, [ebx]         ; Load from address in EBX

; Base + displacement
mov eax, [ebx + 4]     ; Load from EBX + 4

; Index scaling
mov eax, [ebx + ecx*2] ; Array access with scaling

Basic Instructions:

Data Movement:

; Move operations
mov eax, 42          ; Load immediate value
mov ebx, eax         ; Copy register to register
mov [0x1000], eax    ; Store to memory

; Stack operations
push eax             ; Push EAX onto stack
pop ebx              ; Pop top of stack into EBX

Arithmetic Operations:

; Basic arithmetic
add eax, ebx         ; EAX = EAX + EBX
sub eax, 10          ; EAX = EAX - 10
mul ebx              ; EAX = EAX * EBX (unsigned)
div ecx              ; EAX = EAX / ECX, EDX = remainder

Control Flow:

; Comparisons and jumps
cmp eax, ebx         ; Compare EAX and EBX
je equal_label       ; Jump if equal
jne not_equal        ; Jump if not equal
jg greater_than      ; Jump if greater
jl less_than         ; Jump if less

; Unconditional jump
jmp some_label       ; Always jump

Programming Patterns:

Function Calls:

; Function prologue
push ebp             ; Save old base pointer
mov ebp, esp         ; Set up new stack frame

; Function epilogue
mov esp, ebp         ; Restore stack pointer
pop ebp              ; Restore base pointer
ret                  ; Return to caller

Loop Structures:

; Simple loop
mov ecx, 10          ; Loop counter
loop_start:
    ; Loop body here
    dec ecx          ; Decrement counter
    jnz loop_start   ; Jump if not zero

System Integration:

  • System Calls: Interface with operating system services
  • Interrupts: Handle hardware and software interrupts
  • Memory Management: Direct memory allocation and manipulation
  • I/O Operations: Hardware communication and device control

SafeEyes - Eye Strain Prevention

GitHub - slgobinath/SafeEyes - Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder

Essential tool for developers spending long hours at computers:

The Problem:

  • Computer Vision Syndrome: Eye strain from prolonged screen use
  • Reduced Blinking: Screens cause reduced blink rate leading to dry eyes
  • Blue Light Exposure: High-energy light affects sleep patterns
  • Poor Posture: Extended screen time leads to neck and back problems

SafeEyes Solution:

Break Reminders:

  • Short Breaks: 20-second breaks every 20 minutes (20-20-20 rule)
  • Long Breaks: 5-15 minute breaks every hour
  • Customizable: Adjust timing based on your needs
  • Smart Scheduling: Postpone breaks during presentations or calls

Eye Exercises:

  • Focus Exercises: Look at distant objects to relax eye muscles
  • Blinking Reminders: Conscious blinking to moisten eyes
  • Eye Movement: Exercises to reduce eye muscle tension
  • Guided Instructions: Step-by-step exercise guidance

Features:

Cross-Platform:

  • Linux: Native support with various desktop environments
  • Windows: Full functionality on Windows systems
  • macOS: Basic support for Mac users
  • Consistent Experience: Similar features across platforms

Customization:

1
2
3
4
5
6
7
# Example configuration
{
    "short_break_duration": 20,
    "short_break_interval": 1200,  # 20 minutes
    "long_break_duration": 300,    # 5 minutes
    "long_break_interval": 3600    # 1 hour
}

Smart Features:

  • Fullscreen Detection: Pause during movies or presentations
  • Idle Detection: Don’t show breaks when away from computer
  • Notification System: Gentle reminders without interruption
  • Statistics: Track break compliance and eye health habits

Health Benefits:

Eye Health:

  • Reduced Strain: Regular breaks prevent eye fatigue
  • Better Focus: Improved concentration after breaks
  • Moisture Maintenance: Blinking exercises prevent dry eyes
  • Distance Vision: Looking at distant objects relaxes eye muscles

Overall Wellness:

  • Posture Breaks: Encourages movement and stretching
  • Mental Breaks: Reduces cognitive load and stress
  • Sleep Quality: Reduced blue light exposure before bedtime
  • Productivity: Counter-intuitive but breaks improve overall output

Plugin System:

  • Extensible Architecture: Custom plugins for specific needs
  • Exercise Plugins: Add new types of eye exercises
  • Notification Plugins: Custom reminder methods
  • Integration: Connect with other health and productivity apps

Installation and Setup:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Ubuntu/Debian
sudo apt install safeeyes

# Fedora
sudo dnf install safeeyes

# Arch Linux
sudo pacman -S safeeyes

# Or install from source
pip install safeeyes

Both resources address fundamental aspects of a developer’s work - understanding how computers work at the deepest level and maintaining health during long coding sessions.