Jérôme Belleman
Home  •  Tools  •  Posts  •  Talks  •  Travels  •  Graphics  •  About Me

All Posts by Year

A yearly breakdown of posts on various topics, most of which related to day-to-day computing and productivity: you'll find here documentation, guides and ideas.

This is an exhaustive list of the 140 posts in this website.

2020

The Point in Inkscape Symbols
12 Jan 2020
Inkscape supports symbol libraries, offering easy access to commonly-used objects. This post describes what they are, how to use them and create custom ones.

The Eevee Blender Render Engine and Anisotropy
4 Jan 2020
The Eevee render engine doesn't currently support the Anisotropic node, but there is a way to simulate it with a simple node setup. Here's a summary.

2019

Stopping a System with SSH Clients from Sleeping
23 Dec 2019
All it used to take was write a simple script in /etc/pm/sleep.d/ and have it exit non-zero if there were SSH clients. Things are now different with systemd.

A Simpler Introduction to Sudoers Files
25 May 2019
Despite editing simple sudoers files for over 15 years, I still don't get the basics, each time resorting to ready-to-use examples. Time to change that.

Randomisation in Blender
1 Apr 2019
An overview of the random ways Blender makes it possible to randomly randomise random things, randomly ranging from colours, to materials, to transforms.

Testing command-line tools with shelltestrunner
30 Mar 2019
A short getting-started guide to shelltestrunner, which lets you test command-line tools given a stdin, expecting a stdout and stderr, and an exit status.

2018

The Unixian's Guide to Windows
28 Oct 2018
A few hints for users coming from the UNIX world to find their bearings when they get to work on Windows systems, maybe even to almost feel right at home.

Remotely Executing Processes from Files
21 Sep 2018
A rather absurd approach I implemented to remotely, non-interactively control a computer with a file-based interface. Absurd, yes, but it does work wonders.

Bluetooth and Linux
17 Aug 2018
Behind this mundane title, some notes as I was finding my bearings attempting to use Bluetooth devices when not using a conventional desktop environment.

Apologies to systemd
5 Aug 2018
I want to apologise for not having given systemd a chance before. Like many, I found it an unnecessary change. But the moment I started using it, I loved it.

Microsoft Exchange, Shared Calendars and Linux
22 Jul 2018
Nowadays, Linux users can comfortably dwell in the world of Microsoft Exchange, from mails to calendars, from graphical groupware suites to APIs in Python.

A Filesystem-Based Address Book
15 Jun 2018
I had the project of writing an address book program. Rather than storing the data in a database or even in a single file, I left it all to the filesystem.

Xfce Custom Actions
1 Jun 2018
I'm not one for graphical interfaces, never mind complex ones like Xfce. But I have to admit Xfce did make me fall in love with the idea of custom actions.

Spell Checking with an Autocommand in Vim
15 May 2018
After decades of using Vim, I still need to get back to basics: today, how options have a scope and the consequences when enabling them from autocommands.

Querying Mail from the Command Line
16 Apr 2018
If mutt is great for many mail-related operations, being an interactive tool makes it clumsy for some of them. For instance, how do you list all the senders?

Pouring Data into the Dolibarr ERP
24 Mar 2018
Just a word of praise for Dolibarr, whose authors had the good idea of keeping the programming interface transparent, which comes in handy for importing data.

EOS in Ubuntu
17 Feb 2018
EOS – which nowadays stands for “EOS Open Storage” – is primarily deployed in Red Hat-like distributions. How to set up an EOS client in a Debian-based one?

The Blunt Idea of Patching Code with Ex
12 Feb 2018
Patching code with the patch command or the more elaborate quilt tool is common to make small changes to software before packaging it. And how about Ex?

Raw Photo Editors in a Techie's Workflow
28 Jan 2018
A review of raw photo editors by somebody who doesn't know much about photos, for somebody who doesn't know much about photos, but does know their UNIX.

Word Completion with Zsh
23 Jan 2018
Like many other modern shells, Zsh offers completions of all kinds and flavours. One particularly handy one is word completion, explained in this post.

What Benefits of Working with Raw Photos?
20 Jan 2018
Photographers swear by the raw format as opposed to JPEG, especially for post-processing. Are there really technical benefits or is this just plain pedantry?

Recording the Sounds of your Computer
13 Jan 2018
I'd often like to record discussions from conference calls, but the conference software won't allow it. How about recording the sound your system makes?

