Setup (and secure) an SSH server on Ubuntu
Install and harden an SSH daemon on Ubuntu by adjusting sshd_config to block root logins, restrict users, and disable password authentication.
Keeping web applications fast
Fast web apps avoid unnecessary database work, oversized assets, and heavy client-side rendering, while measuring bottlenecks before optimizing caches, scripts, images, or page delivery.
How to: Apache logs on a daily basis without logrotate
Daily Apache access log rotation without logrotate uses CustomLog with rotatelogs to create timestamped files and avoid nightly web server restarts.
Capturing signatures on a touch device
Touch-device signature capture for web forms with jQuery Signature Pad, plus server-side PNG generation from the stored stroke data.
Run multiple local webricks at the same time using different ports
Run several local Rails servers at once by assigning each webrick instance a different port.
Use the "retry" keyword to process a piece of Ruby code again.
Ruby can re-run a rescued begin block with retry, useful for temporary failures such as unavailable remote servers; a termination condition prevents infinite loops.
Access the documentation of all locally installed gems
Offline RubyGem documentation becomes available when rubydoc.info is unavailable or slow. gem server provides a local browser for installed gems and generated docs.
When the iPad won't play an MP4 video
iPad playback can fail on valid MP4 files even when H.264 settings are correct; some HTTP servers omit headers iOS expects for streaming.
Disable automatic e-mail checking in Thunderbird 3
Reduce attention-grabbing interruptions by stopping Thunderbird 3 from checking mail automatically at startup, on intervals, or via server IDLE notifications.
Preventing users from uploading malicious content
Uploaded HTML or SVG can execute JavaScript and steal session cookies; safer uploads rely on extension allowlists, strict CSP, attachment disposition, or octet-stream delivery.
Geordi 1.5.1 released
Geordi 1.5.1 adds smarter command handling for test selection, stage lookup, server ports, and LAN access, plus a firefox --setup version check fix.
Why you see a GET "/__identify__" request in Capybara tests
Unexpected GET /__identify__ requests in Capybara test logs come from server readiness checks for Selenium-style drivers; Capybara answers them with middleware when no route exists.
Geocoding Strategies - Google Maps API
Choosing client-side or server-side Google geocoding affects quota usage, especially in cloud hosting where shared IPs can exhaust fixed daily limits.
How to preview an image before uploading it
Live image previews in file upload forms improve user feedback before sending files to the server, using URL.createObjectURL with img tags or Unpoly compilers.
Fix: "undefined method `bytesize' for #<Array>"
WEBrick can mask Rails startup failures with undefined method bytesize for #<Array>, hiding the real cause until logs are checked or another server is used.
Dump your database with dumple
dumple creates a database dump from a project directory on local machines or application servers, including deployment-time use.
Speed up Capistrano deployments using a remote cached copy of repository
Capistrano deployments can be much faster by reusing a cached repository copy on the server instead of cloning from the git host each time.
RestClient sends XML Accept header by default
REST Client adds application/xml to simple GET requests, which can trigger unexpected server responses. :accept => :html requests the default text/html content type instead.
How to set up SMTP email delivery with a Gmail account
Rails applications can send mail through Gmail’s SMTP server with smtp_settings; Google app passwords enable delivery when two-factor authentication is enabled.
How to: Client-side language detection
Client-side language detection can route visitors to their preferred locale on the root path without a server-side component, with JavaScript and a meta refresh fallback.
List keys stored in memcached / Amazon AWS ElastiCache server
Memcached keys can be enumerated by querying slab statistics and dumping cached items, including AWS ElastiCache instances exposed on port 11211.
Terminator: do not broadcast to other windows
Broadcasted input in Terminator can reach other running windows and create dangerous side effects. Disabling the DBus server keeps Alt+a broadcasting local to the current terminal.
How to install a specific version of RubyGems (and how to downgrade)
Install a chosen RubyGems release for consistent behavior across servers; gem update --system can target an exact version and even downgrade.
PostgreSQL: Importing dumps created with newer versions
Loading a pg_dump file can fail with unsupported dump format versions when pg_restore is older than the dump creator. Installing a newer PostgreSQL client and connecting through localhost resolves the mismatch.