Literal copying of GPL code into ZFS on Linux 
… not a derivative of the linux kernel. This is important, because if zfsonlinux is a derivative…
… be a derivative work of linux: First, and the option that many commenters have concentrated on,…
DragonBoard™ 410c with rt-preempt failure 
Hide non-linux titles in humble bundle sales 
… the Humble Bundle consistently offered Linux versions of almost everything in their bundles. Those days are…
… find out whether it's on Linux. But with this userscript (tested only on firefox with greasemonkey),…
Better pasting for irssi in X 
While it's otherwise an excellent irc client, I've been frustrated by pasting in irssi. There are two main problems:
Samsung ARM Chromebook: the portable I've always wanted 
… Crouton, I get a full Linux desktop which also runs remote apps tolerably well thanks to…
How do you check a signature on a PGP/Mime message 
Mosh automatic cleanup of dead sessions 
… piling up on my main linux box anymore.…
Ctrl-digit to switch to tab on Linux Firefox 
Since I switch between Linux Firefox, Windows Firefox, and Chrome, it would be nice if I…
… out to be to make Linux Firefox understand Ctrl-<digit> for tab switching. So here's my first…
Got A Chromebook 
… power Full compatibility with desktop Linux or x86 I felt it would be nice to have…
… battery life Ability to install Linux or customized ChromiumOS if I decided I needed it Inexpensive…
pnacl vs Debian Jessie 
First few weeks on Digital Ocean 
Benchmarking ungeli on real data 
… geli-encrypted zfs filesystems on a Linux laptop, I had to get a USB enclosure that supports…
… read my backups on either Linux or (k)FreeBSD.…
Changing hosting providers 
mailpie moves to github 
Decrypting geli volumes with portable software 
… able to read backups on Linux I read a lot of freebsd source code and now…
… a geli-encrypted zfs volume on Linux using zfs-on-linux: # ./ungeli -j geli-passfile npool.img /dev/nbd0 & #…
SNTP from Python: getting server's esimate of time quality 
TCP connections to X server 
report-if-fail, replace-if-success 
Callcentric "click 2 dial" commandline client 
I investigated using Callcentric to replace my POTS telephone. (I later abandoned my attempt to port my existing POTS number to Callcentric but still plan to use them for international outcalling) I wrote a Python commandline client for their "click 2 dial" service.
GNU 30th—Celebrating 30 years 
repitch: adjust audio by semitones during replay 
Dropping Amazon Prime... 
… broken Amazon Instant Videos on Linux, Android, and XMBC. I have no time for this kind…
More new hardware: Lenovo Thinkpad T530 
… past the design stage? Software: Linux I plan to spend most of my time running 64-bit…
… enabled in BIOS, which caused Linux to use the Intel video. Basic OpenGL programs (i.e., glxgears)…
GPG Key 
I've been spending some time working on Debian stuff, particularly packaging and porting for Debian kFreeBSD. Some time in the future I might wish to become a Debian Maintainer, and a step along the way is to begin using a GPG key. To that end, here's the fingerprint of my key, which is also uploaded to sks-keyservers.net:
Adventures in localization 
When a linuxcnc developer reported testsuite failures, a fellow developer discovered that our tests don't run right in non-English locales—in particular, locales like de_DE where the decimal separator is "," instead of ".". But I'm not here to talk about how to fix the testsuite. Instead, get a load of this behavior inside a bash that was started with LC_ALL=C: $ printf "%f\n" 1.23 1.230000 $ LC_ALL=de_DE.UTF-8 printf "%f\n" 1.23 1.230000 $ env LC_ALL=de_DE.UTF-8 printf "%f\n" 1.23 1,230000
Online Anagrammer with AJAX 
At the office, we frequently do a scrambled word puzzle from the newspaper. Occasionally I overlook the answer for minutes at a time. In the past I've used various websites or programs to find solutions to these problems, but now I've written my own very fast one from scratch. It includes commandline and web interfaces (including ajax for lightning-fast updates). You can try it or get the source.
Screen-scrape ting device usage 
… mechanize. I developed it on Linux, so it may not work on other platforms without tweaking.…
OpenID Delegation is easy! 
Android "Birds of Australia" unpacker 
… running Android 4.2.1 and a Linux system running Debian "Squeeze". If you don't know what it…
… with 'adb pull on the Linux side: $ adb pull /sdcard/ausbirds.s3db $ adb pull /sdcard/712.edf Now…
lvm + snapshots + uuid = assbitten 
FTL (un)packer for Linux 
… a game which runs on Linux (and also on Mac and Windows). I noticed that there…
… these comments pertain to the Linux version of the game; I don't know whether they apply…
Connectbot patches for Nexus 7 + Bluetooth Keyboard 
Fitler: munge long headers for display in mutt 
Ingrid often interacts with people who don't know how to bcc; in mutt this is particularly irritating because you have to page past all the recipients. If you're afflicted by this, consider trying my little program "fitler".
Fun with iBird on android 
(M)(L)Ah yes, the Least Gaga's hatching call. I can't resist tinkering! So, here are some observations about the iBird application on android (besides that it is awesome and if you watch birds and have a compatible device you should buy it like Ingrid did; I think there's even a version for the apple phone and tablet). If things like 'run adb at the commandline' sounds like gibberish to you, don't bother asking for instructions.
Friendlier unicode entry in rxvt-unicode 
The script in action I recently was hanging out on #rxvt-unicode where a fellow user mentioned that entering unicodes via the shift+ctrl+
StippleGen 2—Stippler, turned friendly 
… build with current versions of Linux without modification. That's why I'm gratified to see StippleGen 2,…
A use for log1p 
The ANSI C math library includes a few curious functions such as log1p, which is duly copied (or wrapped) in other languages like Python. The programmer without a background in numerics may wonder why such a function is necessary or useful. Here is a real world example in calculating the likelihood of a random collision in a Birthday Attack.
dusub: Subtract two 'du'-style listings 
Life is a constant war against the limited size of backup media. Here is my next weapon in the fight: dusub. Save a du listing today, then find out tomorrow or next week what's been growing: dusub olddu newdu or du … | dusub olddu Positive numbers in the output represent an item that grew since olddu; negative numbers represent a decrease in size since olddu. Version 2 knows about "du -h"-style listings. dusub is useful with sorttop: du … | dusub olddu | sorttop Files currently attached to this page: dusub-v2.py2.4kBdusub.py1.4kB
Every once in a while, ssh is too slow 
Half-maximize script for Linux 
A number of times, I've said that I like the Windows 7 feature that allows a window to easily be half-maximized. I got tired of waiting for it to be added to my favorite window manager, so I wrote a script that uses the program wmctrl to half-maximize windows, then bound it to key presses in my window manager. Now, with a press of ctrl+alt+Traceback (most recent call last): File "/home/jepler/emergent.unpythonic.net/index.cgi", line 766, in markup text = getattr(this_module, 'markup_'+command)(text, meta, **thing_context) AttributeError: 'module' object has no attribute 'markup_qwer' , I can half-maximize a window into 4 locations on my dual-monitor setup.
Every once in a while, Python is too slow 
… was said to run on Linux. It does work, but I was stunned at how long…
sorttop: show the biggest values as a program runs 
When I am looking for big disk users, I don't care about all the little items. What would be great is to continuously see the biggest items encountered so far. To this end, I've written a Python program I call 'sorttop'; it continually reads stdin, sorts the first column according to magic (i.e., human numbers like from "du -h" work as expected), and shows the top items read so far. Example usage: du -hx / | python sorttop.py Update, Feb 20, 2012: Revised the script to work for more terminals; fixes a traceback on the line 'bol = curses.tparm(ti_hpa, 0)' when TERM=screen. Files currently attached to this page: sorttop.py3.3kB
20+ years of computers 
During some downtime, I made a list of all the computers I could remember owning. The list is surprisingly long, and goes back to 1992 (before which I had a Commodore 64 but that barely counts, does it?) I came up with 10 desktops and 7 laptops, or a new machine nearly every year. The last 5 years have only seen 3 new machines, though, so the pace at which I buy computers may be slowing.
Transfer of contacts from LG Remarq to Debian GNU/Linux 
The device would pair with Linux, but would not appear when "transfer contacts" was invoked. The…
It's gratifying when the compiler is right 
I've been playing with clang because I'd like to use its static analyzer on the code at $DAY_JOB. Unfortunately, it frequently bombs while building our code. Fortunately, many of the bombs are due to our bugs, not theirs. Here's one example:
Need another reminder to steer clear of non-Free software? 
It's played out over and over again on proprietary platforms: the vendor decides that this or that component should be deleted from user machines, and as if by magic it happens, without regard to the fact that user systems will encounter reduced functionality as a result. Well, through its "Partner" archive, Ubuntu is in the unenviable position of doing the same thing.
Source: USB Stacker for EOS Cameras 
Here are the changes necessary in the aether blog to enable filesystem-based caching:
WWVB clock progress 
… as a native binary on Linux, and then (presumably) run on the Arduino with the same…
Enabling caching of my blog... 
Linux RAID Misdetection (and fix) 
… as the RAID5 LVM. Unfortunately, Linux (Ubuntu 10.04.3) would no longer boot properly with this setup.…
… a number of good reasons, Linux mdadm puts the "raid superblock" at the end of the…
wwvbpy: WWVB timecode generator in python 
Mandelbulber fractals 
(M)(L)Floater After the video a few weeks ago, I've continued playing with mandelbulber. Here are a number of images I particularly liked.
srtrename: rename subtitle files to match video files 
urxvt: on-the-fly font changing 
Deep in the mists of time, rxvt had "use smaller font" and "use bigger font" keystrokes. Now, instead of that facility, it has escape codes to set the font. It's possible to bind these to keys, as documented in urxvt(1) under CHANGING FONTS. But it's also possible to do it from a program.
Custom compose sequences in X 
In modern gnome-based Linux distributions, it's quite easy to enable a compose key through the Keyboard…
Debian? Sounds good to me! 
… instead of Ubuntu for future Linux installations. Ubuntu is not Free I understand that Ubuntu has…
hostmot2-firmware 0.6 released 
The main improvement since 0.5 is a new experimental xml format for describing bit files. There are no functional changes in the firmwares since 0.5. Packages for Ubuntu Hardy are on the linuxcnc.org package server. The files attached to this page may be useful to people using other OS distributions.
hostmot2-firmware 0.5 
I'm pleased to announce the next release of the hostmot2 firmware packages. These packages are compatible with emc 2.3.5 and above, and will be the standard firmware packages for emc 2.4.
RELEASED: emc 2.3.5 
hostmot2-firmware 0.4 
The files on this page are experimental hostmot2 firmwares for the development version of emc2. For more information, see my post and followup. Update, 20100123: New 0.3 version works on 3x20, has debian packages.
Installing Ubuntu 9.10 on TA790GX XE + AMD Athlon II X2 245 Regor 
… kernel taint". Short answer: boot Linux with 'nomce' and/or install a BIOS update. Read on for…
Arduino Random Number Generator 
… add random bytes to the linux /dev/random entropy pool (rd). These programs are written in Python…
RELEASED: emc 2.3.4 
I'm pleased to announce the next bugfix release in the emc 2.3 series, emc 2.3.4. A number of problems with the last release have been fixed. The new packages are now available for Ubuntu 8.04 "Hardy Heron" in the package repositories. Packages for Ubuntu 6.06 "Dapper Drake" should follow within the next few days. If you have already installed an earlier 2.3.x version of emc, this will be offered as an update.
CropGUI 0.1.1: now with gtk 
Gtk version of cropgui Earlier this year, I released a program for lossless cropping of jpeg images. This week, based on feedback from Ingrid, I ported the program to gtk (it originally used tkinter).
RELEASED: emc 2.3.2 
I'm pleased to announce a new bugfix release in the emc 2.3 series, emc 2.3.2. A number of problems in the 2.3.1 release were fixed. See below for a list.
Remebering values between runs of emc 
This is a userspace hal component which stores values to disk so that it can be preserved from run to run. Usage loadusr -W remember v1 v2 f:floatv u:unsignedv
qq: quick & dirty terminal 
New hardware 
… to run OK even though linux wouldn't boot), and the hard drive worked in an external…
DAT-160 USB tape drive on Linux 
… lot of information online about Linux compatability, but I took the plunge and bought Quantum's CD160UH-SST,…
RELEASED: emc 2.3.0 
I'm pleased to announce the first stable release of the 2.3 series, emc 2.3.0. This version has many new features compared to emc 2.2.8. The new packages are now available in the package repositories. Because this version is incompatible with emc 2.2.8 in several minor ways, it will not automatically be installed as an upgrade. For more information and installation/upgrade instructions, please see http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UpdatingTo2.3
Netflix 'Watch Instantly' problems 
… benefit from some polish. No Linux support .. in fact, Microsoft Silverlight is now a requirement…
Beta release: emc 2.3.0beta2 
I'm pleased to announce the second beta release of the emc 2.3, emc 2.3.0beta2. The new packages are now available for Ubuntu 8.04 "Hardy Heron". This is a beta release, and should not be installed on production systems. For more information and installation/upgrade instructions, please see http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UpdatingTo2.3
Show recent e-mail in screen title bar or status bar 
… form definbox: Logwatch for lamp (Linux) (8 minutes ago). This is useful as a backtick substitution…
cropgui: A Linux GUI for Lossless JPEG Cropping 
… but I didn't find a Linux one. So I wrote one! It's pretty basic, but it…
Canon Digital Rebel XSi (450D) on Linux Ubuntu Hardy 8.04 
Smart gnumakefiles are smart 
Userspace driver for resistive "pen tablet" of XO-1 laptop 
XO-1 screen simulation 
olpcgui.py in action I failed to resist the new G1G1 program and ordered myself an XO-1 today. As a lot of geeks are, I'm intrigued by the screen. Updated: sped up the simulation a bit with a pyrex module.
Autoreprogram for DFU devices 
Xilprg: Zoltan Csizmadia's xilinx jtag programmer 
… parallel cable, without requiring proprietary linux kernel modules. Apparently it also works with the digilentinc USB…
Cairo-based waveform demo 
Uptime bragging 
The sump.org digital logic analyzer 
(M)(L)Triggering on a glitch (unexpected low time) on channel 5 Ever since Steve Padnos let me borrow his commercial logic analyzer at CNC Workshop, I've been wishing I had one. Several years ago, fenn alerted me to minila, which consists of GPL hardware and software, but there don't seem to (presently) be any pre-built boards available for purchase, and I don't relish soldering surface-mount parts. Then I stumbled on this FPGA Based Logic Analyzer. It's works on the still-available, $100 "S3BOARD", and the FPGA firmware is GPL. (It also has somewhat more memory than minila, and can also go up to 200MHz. On the other hand, it doesn't have a mode like minila's "state analysis", and it transfers over slow RS232 serial instead of EPP). I got the board today, and have some initial experiences to report.
How to tunnel vmware over ssh 
wiifuse + net 
I modified wiifuse to work over the wireless network. unfortunately, for me it crashes very shortly after starting. Update: after fixing two memory leaks (one in wiifuse-server, one in libogc), it works for minutes at a time. Update2: New feature in version net3: if you don't specify an identity with -i, the one on the disc inserted in your wii is used (no need to extract the tmd/tik/cert first).
Call graph from powerpc elf file with debug symbols 
hiff: hashing diff 
This is an idea that floated around in my head long ago, and I took the time to write it. I doubt it's of practical use to anybody.
mailpie: updated to version 0.2 
New Laptop 
turd: Tape Usage of Real Disk 
Collate this! 
Making a YouTube video of X program 
Instructions for recording any X program into a video suitable for upload to youtube
Breezy Apt Repository / Deb Mirror 
fuzzbuzz in terrible ways 
Reading about interview questions is always a geektrap, calling for writing the program in the fastest (if it's a question of speed) or most perverse (if it's not) way possible. I feel I've risen to the challenge on this occasion, with several stomach-turning programs. Files currently attached to this page: fb.Makefile408 bytesfb.bash267 bytesfb.c1.2kBfb.cc535 bytesfb.m4171 bytesfb.py297 bytesfb2.py167 bytesExplanations of each file are below the fold...
Pluto_Servo has landed 
Pluto-Servo: EMC2 Servo Controller 
Note, 6/2014: I do not recommend choosing pluto hardware for any new projects. Pluto_servo is an emc2 driver and associated firmware that allow the Pluto-P board to be used to control a servo-based CNC machine. The Pluto-P is an inexpensive ($60) FPGA board featuring the ACEX1K chip from Altera. Pluto_servo will be released under the terms of the GNU General Public License version 2. The pluto_servo system is suitable for control of a 4-axis CNC mill, a 3-axis mill with PWM spindle control, a lathe with spindle encoder, etc.
Do not buy: PCI-8255 
Pluto_servo progress: It's running cradek's lathe! 
Note, 6/2014: I do not recommend choosing pluto hardware for any new projects. Chris is "successfully" running his lathe with a firmware. I used the scare quotes because there have been a few problems, not all of which have been resolved. But he reports that he was able to get better tuning, quieter moves, and of course higher resolution without the /16 quadrature divider.
More on the pluto-p (including FPGA pin numbers for the "JTAG" connector 
There are a lot of questions about the pluto-p that are left unanswered by the website and the "getting started" document to which you're given a link to after you order. I've tried to answer them for myself, and now I'm sharing those answers with my readers. The most important thing I report here is the ACEX pin numbers for the JTAG connector.
Software Uploader for Pluto-P board 
… does have no-cost software for Linux. If I ever make my own FPGA design, that would…
The Bayer sensor vs the Foveon sensor (part 2 of 2) 
(M)(L)cactus In this part of the article, I present the images and compare the results to my predictions.
The Bayer sensor vs the Foveon sensor (part 1 of 2) 
Using synthetic images, I have subjectively compared the effective resolution of a Bayer and a Foveon sensor with the same number of photosites.
Tired of missing OpenGL manpages on Ubuntu 
Off to CNC-Workshop 
So I had a memory leak... 
Linux on Compaq v2000-series laptop 
Shutting down bald... 
Linux on iDEQ 220k 
The continuing laptop saga 
Or "I was wrong that it was a hardware problem"
speaking of busts... 
… rebooted (as directed) and chose Linux at the bootloader screen. And the trackpad worked just fine!…
… it made a difference in Linux that I had upgraded the driver in Windows---Firmware update which…
Serendipitous optimization 
An implementation choice in stippler turned out to give near-optimal output for the milling machine
Searching Aether with swish-e 
Here's some code to make the search form on your aether blog use the powerful full-text indexer swish-e
Plugging an old project 
Another project I did over the winter was the CNC etch-a-sketch
Much better results 
It's in a frame! 
OK, so there are still some problems left. But this is exciting anyway.
popen2(), a C function for bidirectional communication with a child process 
… is for POSIX systems like Linux. It won't work on Windows. Files currently attached to this…
Installing Ubuntu 6.06 and Fedora Core 4 on a HP/Compaq Presario V2000 PT165AV laptop [compaq_v2000]
Dell D830 and 64-bit Ubuntu Linux 8.04 [dell-d830]
… documentation, including service manual Debian Linux Install on Dell Latitude D830 Ubuntu forums thread on bluetooth…
… D680 / D830 - Gentoo Linux Wiki LaptopTestingTeam/DellLatitudeD830 - Ubuntu Wiki High frequency of load/unload cycles…
Ubuntu Linux on AMD X2 and GIGABYTE GA-M51GM-S2G [gigabyte_ga-m51gm-s2g]
… compatibility of this hardware with Linux, and in particular Ubuntu 6.06 LTS. I've called the new…
mailpie 0.1: full-text search of large e-mail archives [software/01209229437]
As seen in hell.... 
l2h: A new converter from LyX to HTML (updated) [software/01191763220]
The internet is littered with abandonded converters from Latex or LyX to HTML, so why not add one more?
Skencil output converter for emc2 [software/01153065922]
I've written a g-code output filter for the Python vector drawing program Skencil, formerly known as "Sketch".
Post-Fest Post 
I had a lot of fun at fest/cnc workshop, met in person a lot of the people I'd met online, and got to see some machinery I'd never run into in my regular life.
Biostar iDEQ 220k and Fedora Core 4 [ideq]
… machine to replace two older Linux machines, including shell accounts, e-mail, cvs, web, and firewall. The…
… when it comes to running Linux, Unix, RedHat or Fedora Core on it. Summary Virtually everthing…
Onscreen Crosshairs in tcl/tk [software/01146347893]
I was staring too long at a screenshot of a graph on some web page, wishing I could tell if two things lined up. Well, inspiration struck, and this program was born. Two windowsone that is one pixel wide, and another that is one pixel tallare created, and they follow the mouse around every 1/10 second or so. They're displaced by one pixel so that clicking will hit the underlying window, not the crosshair. I apologize for the changing colors, since xor isn't available with this simple method of drawing the lines, it's the only way to be sure to get contrast. I considered making the color depend on e.g., whether SHIFT is pressed, but if Tk provides this information to a window that doesn't have focus, I overlooked it in the manpages.
Parallel-port Two-axis PWM servo controller for Etch CNC [projects/01142347802]
(M)(L)ETCH Servo Inspired by discussion on #emc and by the fact that I'd already bought two tiny servo motors, I've designed and built a two-axis PWM servo controller with a parallel port interface.
ET-ARM Stamp [projects/01141702410]
… wigger clone and the right Linux software. As you'd learn from the documentation included source code,…
Hostmot2 FPGA true random number generator [projects/hm2rng]
Reverse Engineering the Samsung ML-2010 laser printer [software/01134173186]
Ingrid recently bought a Samsung ML-2010 laser printer. The price was attractive, and it seems to be a good printer. However, there is either the choice of a an open-source driver for a different printer model, one which doesn't support the 1200x600DPI mode, or a closed-source driver which comes on the included CDROM. I'm going to try to reverse engineer the new format, which is called "SPL II" in the GUI and "QPDL" in the generated file (@PJL ENTER LANGUAGE = QPDL). My approach is to print a postscript file using the binary driver, saving the result to a local file. At no time do I plan to disassemble the binary software provided by Samsung.
Netflix to Aether converter [software/01134091849]
Decyphering an assertion [software/01133403001]
A few weeks ago, I posted a humdinger of an assertion. A little investigation shows that this is actually the very legible assert (strncmp (repository, current_parsed_root->directory, strlen (current_parsed_root->directory)) == 0); Read on for the sordid details of glibc's internal "optimizations".
Stippler 1.0 source release [software/01133127497-stippler-source-release]
I finally got around to writing my own dithering algorithm, so now all parts of stippler are under a clear GPL license. Stippler is software for turning greyscale images into "stippled" images. I have have discussed it before on my blog. Stippler is based on the reasearch of Adrian Secord, but the implementation is my own. Files currently attached to this page: stippler-1.0.tar.bz27.9kB
Fuse-python 0.9 rereleased under LGPL [software/01126277815]
After a request for an LGPL version of fuse-python, I have repackaged the 0.9 release to include an LGPL copyright notice. Except the license change, this release is not useful. It's untested and almost certainly doesn't run at all with modern versions of fuse.
Timestamp-based caching for filesystem-based dynamic websites [software/01121349427-cache_cgi]
aether is nice, but it's a bit slow, especially when many local files must be parsed to produce a single page. cache.cgi is a simple program that, in cooperation with any filesytem-based dynamic website, can serve from a cached copy of the page when it is appropriate to do so.
Aethertool 0.6 Released [software/01120415783-aethertools-0.6]
A new version of aethertool, 0.6, has been released. Compared to 0.5, it features mostly cleanups.
Controlling EMC with a joystick [software/01119021973]
This Python program, which uses the emc module from AXIS, lets you use any Linux-supported joystick or d-pad as a jogging pendant.
Setting the NET_WM_ICON for Tkinter application windows [software/01112237744]
The icon created by the example program This somewhat hackish module can be used to set the NET_WM_ICON for your Tkinter application.
mail2page.py for vmobl.com [updated 2005-04-21] [software/01112017832]
This Python script intelligently excerpts e-mail and forwards it to a vmobl.com mobile phone
mailpie - e-mail full text search [software/mailpie]
… to my scribblings here, current Linux distributions have "splix", an open-source driver for ML-2010 and some…
Stippler: Turning photos into dots [stippler]
Didn't find what you wanted?
Website Copyright © 2004-2014 Jeff Epler