2017

Towards Automatically Backing Up Mails with Mutt
16 Dec 2017
Even though mutt is an interactive mailer, it comes with facilities to perform operations in batch. I've cooked up here an example to back up mailboxes.

Duplicate Files and How to Deal With Them
12 Nov 2017
Juggling with many files, we all accidentally end up with duplicates, causing wasted space and a lot of confusion. Luckily, there's ways to deal with it.

Maps with MAPS.ME, Google Maps and Other Tools
28 Oct 2017
How to manage maps which you sometimes edit on your smartphone, sometimes in Google Maps, and which you'd like to edit with even more powerful tools still?

Effective Ways to Compile LaTeX Files
18 Oct 2017
As I was hurriedly typing a live report of the HEPiX Fall 2017 workshop, I reflected upon the different ways to compile LaTeX documents as you go along.

Some sort of comparison of sort and :sort
10 Sep 2017
The UNIX sort command is part of any DevOps' toolkit. Vim has its own :sort command, but its behaviour is in some ways radically different – for the better.

Comparing Files, Directories over Space and Time
3 Sep 2017
How to compare files in batch or interactively? Here are a few nifty tips and tricks to make the most of tools such as diff, vimdiff and git difftool.

Thinking Outside the Mailbox
19 Aug 2017
Using mutt to refer to mail messages from outside the mailer, saving them to files and working with them with other programs, following the UNIX spirit.

Auditing for Security and Debugging
4 Aug 2017
I thought that all I'd ever use the Linux Audit system for would be security. More recently, I also chose it to find out where some file corruptions came from.

Inkscape: Avoiding Transforms Moving Objects
23 Jul 2017
Object positions can be read from the XML that Inkscape writes. They can be subject to transforms, harder to understand. Here's how to make sense out of this.

Rotating Images for the Web with GraphicsMagick
22 Jul 2017
GraphicsMagick is great for massively processing photos. Rotating them using Exif whether they're landscapes or portraits is a common application for the Web.

Naming Paths in Code
16 Jul 2017
An attempt at a proposal to come up with conventions to clearly describe different parts of file paths during software development, avoiding namespace clashes.

XeTeX and Fonts
12 Jul 2017
What I particularly like about XeTeX is how using common TrueType and OpenType fonts is made easy. I'm describing in this post how I usually do so in Linux.

Printer Options with CUPS
8 May 2017
Regular users can set printer options without any privileges, and do so on the fly with arguments passed to lp or configuration files in their home directory.

Trying a Command Until It Works
6 May 2017
Some commands only need time before they eventually succeed. As part of your workflows, it can be useful to know when that happens, e.g. to trigger actions.

Mutt, the Address Book and Completion
4 May 2017
I was astounded to see how easy it was to add some clever completion for my address book contacts to my mail composer. And guess what: all thanks to Vim.

Juggling Gmail with Mutt
4 May 2017
The IMAP service offered by Gmail isn't conventional and you're in for a few surprises if you don't understand what it does with your mail behind the scenes.

Accessing Photos over PTP/MTP like a Filesystem
11 Apr 2017
A review of the ways we've got today on Linux to access photos from a camera or a phone like files on a filesystem, many of which involve using FUSE.

Power-Grepping with Vim
5 Feb 2017
grep is an essential command in the standard UNIX toolkit. Vim brings it to the next level making it more interactive and applicable to a variety of contexts.

2016

Visual Selection à la Vim with Zsh
13 Nov 2016
Those Z shell – zsh – nifty tricks that change your productivity life. Who would have thought, for instance, that zsh offers visual selection à la Vim?

Beyond Substitutions with Vim
9 Oct 2016
Regular expressions make the Vim :substitute command remarkably powerful. It comes with nifty and unexpected tricks making it essential in any user toolkit.

Adding a Printer from the Command Line
4 Sep 2016
The CUPS web tool does a good job of managing printers, even for someone who dislikes GUIs. But then there's all these cases when some automation is in order.

Three Ways to Make DEB Packages
17 Aug 2016
Three different approaches to making DEB packages: the official one with debhelper, the simple one with dpkg-deb and the brutal one with CheckInstall.

Vim: Macros, Substitutions, the Global Command
5 Jun 2016
It's natural to think "substitutions" and "regular expressions" to repeat the same change. There's an even more natural way: recording typed characters.

