Chronological feed of everything captured from Guillermo Rauch.
youtube / rauchg / Oct 6
This content explores the journey of a tech founder, from early programming experiences in Argentina to establishing a successful company in the US. It delves into critical decisions like prioritizing entrepreneurial pursuits over traditional education, the unique advantages of immigrant founders, and evolving philosophies on talent acquisition. The discussion further examines product development, the integration of AI, and the future of open versus closed systems, offering a comprehensive look at the challenges and opportunities within the rapidly changing tech industry.
entrepreneurshipsoftware-engineeringventure-capitalai-product-strategystartup-growthuser-experience
“Traditional educational paths can be justifiably forgone for entrepreneurial opportunities, especially when early financial contributions to family are a factor.”
youtube / rauchg / Aug 30
Vercel, a web infrastructure company, is strategically integrating AI to enhance front-end development and dynamic web applications. They are focusing on simplifying AI adoption for developers through an SDK and leveraging edge functions for improved performance in AI-powered streaming content. Vercel anticipates a shift towards AI-native companies and products that rethink existing problems with AI as a core input, rather than merely adding AI to current solutions.
vercel-platformai-sdksfrontend-developmentdeveloper-toolsweb-architecturemonoreposllm-security
“Vercel aims to democratize AI integration for developers, making it easy to incorporate AI into dynamic web applications.”
github_gist / rauchg / Dec 1
This GitHub Gist demonstrates a basic Vercel Edge Middleware setup. It shows how to serve an `index.html` file from a `public/` directory and how to create a simple API endpoint using `@vercel/edge`. The middleware acts as a router, handling requests to a specific API path and allowing other requests to proceed to the next handler.
vercel-deploymentedge-middlewaregithub-gistweb-developmenthtmljavascript
“Vercel deployments can be initiated via `vercel` or `vc` commands, or by linking to GitHub and performing a `git push`.”
github_readme / rauchg / Jan 18
Wordledge is an open-source Wordle implementation designed to educate developers on Next.js and Vercel, particularly highlighting the efficiency of Vercel Edge Functions. The project leverages Edge Functions for its `/check` endpoint, demonstrating automatic global deployment and zero cold boot times. This architecture routes users to the nearest region, optimizing performance and showcasing a key benefit of Vercel's edge computing capabilities.
nextjsvercelwordle-cloneedge-functionsweb-developmentproject-showcase
“Wordledge is an implementation of Wordle.”
github_readme / rauchg / Jun 30
JAMstack E-Commerce Professional is a Gatsby-based starter project designed for rapid deployment of e-commerce sites. It features a configurable inventory provider that can shift from static data to remote APIs, and supports server-side payment processing. The project emphasizes customization of components, pages, and templates, while also providing utilities for image optimization during the build process.
jamstackecommercegatsbytailwind-cssweb-development
“The JAMstack E-Commerce Professional project uses Gatsby and initially relies on static data for inventory.”
github_gist / rauchg / Nov 27
This Gist demonstrates a novel approach to phone number input using an HTML range type input. By manipulating the `oninput` event, the numeric value from the range slider is dynamically formatted into a standard phone number display. This method leverages client-side JavaScript to provide interactive formatting without server-side processing.
web-developmentuser-experiencefrontend-engineeringhtml-javascriptui-design
“An HTML range input can be effectively used to capture and format phone numbers.”
github_gist / rauchg / Jan 14
This code demonstrates crafting and sending raw ICMP echo request packets using Node.js raw-socket and ip modules. It manually constructs an IP packet with fixed header bytes, overwrites source/target IPs via buffer manipulation, randomizes ID, and sets total length dynamically before transmission. The socket is configured for IP_HDRINCL to include the full IP header, enabling loopback pings with response logging every second.
network-programmingicmp-pingraw-socketsnodejspacket-craftinggithub-gist
“The code uses raw-socket to create an ICMP socket with protocol raw.Protocol.ICMP”
github_gist / rauchg / May 16
Node 6 drastically reduces transpilation needs, supporting async/await natively except for modules. Only two Babel plugins—transform-es2015-modules-commonjs and transform-async-to-generator—are required, eliminating babel-runtime dependencies. This revives babel-node for fast development iteration and enables simple production builds with microservices.
node-jsasync-awaites6babelmicroservicesjavascript-development
“Node 6 requires transpilation only for ES6 import/export module syntax”
github_gist / rauchg / Mar 24
Guillermo Rauch proposes using Twitter tweets as hosts for JavaScript modules due to the lack of an edit button, ensuring content immutability. The requireFromTwitter function fetches and executes JS code from a specified tweet ID. Example demonstrates leftPad function usage, with setup requiring Twitter API tokens via npm.
javascripttwitter-apimodulesgithub-gistleftpadweb-developmenthumor
“Twitter serves as a suitable host for JavaScript modules because it lacks an edit button”
github_gist / rauchg / Mar 13
Zeit Now deploys Node.js HTTP services like Express apps to the cloud with a single CLI command, handling dependency installation, package.json start script execution, and port-agnostic server binding. The process requires minimal setup: install now globally via npm, define a "start" script in package.json, and run "now" to receive a unique public URL. Iterative deployments create new URLs without overwriting prior versions, enabling rapid development and sharing.
microservicesnow-deploymentnodejsexpress-jsserverlesscloud-deploymentjavascript-tutorial
“Zeit Now deploys any Node.js HTTP service immediately upon running the 'now' command.”
github_gist / rauchg / Feb 23
Guillermo Rauch selects Babel (formerly 6to5) for ES6 transpilation due to its avoidance of global pollution, source map support, and polyfill neutrality to minimize bundle sizes. He provides workflows for REPL usage via babel-node, pre-compiling source modules to a node/ directory for NPM distribution, enabling ES6 Mocha tests with babel/register, and browserifying client code using babelify. These methods prioritize build-time compilation over runtime to preserve performance, with notes on loose mode for spec compliance tradeoffs.
es6babeltranspilingjavascriptbrowserifymochanpm-build
“Babel was chosen over other transpilers for no global object pollution, source maps support, and not being opinionated about polyfills”
github_gist / rauchg / Oct 29
RealtimeConf 2012 featured talks on realtime web history, insights, and implementations like DISQUS realtime features. Day 1 covered topics from XMPP in browsers to SPDY and Websockets, while Day 2 delved into Node.js observability and Server-Sent Events. Several presentations include linked slide decks for technical deep dives into these protocols and tools.
realtime-conferencewebsocketsserver-sent-eventsnode-jsspdyxmppobservability
“RealtimeConf 2012 occurred over two days with specified talks.”
github_gist / rauchg / Mar 16
Guillermo Rauch's dotjs userscript detects package.json links in GitHub's file tree and fetches their content via PJAX-enabled AJAX for inline display below the tree. Iterative updates adapt to GitHub's evolving DOM and PJAX requirements, shifting selectors from #slider .tree-browser a to table.files td.content a and #files to .file-box. Enhances navigation of Node.js projects by surfacing dependency metadata without leaving the repo overview.
github-userscriptpackage-jsonnodejsjavascriptweb-developmentgithub-pjaxdotjs
“Script uses $('#slider .tree-browser a').filter(function () { return 'package.json' == $(this).text(); }) to detect package.json”
github_gist / rauchg / Mar 3
Spot is a bash wrapper enhancing grep for codebase searches, using find to exclude .git dirs and xargs for parallel processing. It supports case-insensitive search by default, optional line numbers, and custom formatting with ANSI colors in ttys. Options allow toggling sensitivity, colors, and line numbers via CLI flags.
bash-scriptgrep-searchcode-searchfile-searchcommand-line-toolguillermo-rauch
“Spot excludes .git directories from searches”
github_gist / rauchg / Mar 3
Spot is a bash script that enhances grep for project-wide searches, excluding .git directories via find and xargs. It supports case-insensitive search by default, optional line numbers, and ANSI-colored output with cyan-highlighted file paths. Customizable via flags for case sensitivity, colors, line numbers, and directory targeting, it formats results for readability in terminals.
bash-scriptgrep-searchfile-searchcommand-line-toolcode-snippetguillermo-rauch
“Spot excludes all files in .git directories from search results”
github_gist / rauchg / Jan 13
s.js provides a tiny standalone sprintf-like function for JavaScript, supporting only %s for strings and %d for numbers, with %% escaping. It replaces placeholders in a string using sequential arguments via a regex-based replacer. An extend method adds an .s() prototype to String for chained interpolation, e.g., 'http://%s:%d'.s('localhost', 40).
javascriptsprintfstring-formattinggithub-gistguillermo-rauchminimalistic-libraryutility-function
“s.js supports only %s (string) and %d (number) placeholders”
github_gist / rauchg / Jan 10
eq.js provides a tiny function to evaluate mathematical expressions from strings, injecting a vars object and Math namespace via 'with' statements in eval for access to constants like PI and functions like cos, floor. It handles errors by returning NaN and supports direct expressions without vars. The Math object has limited properties (e.g., E, PI, abs, cos), minimizing collision risks in the scoped evaluation.
javascriptequation-evaluatormath-functionsgithub-gistcode-snippetminimalistic-parser
“eq evaluates 'round(test / 2)' with { test: 5 } to return 3”
github_gist / rauchg / Dec 7
This Stylus stylesheet defines a centered promotional banner for Google Chrome Frame, targeting IE users. It styles a message box with header, body text, install button, and close icon, using fixed dimensions and positioned elements for layout. Unquoted background image URLs ensure compatibility with IE7's limitations on data URIs.
css-stylingchrome-frameie7-compatibilityguillermo-rauchgithub-gistweb-developmentsass-stylus
“#wrap .chrome-frame-message-box uses light gray background with centered text and bottom border”
github_gist / rauchg / Sep 22
Provides a jQuery plugin that applies CSS3 keyframe animations via WebKit-specific properties. Supports customizable duration and timing functions, with optional automatic reset of animation styles post-completion. Executes a callback on animation end, enabling chainable declarative animations in early WebKit browsers.
javascriptjquerycss-animationswebkit-animationsgithub-gistfrontend-development
“The plugin sets WebKit CSS animation properties including duration, timing, and name”
github_gist / rauchg / Aug 30
ApacheBench tests with 1000 requests at 100 concurrency show a plain Node.js HTTP server on port 8000 achieving 6423 req/sec. HAProxy proxying to it on port 10000 delivers 4832 req/sec, while Node's http-proxy module on port 9000 manages only 1760 req/sec. All setups exhibit zero failed requests, with Node direct and HAProxy showing sub-40ms max latencies versus 102ms for Node proxy.
node-jshttp-proxyperformance-benchmarkapache-benchload-testinghaproxyguillermo-rauch
“Plain Node.js HTTP server handles 6423.43 requests per second under 1000 requests at 100 concurrency”
github_gist / rauchg / Apr 21
Guillermo Rauch's Makefile target 'mongodb' starts a three-node MongoDB replica set: two full nodes on ports 28017 and 28018, and an arbiter on 28019, all in the 'lbdevset' set. Each instance uses distinct data directories under data/db/node1, node2, and arbiter, with logs in logs/ and PID files in pids/. Nodes run in forked background mode with REST interface enabled on primaries.
mongodbreplica-setmakefiledevopsdatabase-setupguillermo-rauch
“The makefile launches exactly three MongoDB processes”