Categories
Command Line Scripting Tutorial

Batch Convert Images to PDF from Command Line

A friend asked me for a way to batch-convert images into PDFs. Instead of using online converters, here's a command-line solution using ImageMagick that works on both Mac and Linux. It converts all images in a folder to individual PDFs and optionally merges them into one file.

Categories
Tinkering Tutorial WordPress

Enable WordPress Author-Info Box on Single-Author Blogs

WordPress has a built-in author-info box that displays your bio, avatar, and website at the end of posts. By default, it only appears on multi-author blogs. Here’s how to enable it on single-author blogs without plugins.

Categories
Customization Emacs Tutorial

MELPA for Emacs – Access Thousands of Packages

If you're using Emacs 24 and haven't configured MELPA yet, you're missing out on thousands of community-maintained packages. MELPA (Milkypostman's Emacs Lisp Package Archive) is the largest and most active Emacs package repository, offering bleeding-edge packages that are updated daily from their source repositories.

What is MELPA?

Categories
Bash Customization MAC Tutorial

Tmux with Native Scrollback on macOS

Tmux is a powerful terminal multiplexer that lets you run multiple terminal sessions within a single window. However, when using tmux with macOS Terminal.app, you’ll encounter two common frustrations: colors don’t display properly, and you can’t use your terminal’s native scroll functionality. Instead, tmux captures scrolling and requires you to enter “copy mode” just to view previous output.

The Problem

Categories
Bash Customization MAC Tutorial

Share Shell History Across Multiple Terminal Sessions

If you work with multiple terminal tabs or windows—especially in iTerm or Terminal.app—you've probably noticed that each session maintains its own isolated command history. This becomes frustrating when you run a command in one tab and want to recall it in another. By default, bash only saves history when a session closes, and each session can overwrite the others' history.

The Problem

Categories
Arduino Hardware Programming Tutorial

Accessing Virtual Hosts with Arduino Ethernet Shield

If you've worked with the Arduino Ethernet Shield, you've probably noticed a limitation: while you can connect to an IP address, you can only reach the default virtual host on that server. This becomes a problem when working with shared hosting or VPS servers that host multiple websites on a single IP address.

The Problem

Modern web servers commonly use virtual hosting to serve multiple websites from a single IP address. When you make a basic HTTP request to an IP, the server returns the default site—not necessarily the one you want. On commercial shared hosting, you typically can't make your site the default host.

Categories
Customization Programming Ruby Tutorial

IRB Console with History and Logging

I spend most of my time working with IRB (Interactive Ruby) or Rails console. Over time, I've settled on a configuration that provides essential features like persistent command history, autocompletion, and Rails-specific logging. These improvements make the Ruby REPL much more productive for daily development work.

What is IRB?

IRB (Interactive Ruby) is Ruby's built-in REPL (Read-Eval-Print Loop) – an interactive shell for experimenting with Ruby code. It's invaluable for testing code snippets, debugging, and exploring APIs. When working with Rails, the Rails console is essentially IRB with your application's environment loaded.

Categories
MAC Tutorial

Let the Mac Sleep

When you step away from your Mac, knowing the right keyboard shortcuts can save time, conserve energy, and extend your battery life. After spending considerable time researching, I discovered these essential shortcuts that every Mac user should know.

The Two Types of Sleep

Your Mac offers two different sleep options, each suited for different situations:

Put Mac to Sleep Immediately

Cmd + Opt + Eject

Categories
Emacs Programming Technology Tutorial

Power Programming with Tags

Source tagging is a powerful source code navigation system that rivals modern IDEs. If you're using Emacs, Vim, or TextMate, you can use ctags for fast code navigation. Here are the steps to set it up.

Step 1: Install ctags

For Mac:

$ sudo port install ctags

Step 2: Create a Tag File

Navigate to your project and generate tags:

Categories
GNOME Linux Tutorial

How to Restore GNOME Default Panels

If you use GNOME on Ubuntu or other Linux distributions, you've probably encountered panel problems. Maybe you accidentally deleted a panel while right-clicking, removed an applet you can't figure out how to restore, or woke up to find your panels mysteriously scrambled. Don't worry—these issues are fixable.

What Are GNOME Panels?

GNOME panels are the bars at the top and bottom of your desktop (by default) that contain your application menu, system tray, window list, and various applets. They're central to the GNOME desktop experience, so when they break, your desktop becomes difficult to use.