A Random Selection of Inkscape Tricks
20 Mar 2016
Inkscape is one of these vector graphics editors which were designed with enough flexibility in mind to let you do anything you need provided some creativity.

Working with Inkscape and XML in SVG Files
19 Mar 2016
The beauty of SVG lies in the fact it's structured in XML that's rather easy to work with. The beauty of Inkscape lies in the fact that it keeps it this way.

Using Paths with Inkscape
12 Mar 2016
A good Inkscape tool is the Pen. It lets you draw Bézier curves and straight lines. Understanding node types is everything. This post gives you a feel for it.

2015

A Selection of Vim Options
17 Nov 2015
A selection of Vim options that I like to use all the time and make my life so much easier when I go programming, writing prose or manipulating data.

CERN, European Organisation for Nuclear Research
19 Jul 2015
CERN, European Organisation for Nuclear Research, the world's largest particle physics lab, cradle of the World Wide Web, at the forefront of technology.

Editing PDFs
14 Jun 2015
Two ways of editing existing PDF documents: one with LaTeX for automation's sake, another one with Inkscape for visualisation's sake. This post describes how.

Databases vs. Plain Text Files
14 Jun 2015
Are databases the answer to everything? When is it more convenient to use plain text files? And which are the scenarios in which they are just safer?

URxvt Perl Extensions
13 Jun 2015
URxvt Perl extensions open a world of possibilities with your terminal, and bring unique features to an already remarkably powerful terminal emulator program.

Easy RPMs with setup.py
7 Jun 2015
Building RPMs is a business made easy and flexible with Python's Distutils, and it allows to package any files at all, not just Python scripts and modules.

Multitasking and Keeping Track of Tasks
31 May 2015
This is about the art of starting many tasks and keeping track of their progress and completion with on-the-fly notifications, with no special software.

Mac Python Applications and Exceptions
23 May 2015
When wrapping up Python applications to graphically run in Mac OS X, one problem is that informative exception messages are lost. Here's a way to log them.

Monitoring
20 May 2015
A history of monitoring developments, tools and ideas, embracing the CERN Batch Service use case, challenging for the large scale of the cluster and user base.

Rescuing Photos from iPhoto
2 May 2015
iPhoto is one of these programs which, allegedly for the sake of ease, lies about how your photos are organised in your computer. It only confuses us all.

Python, Subprocess, GPG and Standard Input
25 Apr 2015
A discussion around having the gpg command tell the passphrase from data when both are expected to be supplied on stdin, and ways to achieve this in Python.

Batch and Grid Services at CERN
7 Apr 2015
The CERN Batch Service: its role to fulfil physicists' needs, its workings inside the worldwide computing grid, its challenges to process the massive LHC data.

Principles Around Writing Beamer Themes
1 Mar 2015
Using Beamer for making slides is comfortable if you stick to the many themes it comes with. Things become trickier if you want to write themes of your own.

2014

Writing Man Pages with Pandoc
24 Dec 2014
Pandoc offers a very effective and comfortable way to write UNIX manual pages with, for instance, Markdown, which is much more affordable than using groff.

Mutt at CERN
16 Nov 2014
Installing, setting up and using mutt at CERN, as a regular user on interactive login services, and enabling those features which make e-mail terrific.

Kdumps to a Remote Server
13 Oct 2014
Sending crash dumps to a remote server instead of keeping them locally seems like a good idea when panicking nodes can't even write to their filesystems.

Pandoc Markdown Tricks
13 Sep 2014
A selection of syntactic Markdown tricks and advices to get the most out of Pandoc's implementation, which currently has to be the most powerful there is.

LSF Exit Codes
22 Aug 2014
Jobs run by Platform LSF return exit codes, much like UNIX processes do. Things become confusing when you have to make do with both UNIX and LSF exit codes.

Clipping with GIMP
3 Aug 2014
Raster image graphics editors are traditionally used for the purpose of cutting objects off an image. GIMP offers tools to clip images. Here's a few recipes.

Using HTML in ServiceNow Fields
2 Aug 2014
Using HTML to write messages to our users in ServiceNow tickets isn't easy. I was glad to discover it does remain possible. A welcome feature for IT business.

Using gpg-agent as a password manager
5 Jul 2014
Trouble is with password managers, there's so many of them to choose from. An approach I like for its simplicity, is to build up one based on gpg-agent.

Working with Hundreds of Windows
4 Jun 2014
Working with hundreds of windows in your windowing system, without losing track of them, never stopping work, keeping it all nicely organised and comfortable.

