Developer of Vidrio, the future of presentation. Other topics include C, UNIX, and networking.
2018-08-17: Marketing works!
2017-08-17: Adding Open Graph meta tags to vidr.io
2017-08-16: How do Reddit thumbnails work?
2017-08-15: Greater-than is redundant
2017-08-14: Promoting Vidrio
2017-08-13: Distributing a MacOS .dmg
2017-08-12: Building a .dmg to distribute MacOS apps
2017-08-11: How do peer-to-peer programs discover each other?
2017-08-05: Signing in with Google, from scratch
2017-08-02: A short malloc/free
2017-08-01: Observing system calls with dtruss
2017-07-30: Cut out the CA middleman
2017-07-29: concurrent fwrites are not atomic
2017-06-25: Pattern jokes via WordNet/NLTK
2017-06-06: Long calendar
2017-06-04: Defining the sine function as an oscillator
2017-05-19: Granddad died today
2017-05-07: Don’t trust cat!
2017-05-06: Reimplementing clear
2017-05-02: Core Image kernel CLI program
2017-04-30: CIKernel with multiple inputs
2017-04-29: Hello world webcam application in Swift on macOS
2017-04-28: What are samples in a Core Image kernel?
2017-04-27: Custom CIFilter in Swift
2017-04-26: Applying a CIFilter to an image in Swift
2017-04-23: TensorFlow hello world
2017-04-22: Simplest neural network: a neuron
2017-04-21: What is a .app?
2017-04-20: Running Swift from the CLI
2017-04-19: OpenCL hello world on macOS
2017-04-18: A TCP chat server in 55 lines of Golang
2017-04-17: What company information is public? What’s on Companies House?
2017-04-16: What is a business? What is a company?
2017-04-15: Creating a public-key infrastructure from scratch
2017-04-14: Elliptic curve crypto with OpenSSL
2017-04-13: Vidrio gets real product keys
2017-04-12: Vidrio payment server: creating charges
2017-04-11: Vidrio payment server
2017-04-10: Playing with Stripe
2017-04-09: Product key server as a service
2017-04-08: Implementing a ‘free trial’ for macOS apps
2017-04-07: Multiplexing by looping over nonblocking sockets
2017-04-06: rxi/vec - a simple C vector library
2017-04-05: How do I set a socket to be non-blocking?
2017-04-04: Mobile web page device width
2017-04-03: Running go tool trace
go tool trace
2017-04-02: Sequencing markets
2017-04-01: Monthly review: 2017-03
2017-03-31: Vidrio promo video: first cut
2017-03-30: Replay with sound
2017-03-29: Mobile video prevent autoplay
2017-03-28: Varying navbar for mobile and desktop
2017-03-27: How to use keycastr
2017-03-26: Vidrio promo music
2017-03-25: Study of framer.com promo video
2017-03-24: Your password is the private key. So what is the public key?
2017-03-23: Getting your point across with spaced repetition
2017-03-22: How do I do public-key signatures with openssl?
2017-03-21: How do I do public-key encryption with openssl?
2017-03-20: How is MainMenu.xib found?
2017-03-19: What is NSApplication? How is it instantiated? What is NSApp?
2017-03-18: What is Swift’s @NSApplicationMain annotation?
2017-03-17: How to make a Cocoa application without a .xib file
2017-03-16: Vidrio 1.2 is released
2017-03-15: Vidrio marketing strategy
2017-03-14: Don’t say ‘it will take five minutes’
2017-03-13: How do I create a message digest using openssl?
2017-03-12: How do I hash a password with openssl?
2017-03-11: How do I fetch a server’s SSL certificate using openssl?
2017-03-10: How do I generate random bytes with openssl?
2017-03-09: How do I encrypt text with openssl?
2017-03-08: Vidrio is Tony Stark’s presentation tool
2017-03-07: Vidrio is on Slack
2017-03-06: Vidrio needs the touch bar
2017-03-05: Vidrio for Windows
2017-03-05: Vidrio 1.1 is released
2017-03-04: Vidrio installs per day
2017-03-04: Vidrio bug: pause toggle text wrong after unpausing by setting to default opacity
2017-03-04: Vidrio: better screenshots on the App Store
2017-03-03: Adding a developer account to XCode
2017-03-02: Vidrio turns the webcam off when not showing it
2017-03-02: Vidrio should have a pause/unpause feature
2017-03-02: Vidrio opacity slider
2017-03-02: Vidrio is available!
2017-03-02: Vidrio app description
2017-03-02: Submitting an app build to iTunes Connect
2017-03-01: How do I create the AppIcon for my app?
2017-03-01: Vidrio website
2017-03-01: Vidrio gets a menu bar
2017-03-01: Vidrio App Record
2017-03-01: Justifying posts
2017-03-01: Monthly review: 2017-02
2017-03-01: Installing and running ebe
2017-03-01: Apple Store release process
2017-02-28: Writing a TCP server with the pthread API
2017-02-27: What are the domain and type arguments to the socket system call?
2017-02-26: What is UTF-8?
2017-02-25: Writing a TCP server using the fork syscall
2017-02-25: Going paperless
2017-02-24: What is mode_t in C?
2017-02-23: How do I print bits in C?
2017-02-22: What is ssize_t in C?
2017-02-22: Don’t use the word ‘simply’
2017-02-21: What is a a FIFO, or “named pipe”? What is mkfifo in C?
2017-02-20: macOS assembly hello world
2017-02-20: What is lsof?
2017-02-19: Generating Intel and AT&T assembly with clang
2017-02-18: What are setjmp and longjmp in C?
2017-02-17: How do I call a program in C, setting up standard pipes?
2017-02-16: How do I close a file descriptor in C?
2017-02-15: How do I duplicate a file descriptor in C?
2017-02-14: UNIX as a SQL database
2017-02-13: French preposition examples
2017-02-12: What are Lamport timestamps?
2017-02-11: Are processes and messages different?
2017-02-10: What is the happened-before relation?
2017-02-09: How to wake up earlier
2017-02-08: Waking up earlier
2017-02-08: How does GeoDNS work?
2017-02-07: How do I call a program from C?
2017-02-06: How do I use fork in C?
2017-02-05: How do I use execve in C?
2017-02-04: FOSDEM: The Challenges and Secrets of the Realtime World
2017-02-04: WebRTC - low barrier to entry, low barrier to exit?
2017-02-04: What are the stages of C compilation?
2017-02-03: How do I generate assembly from a C file?
2017-02-02: How do I access environment variables in C?
2017-02-01: Monthly review: 2017-01
2017-01-31: macOS system calls
2017-01-30: How do I read man pages?
2017-01-30: Cloning Spaceteam
2017-01-29: In what ways can processes communicate?
2017-01-28: Writing a file with mmap
2017-01-27: Reading a file with mmap in C
2017-01-26: What is mmap in C?
2017-01-25: What is Coulomb’s law?
2017-01-24: Quickly checking for a zero byte in C using bitwise operations
2017-01-24: Binary subtraction
2017-01-23: What is the type of a constant in C?
2017-01-22: C constants vs. literals
2017-01-21: What are lvalue and rvalue in C?
2017-01-20: What is the UINT64_C macro in C?
2017-01-19: What is electric current?
2017-01-18: What is electric charge?
2017-01-17: How does reliability work in RTCDataChannel?
2017-01-16: A hello world serverless WebRTC app
2017-01-15: What is STUN?
2017-01-14: How do C signals interact with the stack?
2017-01-13: What is sigaction in C?
2017-01-12: Doing something n times in C with while and decrement
2017-01-11: How do I unregister a signal handler in C?
2017-01-10: What does the C signal function return?
2017-01-09: What are ‘signals’ in C?
2017-01-08: How does differential signaling work in USB?
2017-01-07: How does the USB power wire work?
2017-01-06: What is the Ivy Lee method?
2017-01-05: Error URLs (addressable errors)
2017-01-04: What are ‘bitfields’ in C?
2017-01-03: What is a union in C?
2017-01-02: How do I pack bits in C? (An answer using masks)
2017-01-01: How fast does an IP packet travel?
2016-12-31: What do DNS datagrams look like?
2016-12-30: What are ‘statement expressions’ in GCC?
2016-12-28: Pointer to middle of allocation, part 1
2016-12-27: How do I put an array in a struct in C?
2016-12-26: How do I measure program execution time in C? (Answer: the times function)
2016-12-25: Array literals in C with explicit indexes
2016-12-24: What is perror in C?
2016-12-23: What are ‘protocol numbers’ in IP?
2016-12-22: How do I print bytes in C?
2016-12-21: What is htons in C?
2016-12-20: Writing a ‘hello world’ HTTP server in C
2016-12-19: What syscalls does a UDP server need?
2016-12-18: Writing a TCP server with the kqueue API
2016-12-17: What is fdset in C?
2016-12-16: Writing a TCP server with the select syscall
2016-12-15: “File descriptor” is a misnomer
2016-12-14: What syscalls does a TCP server need?
2016-12-13: What is errno in C?
2016-12-12: What are static functions in C?
2016-12-10: How to do wraparound (modulo) with a bitmask in C
2016-12-09: What are ‘macro functions’ in C?
2016-12-08: What is ‘array decaying’ in C?
2016-12-07: What are automatic variables (dollar variables) in a Makefile?
2016-12-06: What is a ‘binary-safe’ string?
2016-12-05: How do I set the C compiler in a Makefile?
2016-12-04: What is FILE in C?
2016-12-03: What does the restrict keyword mean in C?
2016-12-02: What does const mean in C?
2016-12-01: Does C have booleans?
2016-12-01: What is realloc in C?
2016-11-30: Where is the C programming language defined?
2016-11-30: Does C allow pointer arithmetic?
2016-11-30: How do I write a multi-line string literal in C?
2016-11-30: Can I put comments in string literals in C?
2016-11-30: What do array subscripts mean in C? (Answer: add then dereference)
2016-11-29: How do I find out which preprocessor my C compiler uses?
2016-11-29: What is size_t for? How do I iterate over an object in C?
2016-11-29: What type should I use to count objects in C?
2016-11-28: What is static in C?
2016-11-27: What is void in C?
2016-11-27: What does void mean as a function parameter in C?
2016-11-27: What is K&R style function definition in C?
2016-11-27: What are ‘calling conventions’ in C?
2016-11-27: Bike front derailleur
2016-11-25: Don’t use the word ‘it’
2016-11-24: A C typedef convention for complex types
2016-11-24: How is the stack laid out in C?
2016-11-23: How do varargs work in C?
2016-11-22: Some screenshots of Vidrio
2016-11-21: How does a stream cipher work?
2016-11-20: A comparison of Huel, Joylent, et cetera
2016-11-19: Some notes on symmetric cryptography
2016-11-18: How do I change the resolution on macOS?
2016-11-17: What is an .xcworkspace file?
2016-11-17: What is an .xcodeproj file?
2016-11-17: How do I write a UDP server in Go?
2016-11-17: How do I replace target/action with callbacks in Swift?
2016-11-17: Summary of ‘Zero to One’, Chapter 1: the challenge of the future
2016-11-16: Learning vim (a short adventure)
2016-11-16: How do I serialize JSON in Swift?
2016-11-16: Post every day
2016-11-16: A summary of ‘On-the-Fly Garbage Collection: An Exercise in Cooperation’
2016-11-15: 128 byte of CSS is enough
2016-11-11: How does tricolor garbage collection work?
I wrote this because I felt like it.
This post is my own, and not associated with my employer.