XDM: a Simple and Versatile Display Manager
4 Jun 2014
A few notes about xdm – the venerable X display manager – so that we may not forget about how beautifully simple, fast, lightweight, yet versatile it is.

A Blunt Way to Configure NTP on Linux
23 Mar 2014
A really quick note about setting up an NTP client on Linux. I realised there are two main approaches, one which I found blunt at first but learned to like.

Parallel Shells and Transfers
22 Mar 2014
PSSH isn't just about running SSH in parallel. It's also about performing parallel transfers with various tools. I was sold by this versatile toolkit.

That Jungle of Sound Systems
15 Feb 2014
All those different Linux sound systems always leave me with a sense of awe for all their complex interactions. I once tried to see the forest for the trees.

Inkscape Extension Development
1 Feb 2014
If Inkscape comes bundled with many extensions, there will always be repetitive actions specific to your style of work and which you may be able to automate.

Ways to Resize Images with GraphicsMagick
26 Jan 2014
It's confusing how many ways there are to scale images with GraphicsMagick. I've listed and compared the various options to find which one is best in practice.

GraphicsMagick: from PDF to an Antialiased Image
25 Jan 2014
An operation that editors like GIMP are naturally good at. However, GraphicsMagick won't smooth curves or text by default. Here's a way to get the same effect.

2013

Python, Subprocesses, Pipes and Doubts
24 Dec 2013
An expression of the doubts and fears I experienced when I once tried to implement pipes between processes in Python, and a proposal for another approach.

Clipping with Inkscape
15 Dec 2013
Clipping is the art of cutting an object off an image, typically to paste it into another one. Turns out vector graphics are convenient for this purpose too.

Python Shell Command Lines and External Editors
9 Dec 2013
This post describes a way to add the capability to interpreters you implement with the cmd Python module to edit command lines with custom external editors.

Thread Safety with PySide
13 Oct 2013
PySide is a nice Python wrapper for Qt which hides some internal aspects of it. For instance, thread safety: what's safe when it comes to signals and slots?

Interrupting Python Threads
7 Oct 2013
I'm mulling things over as to how best to interrupt threads with Python using a KeyboardInterrupt and what effectively happens to them whenever you do.

Web Scrapers in Python with Qt and WebKit
25 Sep 2013
It's interesting to see how Qt turns out to be the easiest approach to wield the power of WebKit, even if it's without building a graphical user interface.

FvwmButtons
21 Sep 2013
FvwmButtons is probably the best tool there is to design a toolbar for fvwm. Much better than FvwmTaskBar. This post describes a few useful examples.

Tiling Window Managers: Saving Window Positions
22 Jun 2013
Some stacking window managers restore the position of windows for some applications when they are restarted. What does this mean with tiling window managers?

Sound Applets for Notion
16 Jun 2013
Notion comes with a nice status bar where you can have text be displayed as well as system trays with applets. This post describes picking a good sound applet.

Notification Sinks in Notion
9 Jun 2013
I devised a simple mechanism with this window manager to non-intrusively open notifications. One of these delightfully useful things Notion makes easy.

A TWiki setup with lighttpd
6 Apr 2013
How to set up a local TWiki with lighttpd? Recipes covering the lighttpd configuration, the TWiki setup, security aspects and some general nifty TWiki tricks.

Focus the Right Frame with Pentadactyl
17 Mar 2013
In the spirit of Vim, beyond giving your browser good key bindings, Pentadactyl lets you reprogram the web if needs be. For instance, focusing the right frame.

JavaScript Tricks for Pentadactyl
9 Feb 2013
As I wrote plugins for Pentadactyl, I learned about by practice about some JavaScript tricks which are specific to this overwhelmingly good Firefox add-on.

Pentadactyl
2 Feb 2013
This post is an introduction to using Pentadactyl, which has to be the most tremendous Firefox add-on in the whole history of Firefox and add-ons combined.

OpenTSDB: a Time Series Database
12 Jan 2013
My first introduction to NoSQL was with time-series databases. It began with OpenTSDB, a simple yet versatile solution I used to monitor the CERN Batch System.

2012

Scanning Films with the Plustek OpticFilm 7400
29 Dec 2012
I once scanned thousands of films with a Plustek OpticFilm 7400. Here are impressions, tests and some practical advice on how to do so as quickly as possible.

Writing Text Adventure Games
22 Dec 2012
How to write games such as Colossal Cave Adventure – also known as Adventure – or the Zork series? There are several frameworks helping you write your own.

IBM Platform LSF Debugging Techniques
4 Dec 2012
IBM Platform LSF is a very sophisticated batch scheduler. Here are a few ideas I collected from intensive debugging sessions with our setup at CERN.

Tuning IBM Platform LSF for Performance
28 Nov 2012
The Platform LSF batch system comes with a wealth of parameters to get the best performance out of it. Here are a few which had an impact in our setup at CERN.

Getting Started with Binary Formats
11 Sep 2012
When I first started writing C# programs which I wanted to deploy, I stumbled upon a concept that I never had to think about before. That of binary formats.

Stacking and Tiling Window Managers Terminology
8 Sep 2012
This post compares what we normally refer to as stacking and tiling window managers. And among tiling window managers, what makes them manual or dynamic.

Window Managers: Configuration Notes for Notion
5 Aug 2012
The holy grail of window managers, offering that level of configuration I'd always been seeking. Here are tips that were useful as I went along setting it up.

Who Needs a Display Manager?
29 Jul 2012
When display managers get so large and complicated that they become slow, spend a lot of memory and turn buggy, you start wondering if you need one at all.

Django with CERN Web Services
31 May 2012
Is it at all possible to set up Django for an AFS web site with CERN Web Services? Yes it is. The next question – how? – is what this posts aims at answering.

dwm: beauty in simplicity with a window manager
20 May 2012
The spirit of dwm is to make its C source simple enough that configuring it means altogether modifying it. Here's some notes of what you can do and how.

GVFS for Accessing Files Over Any Protocol
19 May 2012
The GNOME Virtual Filesystem lets you access files with Nautilus over many protocols as if on a filesystem. How pleased I was when I found it comes with a CLI.

A Comparison of Window Managers: i3 and xmonad
8 Jan 2012
Dynamic tiling window managers – constrained to layouts – don't suit me as I crave for more freedom in arranging them live. I gave i3 a whirl after xmonad.

The Philips P|3435 Hard Disk Drive
4 Jan 2012
Involved in the heartbreaking job of dismantling a venerable Philips P|3435 hard disk drive, we couldn't do so without studying and documenting its workings.

2011

Layouts available for xmonad
3 Dec 2011
The xmonad tiling window manager is so-called dynamic as it manages window placement with layouts. Here's a small list of common ones to help you choose from.

Inotify on Distributed Filesystems
20 Oct 2011
If inotify is a great way to track changes on a filesystem, it can be treacherous on distributed ones if you don't understand some aspects of their workings.

Caps Lock as a Mod Key
23 Jul 2011
A mod key modifies the behaviour of other keys. When you use window managers which are mostly controlled via the keyboard, choosing yours is everything.

Encrypted filesystems, loop devices, cryptsetup
5 Mar 2011
The GNU Privacy Guard is a common tool for encrypting files. An alternative approach for encrypting file hierarchies involves encrypting entire filesystems.

2010

AFS Console
14 Sep 2010
AFS Console, a monitoring system for AFS which reports the health status of the service and statistics, from global summary views to more detailed reports.

Remind: Sophisticated Calendar and Alarm Program
7 Aug 2010
I'm sharing here a few configuration and integration notes to describe how I'm using the Remind calendar program, along with its Wyrd user interface.

Spell Checking in Vim and working with Languages
17 Jul 2010
Vim is ready to handle any language – and I do mean any. It comes with a sensational spell checker. It's also great at writing any character from any alphabet.

2009

Spelling, LaTeX and Accents
31 Dec 2009
There are different tools for checking your spelling that support LaTeX and won't trip on its funny syntax. But they have different limitations with accents.

Writing MySQL Storage Engines
27 Dec 2009
InnoDB and MyISAM are the two most common storage engines available by default for MySQL. I was stunned to discover how easy it is to write custom ones too.

Controlling Line Breaks with LaTeX
23 Dec 2009
This post is but a small overview of how you can control – ward off, really – undesirable line breaks which may be either caused by spaces or hyphens.

Drawing a Biologist's Looping Arrow with TikZ
11 Nov 2009
These arrows label something on a diagram and they make a loop to avoid being mistaken for e.g. a vector. TikZ offers the coil decoration which is used here.

How to Misuse Xpdf for More Interactivity?
26 Sep 2009
Xpdf can use hyperlinks in PDF files to open web pages, as they are meant to be used. For good or bad, there are tricks to make Xpdf open anything else too.

Writing LaTeX Classes
24 Sep 2009
LaTeX may look like dark magic. LaTeX classes even more so. In fact, it's straightforward and becomes instrumental when you write several similar documents.

A Few ImageMagick C Examples
9 Aug 2009
The ImageMagick suite offers CLIs to work with images of many formats. It also comes with an API for several languages. Here's what it looks like for C.

Dismantling and Cleaning a Dell Inspiron 51xx
11 Jul 2009
This post describes how to take apart and clean up the dust off Dell Inspiron 51xx series laptops, resulting in considerably helping their cooling system.

How to Read and Write MySQL Blobs
5 Jul 2009
While we're normally tempted to only store textual data into databases, it can come in handy to also store binary data. This is what MySQL refers to as blobs.

Huge Resolutions and Video Timings
12 Apr 2009
Some old X.Org versions aren't good at telling optimal resolutions when these are higher than usual. Some uncommon parameters such as timing must then be set.

Watching Standard Input for Data in C
15 Feb 2009
This post describes a recipe written in C around the select() function to wait for data on stdin, eventually timing out if it takes too long to arrive.

Examples of Using the id3lib and mp4v2 Libraries
29 Jan 2009
If the id3lib developers provided solid documentation for their library, your may have a harder time getting started with mp4v2. Here's examples for both.

2008

A Debian Package Management API: libapt
21 Dec 2008
I had a hard time finding my way to writing tools based on libapt. Amusingly, what got me started was to use Graphviz to work out header dependencies.

Working with PNGs with libpng
4 Oct 2008
I get to work with the PNG format all the time. I was very pleased when I discovered the libpng C library makes it easy to programmatically work with it too.

Displaying Text with OpenGL
17 Aug 2008
If OpenGL offers means to display text, the business of showing fonts really only becomes satisfyingly powerful when you use FreeType to render it as texture.

Encrypted Filesystems, Loop Devices, Cryptoloop
7 Aug 2008
A long time user of GnuPG, I was interested to learn about Cryptoloop, which offers full filesystem encryption, making it easier to edit secrets in place.

Pragmatic Database Design
3 Aug 2008
On my quest to properly design database schemas, I enjoyed reading Elmasri and Navathe's Fundamentals of Database Systems, which offer pragmatic approaches.

pmount: mounting any devices as a normal user
27 Apr 2008
There are tools which are such a revelation, they change your life. It's certainly the case of pmount which I now use everyday and still surprises me at times.

Building the Atmel NGW Development Kit
15 Mar 2008
Building and setting up the development environment for this embedded network gateway isn't that straightforward. Here are a few notes of how it's done.

2007

Downloading in Parallel with Curl
24 Aug 2007
If you land on a server that has no download tools supporting simultaneous connections, you can still achieve the same with multiple curls and byte ranges.

AIS Monitor
29 Jul 2007
AIS Monitor, Business Activity Monitoring for the many administrative information services run at CERN, with means to correlate statuses from dependencies.

2006

A Discussion of C and C++ Code Syntax Styles
16 Jun 2006
It may be a good idea to choose a code syntax style when learning a new programming language. Here's an overview of what style C and C++ authors follow.

Number-Up Printing with CUPS
16 Apr 2006
The art of printing several pages on a single sheet of paper, and to do so getting it right the first time rather than spending pages working it out.

2005

Command-Line Key Bindings
20 Nov 2005
Productivity shoots up the moment you understand that key bindings are the way to get stuff done. Even more so when you find most programs share the same ones.

Typesetting online manuals with groff
9 Oct 2005
groff is a document formatting system relying on a typesetting concept named roff. It offers extensions and macros to typeset the traditional man page format.

The Point in C Pointers
4 Sep 2005
If you're learning C and pointers scare you, either because you don't understand them or don't understand their purpose, this pragmatic note may help you.

2004

Ways to Having Text Wrap Pictures with LaTeX
14 Oct 2004
While it is more common to use floats with LaTeX, it is possible to place a picture – or anything else, in fact – next to text that will elegantly wrap it up.

The Jungle of LaTeX Math Packages
17 Jul 2004
You may have felt lost in the sea of LaTeX packages related to AMS – American Mathematical Society. Which ones do you need? How do they include each other?