Howdy.
I'm documenting my adventures (and problems) here, so that I remember my mistakes, and that you may learn from my mistakes. I'm not a programmer, nor a computer expert. I'm just a tinkering guy in Milwaukee with a store and three kids to keep me busy.
If you want to respond (or help me out), just use the web form. And thanks!
TIP: Use your browser's Find (usually CTRL+F) to look for the topic of your choice. I'm far too lazy to organize this unimportant corner of my life....
TIP: I dont have a bunch of fragmented updates - if an old entry changes, I update it, put a current date on it, and stick it at the head of the queue. So if you're looking for an old entry that vanished, look instead for an updated entry closer to the top.
September 28, 2008: I built a web scraper in python. It scrapes about 20 web pages for the prices of violin strings, then puts the prices in an OpenOffice document for handy printing. It is structured so I can add other output formats, and I could add an XML file to track prices over time or just print changes.
I'm installing it on the store iMac, and setting it as a daily recurring job.
Hooray for learning python, python html parsing, python string formatting, OpenOffice file manipulation, and OS X launchd and launchctl plists.
September 20, 2008: Ubuntu's Upstart is an init daemon replacement, quite analagous to OS X's launchd. Launchd also replaced cron on OS X - and upstart plans to replace cron on Ubuntu. No telling when, but all my cron jobs will need to be reformatted.
September 17, 2008: OSX is Unix - similar, and yet dissimilar to linux. I'm setting up a few recurring maintenance scripts
First of all, cron is deprecated in favor of launchd, which handles a lot more than just cron jobs.
First, recurring jobs are located in /Users/username/Library/LaunchAgent/ as .plist files.
Sample syntax of a .plist file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http:// www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.thisismytask</string>
<key>LowPriorityIO</key>
<true/>
<key>Nice</key>
<integer>1</integer>
<key>ProgramArguments</key>
<array>
<string>/Users/username/thisismytask.sh</string>
</array>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>0</integer>
<key>Hour</key>
<integer>5</integer>
</dict>
Activate the job using the command launchctl load /Users/username/Library/LaunchAgents/plistname.plist
Deactivate the job the same way (except use unload)
September 10, 2008: My network, at home and work, are reaching a point where I'd like to be able to remotely administer some machines. So it's time to learn VNC and SSH. It's pretty clear that I'll want a VNC Reverse Connection through SSH. As installed below, the VNC connection is automatically routed through ssh.
Testing status: Connected from both Macs to Xubuntu, with all three behind the same router. Connected from XP to a Mac running behind the same router (bit slow). But connecting from Mac to Xubuntu across the router failed...Router setting? (I did have port 5500 open on my -viewer- end)
How To Install It
apt-get install openssh-server xtightvncviewer sudo update-alternatives --set vncviewer /usr/bin/xtightvncviewerDon't use the included 'vinagre' application - it's broken and doesn't work with many VNC servers.
Download and open the latest 'tightvnc' zip file for windows Copy WinVNC.exe and VNCHooks.dll to someplace convenient (desktop works), trash the rest of the .zipDownload source
How To Use It - from my (helpdesk) point of view
curl "http://www.whatismyip.com/automation/n09230945.asp", the return is pure text IP address - no further processing required.xtightvncviewer -listen 0MAC Systems: Find Vine Server in Finder --> Applications --> Utilities --> Vine 3.0 --> Vine Server Open Vine Server by double-clicking on it. Select Server Menu --> Reverse Connection.Type in my (me, the helpdesk) IP address. Instant connection! Automated/Scripted Mac connection: echo /Applications/Utilities/Vine3.0/Vine\ Server.app/OSXvnc-server -connectHost $connectionIP -dontdisconnect -nodimming
WINDOWS Systems: Double click WinVNC.exe, type an easy password into the "Password:" box, and press OK. Right click on WinVNC icon in system tray, choose "Add New Client", and type in my (me, the helpdesk) IP address.
This is a simple script to find my internet IP, my local (router-assigned) IP, command the router to begin port forwarding, set up a job to disable port forwarding later, and set the tightvncviewer on my xubuntu box to listen. So when somebody calls, I just run the script...
#!/bin/sh
# This script sets up my computer to receive a reverse-VNC connection.
# It does _NOT_ need to be run as root.
#
# Step 1: Find my internet IP and echo it to the screen
# The server (person at the other end) needs this to connect.
# Define Variables
#ip_url="http://www.whatismyip.com/automation/n09230945.asp"
externalIP=`curl -s http://www.whatismyip.com/automation/n09230945.asp`
echo "My IP address is: "$externalIP
# Step 2: Find my local, router-assigned IP
# We need this for Port Forwarding the router
localIP=`ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk '{ print $2 }' | awk -F: '{ print $2 }'`
echo "My Local address is: "$localIP
# Step 3: Create a pop-up or notification with the IP information
zenity --info --title "IP Addresses" --text "Internet IP Address (the server needs this): "$externalIP"\\nLocal IP Address (for Port Forwarding): "$localIP"\\n\\nMac Instructions: Open Vine Server, File --> Reverse Connection\\n\\nWindows Instructions: Open tightvncserver, right-click on icon in system tray, select 'Add New Client'" &
zenity --notification --text "External: "$externalIP" Local: "$localIP &
# Step 4: SSH to my router and forward router port 5500 to my computer.
# Step 5: Create a job to shut off port forwarding automatically
# Since I don't know IPtables yet, here's a workaround
# that simply open's the router web interface.
firefox -url 192.168.1.1/Forward.asp &
# Step 5: Set up the VNC client to listen.
xtightvncviewer -listen 0
echo "End!"
September 9, 2008: Trying music notation programs
mscore - looks great, requires fluid-soundfont-gm to playback (piano)
denemo/lillypond - haven't tried yet.
lime might be promising for the Mac - but Lime for Windows doesn't work under Ubuntu Wine.
September 9, 2008: Update-notifier does a lot of good things. It shows you when a package manager is working in the background, it automates security updates, it cuased updates to be downloaded in the background, and it provides a convenient icon to click on and launch update-manager. Good stuff.
But it's daemon eats an annoying trickle of ram and resources.
I have it set to update weekly, so the rest of the time it's just eye candy. Much of it's power is wasted on my scheduled update cycle. Time to find a replacement with less overhead.
The simple solution: Really, all I need is to run update-manager weekly. So add the following to your user crontab (crontab -e):
#Reminder bot - this e-mail replaces the update-notifier package 40 7 * * sun /usr/bin/nail -s "Reminder Bot: Run Update-Manager" me@example.com >/dev/nullor instead of using nail (to e-mail the notice), I can simply use zenity to create a pop-up:
#Reminder bot - this e-mail replaces the update-notifier package 40 7 * * sun DISPLAY=:0.0 /usr/bin/zenity --info --title "Reminder!" --text "It's time to run Update-Manager"or zenity can also create a notification-area icon:
#Reminder bot - this e-mail replaces the update-notifier package 40 7 * * sun DISPLAY=:0.0 /usr/bin/zenity --notification --text "Reminder: It's time to run Update-Manager"and I'll get a reminder e-mail every Sunday morning at 7:40 am...if I'm awake. Then I launch update-manager from the menu or command line...if I want.
The lazy solution: The simple solution has a drawback - none of the packages are downloaded yet, so the update might take a while (zzzzz). An additional cron entry, though, will have everything downloaded and ready.
Edit the root crontab: sudo mousepad /etc/crontab
Add the line 42 6 * * sun root apt-get update && apt-get autoclean && \apt-get -q -d -y -u upgrade (source)
This will download the updated and upgraded packages on Sunday mornings about an hour before the reminder e-mail, plenty of time.
In theory we could try 42 6 * * sun root apt-get update && apt-get autoclean && \apt-get -q -d -y -u upgrade && /usr/bin/nail -s "Reminder Bot: Run Update-Manager" me@example.com and have it all in one place, but I'll find that confusing in another 6 months.
Removing update-notifier and update-notifier-common: Nothing depends on the package in Xubuntu 8.04, so a simple sudo apt-get remove update-notifier update-notifier-common gets rid of the packages, freeing up a whopping 426kb of disk space.
I find I don't miss the old notifier at all.
at command in Xubuntu 8.04September 9, 2008: Tried using at and batch to compare/complement cron. Unfortunately, I couldn't decipher the syntax completely. I could put in a job, but then I couldn't see the results of the job (so it's not much use to me, eh?)
September 2, 2008: Package tools and command line tips.
What's the difference between dpkg, apt-get, aptitude, synaptic, and add/remove? Which one should I use?
sudo apt-get -f install - Find broken packages and try to fix them.aptitude show packagename - Is a package installed? (check the second line of the response).dpkg --get-selections > file - Write a list of all the installed packages in a file named 'file'.sudo apt-get update - Refresh the package list.sudo apt-get -d upgrade - Download the upgrades (with a y/n prompt)sudo apt-get -dy upgrade - Download the upgrades (answer the prompt 'y')sudo apt-get update && sudo apt-get -dy upgrade && sudo poweroff - Download all upgrades (not install), then shut down, perfect for unattended download, with installation upon startup in the morning./var/log/dpkg.log. It is rotated monthly at the beginning of the month, so for last month look in /var/log/dpkg.log.1August 29, 2008: Command line Python tool to set up an instant FTP server:
cd to the directory you want to shareifconfig gives the network address of the computerpython -m SimpleHTTPServer starts the server on port 8000. (minimize the terminal window so you don't accidentally close it)http://xxx.xxx.xxx.xxx:8000, where the xxx (the IP address) came from ifconfig.http://xxx.xxx.xxx.xxx:8000 or http://localhost:8000.CTRL+C to stop the serverSharing is one-way; no uploading. No security. The entire contents of the directory are shared; no blocking. No logging (that I know of). Just pure download server. Cool.
August 27, 2008: .odt files are actually containers (you can see one using unzip -l document.odt). Within the container, content is in the content.xml file. Script info source
You can avoid the whole "containers" bullshit, though, by saving an OpenOffice document as a flat file (.fodt). There's no zipping or unzipping, just open the file in an editor - it's xml already. Open the modified .fodt with OpenOffice, and your document is right there.
OpenOffice also has it's own script classes for Python and C, called UNO. However, I haven't taken time to dig around through it.
Here are the bash commands to open and restore the container
unzip path/container.odt content.xmlunzip path/container.odt content.xml -d working/dir/path/ is the expanded commandunzip - the applicationpath/container.odt - the path to the .odt filecontent.xml - the only file you want to extract assuming you're modifying a template. Creating content with new style (fonts, etc.) is a whole separate problem.-d - optional flag to place content.xml in a different directory. By default, it places it in your current working directory.working/dir/path/ - the directory for -d to usecontent.xml file by hand, or using a script, or using Python.zip -j path/container.odt working/dir/path/content.xmlzip - the application-j - a flag to add the file 'content.xml' instead of the useless 'path/content.xml'. You need this!path/containter.odt - the same path to the .odt fileworking/dir/path/content.xml - the path to content.xmlzip -m flag! It looks handy, claiming to delete the content.xml file from your file system after adding it to the archive...but instead it will unpredictably delete without adding to the archive.Modifying the data using Python
os.popen('unzip path/file.odt content.xml') to unzip content.xml to a known location.tag.text == 'TEXT1' and other flags, and simply replace them with tag.text = 'Thank you for purchasing the product'...the text you want instead.tree.write(content.xml) the changes to the xml file.os.popen('zip path/file.odt content.xml') to update the .odt file.os.popen('rm content.xml') to clean up and delete the xml file.This system works great for reading a .iif (Quickbooks export .csv) file, and applying it to a template to generate printable customer invoices.
Next step is to generate a .odt or .odw file with the printable envelopes.
Using these tools, I have a successful python script that imports an .IIF file (csv format), an OpenOffice Word letter document, and an OpenOffice envelope document. It outputs a series of printable invoice .odt files (ready-to-print), an envelope .odt file (ready-to-print), Evolution e-mail invoices, and a summary e-mail with all the .odt files included as attachments for handy recordkeeping. Not bad.
August 22, 2008: Fast experiment to use cron to open a terminal window and execute a command. Success!
The crontab item is:
* * * * * DISPLAY=:0.0 /usr/bin/xfce4-terminal -x top
* * * * * - the crontab time codes. Substitute your own.
DISPLAY=:0.0 - sends the subsequent commands to the screen
/usr/bin/xfce4-terminal - the application (opens a terminal window)
-x top - execute the top command in the application
Once a minute, a new terminal window spawns running 'top', just as intended.
August 16, 2008: AbiWord doesn't come with a spell checker installed...but it doesn't tell you that.
Here are the packages to install the spell checker: (source)
aspellaspell-enlibenchant1c2aUse Synaptic or the command line to install. Restart AbiWord, and Presto...now it works.
August 3, 2008: Trying to connect to our old 801.b Linksys router. Under Xubuntu 7.10, it connected fine...but this is the first time trying under 8.04. No luck. Just keeps refusing to associate with the ESSID, and returning error 812 (whatever that is).
But the hardware works - boot into XP, and it connects just fine.
July 28, 2008: Trying to get an SCR201 PCMCIA smart card reader to work.
Packages to install: libccid libpcsc-perl pcsc-tools pcscd libpcsclite1 libckyapplet1 coolkey
Just can't get it to work. Oh well, we'll see if it works on Windows boot.
July 24, 2008: Evolution is intended as a GUI e-mail client, so the scripting options are limited. Also, it looks like you cannot autosend e-mail from a script, there's so script command equivalent to the 'send' button.
But that's a good thing; I can autosend from nail when I want to. So a script will compose the e-mail, which will sit on my desktop until I review it and click to send it. Nice.
shell command source
This command creates a window with To:, From:, Subject:, and Body filled in. 'From:' is already known by Evolution, the rest is parsed from the following command:
evolution mailto:person@example.com?subject=Test\&body=Some%20crazy%20story%20stuff%0D%0Acolumn1%09%09column2%09%09column3%0D%0A%0D%0ASincerely,%0D%0A%0D%0AMe
evolution mailto:person@example.com?cc="second_person@example.com"\&subject="This Is The Subject"\&body="This is the body of the message"\&attach=Desktop/test_file.xml
evolution mailto:person@example.com - Launches Evolution's e-mail composer and To: line?cc="Person@example.com" - CC: Line\&subject="Subject" or ?subject="Subject" - Subject line\&body="Body" - Body of the e-mail is everything after this line\&attach=/path/file - Files to attach%20 - Space%0D%0A - CR/LF (new line)%09 - Tabpython command
Python has it's own smtp module for creating e-mail, it's far more useful in most circumstances. But in this case, we want the composed evolution window.
import os
body_string = 'This is the body of the e-mail message'
body_string = body_string.replace(' ','%20')
os.popen('evolution mailto:person@example.com?subject=Test\&body=' + body_string)
import os - Use python's os modulebody_string = 'This is the body of the e-mail message' - The body in normal textbody_string = body_string.replace(' ','%20') - Encode the spaces (evolution will decode them). Tabs, newlines, and other reserved strings need to be encoded.os.popen('evolution mailto:person@example.com?subject=Test\&body=' + body_string) - The 'os.popen(cmd)' executes shell cmd. Note that cmd is just a python string, and you can use all the string tools on it, like adding body_string.
>>> import os
>>> to = 'person@example.com'
>>> cc = '"second_person@example.com"'
>>> subject = '"This is the subject"'
>>> body = '"This is the body"'
>>> attachment = 'Desktop/rss_test.xml'
>>> os.popen('evolution mailto:'+to+'?cc='+cc+'\&subject='+subject+'\&body='+body+'\&attachment='+attachment)
July 22, 2008: I am afflicted by Ubuntu Bug #189462, and so I'm getting occasional e-mails from cron that tell me:
/etc/cron.daily/slocate: slocate: fatal error: load_file: Could not open file: /etc/updatedb.conf: No such file or directory
It turns out to have a trivial solution: touch /etc/updatedb.conf
July 19, 2008: Trying to figure out all the processes I have running, to see what I can kill, and which packages I can remove.
According to gnome-system-monitor:
System or Root processes I uninstalled,
avahi-daemon - the avahi local discovery system.System or Root processes I don't use but can't uninstall,
atd - the at command daemon. console-kit-daemon - a tracking app for multiuser systems. Many GNOME apps depend on it for some reason. getty - console, 6 of them open.System or Root processes I should keep,
bonobo-activation-server - GNOME component tracker. Safer to leave in place. gam_server - gamin tells the window manager about changes in the filesystem. thunar-tpa - Thunar trash can applet evolution-data-server - database including addressbook and other functions to integrate Gnome app data (breaks Evolution) evolution-alarm-notify - alarm clock (breaks Evolution) system-tools-backends - DBUS
July 17, 2008: Wine 1.0 bugs and fixes.
url not found. This is because Thunar doesn't do bash-style completion, and chokes on a '~' in a config file.sudo mousepad /usr/share/applications/wine-browsedrive.desktop
Exec=xdg-open ~/.wine/drive_c to Exec=xdg-open /home/USERNAME/.wine/drive_cJuly 16, 2008: The Army requires leaders to use PureEdge Viewer 6.5 for all forms, and ApproveIt 5.7.3 to digitally sign the forms...and they are only available for windows.
A Google search 'linux xfdl' and a Synaptic package search turned up no likely substitutes in Linux.
Under WINE 1.0, PureEdge installs cleanly (right-click on the file, 'Open with Wine Windows Program Loader'), but firefox won't send forms to it, and it chokes on a form...see wine bug #11625 .
Under WINE 1.0, ApproveIt fails to recognize it's serial number, and installation fails.
aria2c 'https://ascp.monmouth.army.mil/scp/downloads/nocost/pureedge/PEViewer650DODJ12%20(Custom%20IFX-v3)(14Feb06).exe' (AKO login required)aria2c 'https://ascp.monmouth.army.mil/scp/downloads/nocost/silanis/AGM-ApproveIt-5-8-2.zip' (AKO login required)July 16, 2008: Trying aria2c as a commpan-line replacement for wget, curl, and torrents.
aria2c -D URI for daemon (background) downloads, and free up a terminal window.July 14, 2008: The US Army has a plethora of websites to keep it's mighty bureaucracy chugging along. Unfortunately, the security certificate they all reauire is not included in Firefox 3.0 (under Ubuntu 8.04). Here's how to get it and install it.
NOTE: The certificate is worthless to non-DOD people. It doesn't give you access, you still need an account. It's really boring, anyway, and none of the cool secret stuff is in these websites. All the certificate really does for most people is prevent the annoying message: This website has a certificate that I don't trust.
curl -O http://dodpki.c3pki.chamb.disa.mil/rel_dodroot_1024.p7b -O http://dodpki.c3pki.chamb.disa.mil/rel3_dodroot_1024.p7b -O http://dodpki.c3pki.chamb.disa.mil/dodeca.p7b
This certificate can identify web sitesThis certificate can identify mail usersImporting the same certificates to Evolution is a similar method.
July 10, 2008: I set the following bash history to make the history file more useful to me.
HISTCONTROL=ignoreboth #Prevent duplicate history entries HISTIGNORE=ls:history #Don't remeber these commands in history
September 9, 2008: I could do this in evolution, but it's more fun to use cron and nail or zenity
This crontab entry:
0 6 28 * * /usr/bin/nail -s "Reminder bot: Pay The Store Rent!" me@example.com </dev/null
will send the following e-mail at 6:00 am on the 28th of each month,
From: me <my computer> To: me@example.com Subject: Reminder bot: Pay The Store Rent! Date: Thu, 28 Jul 2008 06:00:01 -0500 Text: None
So I won't forget to pay the rent.... It's important.
This sends an e-mail to a known (to nail) e-mail server, so all machines that check the account get the mail.
Alternately, if I want a a pop-up window:
0 6 28 * * DISPLAY=:0.0 /usr/bin/zenity --info --title "Reminder Bot" --text "Pay The Store Rent"
will give me a pop-up window instead, and
0 6 28 * * DISPLAY=:0.0 /usr/bin/zenity --notification --text "Reminder Bot: Pay The Store Rent"
will give me a tiny notification-area icon.
July 8, 2008: Living in the midwest, I check the weather radar a lot to protect my laundry drying outside from lots of pesky thunderstorms. So I want to make the radar image my automatically-updating desktop picture in Xubuntu.
Here's what it looks like - a crontab entry with just two commands:
# m h dom mon dow command */20 * * * * curl -o /home/ian/.config/xfce4/desktop/radar_image.png http://rada r.weather.gov/lite/N0R/MKX_0.png; DISPLAY=:0.0 /usr/bin/xfdesktop --reload >/dev /null 2>&1
The cron instructions:
# m h dom mon dow command - That's just part of the crontab
*/20 * * * * - tells the machine to run the script every 20 minutes.
> /dev/null at the end - tells the machine to not e-mail me every time the script runs.
The bash commands:
curl -o - the download command.
/home/me/.config/xfce4/desktop/radar_image.png - name of the file to save.
http://radar.weather.gov/lite/N0R/MKX_0.png - file source.
; - bash separator between two commands.
/usr/bin/xfdesktop --reload - reloads the desktop, including the background image. But cron can't execute it (source). The prefix DISPLAY=:0.0 is required so cron can do it. (source)
In the XFCE Desktop control panel: Set the radar image (http://radar.weather.gov/lite/N0R/MKX_0.png) as the desktop picture.
The weather radar image is from the United States National Weather Service and updates every 5-6 minutes.
The /home/me/.config/xfce4/desktop/ directory is XFCE's default for wallpaper; I chose to keep the desktop stuff together.
If you're using XFCE's built in random-desktop-picture list, then this can be added to the list and becomes one of the random pictures.
More about cron:
*/5 * * * * will run the script every five minutes.
*/20 * * * * will run the script every twenty minutes.
Make sure the command is all on one line (not wrapped), or you'll get crontab errors.
Updating the picture at startup: At system boot, the old desktop picture loads before the network is available - so for 20 minutes, you might have a worthless old picture.
To load a new picture when the network becomes available:
sudo mousepad /etc/rc.local... # By default this script does nothing. # Update the weather radar desktop picture upon boot (after network is up) curl -o /home/ian/.config/xfce4/desktop/radar_image.png http://radar.weather.gov/lite/N0R/MKX_0.png; DISPLAY=:0.0 /usr/bin/xfdesktop --reload exit 0
June 18, 2008: I have an old DVD ISO image (I make DVDs of my kids), and I want to make an AVI copy to upload the funniest bits to YouTube. This is on an Ubuntu 8.04 system, your mileage may vary.
sudo mkdir /mnt/isosudo mount -o loop /path/and/file.iso /mnt/iso/mnt/iso. Select the button for 'Encode DVD on the fly' since it's already on the hard drive.sudo umount /mnt/isosudo rmdir /mnt/isosudo apt-get remove dvdrip mplayer xine sudo apt-get autoremove sudo apt-get autoclean
The package ripmake didn't work - tcprobe failure.
June 17, 2008: Poking around looking for ways to clean up my Python code for MWC. It's probably time for me to let go of my 25-year-old BASIC programming experience, and stop making my Python look like BASIC:
Eliminating duplicates from a list using Sets. Currently I convert a list to a dictionary and back to do this:
>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> fruit = set(basket) # create a set from a list, removing duplicates
>>> fruit
set(['orange', 'pear', 'apple', 'banana'])
>>> li = [] # create a list from a set
>>> for f in fruit:
... li.append(f)
...
>>> li
['orange', 'pear', 'apple', 'banana']
>>> fruit = set([]) # create an empty set
>>> fruit.add('fred') # adding to set
>>> fruit.remove('fred') # removing from set
>>> fruit.clear() # clear all data from a set
>>> 'orange' in fruit # fast membership testing
True
>>> 'crabgrass' in fruit
False
Source: Dive into Python.Using List Comprehensions as a building block for filters and mapping. What else are they good for?
Filter data using Filters instead of for loops
Add data using Map instead of other crazy structures
June 13, 2008: Looking for cool fonts for violin labels (the paper tag inside the f-hole of the instrument).
I used the free font 'Adorable' from abstractfonts.com.
Fonts in Ubuntu are much more straightforward than I expected:
/etc/fonts/fonts.conf/usr/share/fonts//.fonts (inside the home directory in a hidden file).sudo needed.June 8, 2008: Thirteen years ago, I purchased a laser printer that still works great despite a few wrinkles and liver spots. Here's how I keep it alive currently.
Hardware:
The printer doesn't have an ethernet port, only a localtalk (serial) port. Long ago, our last serial-printer Mac died, so the only way to talk to the printer is through the network via the EtherWrite adapter.
The EtherWrite is not detectable on the network if it's directly connected (by ethernet) to a mac or a router. It only works if the connection passes through a hub first. I don't know why. The EtherWrite's measly documentation is unhelpful, and the company that made it died long long ago.
The printer itself still has clean and sharp output. It's outlasted a couple serial, USB, and multifunction inkjets. Toner is still available. The case is yellowing, and the rear feeder spring has been lost, so it feeds out the top - I taped the rear feed selector level in the position I wanted.
Since I print at home only rarely, I leave the printer/adapter/hub assembly powered off for months at a time. When I need to print, I turn them all on, then alternate unplugging/replugging the printer and adapter until they show up on the network. I've never figured out what the proper power-up sequence should be - and I've tried.
Software:
The printer only speaks Apple's localtalk. It's built-in on the MacBook, and available as an add-on on Ubuntu.
Printing from the MacBook is simple. First, it needs to be plugged into the router, since my router's wireless doesn't support Appletalk. Next, print the document. If the printing errors out "cannot connect to printer," then cycle the power on the printer or the adapter. Since the printed document is in queue, when the printer appears on the network, the printer will begin working despite the original error message.
Printing from linux is a bit more tricky, and Ubuntu doesn't make it easy. But it can be done. These instructions are for Ubuntu 8.04, and your results may vary.
netatalk package with sudo apt-get install netatalk. Due to a bug in the package, you might get a bunch of errors:
dpkg - trying script from the new package instead ... hostname: Unknown host invoke-rc.d: initscript netatalk, action "stop" failed. dpkg: error processing /var/cache/apt/archives/netatalk_2.0.3-6ubuntu1_i386.deb (--unpack): subprocess new pre-removal script returned error exit status 1 hostname: Unknown host invoke-rc.d: initscript netatalk, action "start" failed. dpkg: error while cleaning up: subprocess post-installation script returned error exit status 1 Errors were encountered while processing: /var/cache/apt/archives/netatalk_2.0.3-6ubuntu1_i386.deb E: Sub-process /usr/bin/dpkg returned an error code (1) A package failed to install. Trying to recover: dpkg: error processing netatalk (--configure): Package is in a very bad inconsistent state - you should reinstall it before attempting configuration. Errors were encountered while processing: netatalkDon't sweat if the errors look like these - you'll fix them in the next step. What's happening is that the bug prevents netatalk from figuring out the name of it's host.
/etc/default/netatalk FROM: ATALK_NAME=`/bin/hostname --short` TO: ATALK_NAME=`/bin/hostname` /etc/init.d/netatalk FROM: ATALK_NAME=`/bin/hostname --short` TO: ATALK_NAME=`/bin/hostname`
nbplkup PrinterName - Find the printer on the network.If the printer's not on the network, there are three possible reasons:
nbplkup PrinterName, it will still fail - netatalk never checked the new connection. Use sudo /etc/init.d/netatalk restart (or stop and start to reset the daemon.sudo chmod +x Desktop/papsudo mv pap /usr/lib/cups/backendsudo /etc/init.d/cupsys restarta2ps package (included with default install) will create .ps files. Usage: a2ps input_text_file -o output_file.pspap -p Printername Testfile.psJune 7, 2008: Long ago, I made a favicon.ico custom icon for the Milwaukee Without A Car website, but I don't remember how.... I think I created a .bmp image and simply renamed it...
So I found a new SVG of the same graphic, but I'm not using it - instead I'll stick with the old favicon until inkscape can export to .ico files.
Another example showing how SVGs and their tools have great promise, but aren't quite there yet.
June 6, 2008:
<object> will work, but only the tiny object box will show the new page. Workaround: Use the target="parent" or target="top" properties of the link tag.So I'm back to .png and .gif and .jpg for most HTML images. As before, SVG original for easy changes, but export raster images. Well, that's what experiments are for.
Hey, this is my first red box in over a month!
June 5, 2008: After a bit of experimenting with SVG graphics, I've reached the following conclusions:
<object> tag, but changing the <object> size doesn't scale the image, it crops instead.<transform> and <preserveAspectRatio> tags, both of which are in the original XML, not the HTML.The upshot is that I'll keep file archives in SVG for future manipulation, resized SVGs for web use, and exported ODGs for print media.
Wishlist:
June 1, 2008: I want to send automatic e-mail as a cron job from my Xubuntu 8.04 laptop. Originally, I tried routing it through the legacy mail spools - it is, after all, on the same laptop as my e-mail - but gave up in despair. Thanks to Ubuntu Forums for the info.
sudo apt-get install ssmtp nailssmtp and nail using Synaptic.sudo mousepad /etc/ssmtp/ssmtp.conf to edit the ssmtp config file. Modify or add the following lines to the config file:
mailhub=mail.mymailserver.com AuthUser=me@mymailserver.com AuthPass=my_mail_passwordThe nail config file does not need to be changed at all.
nail command to send e-mail:nail recipient@address.com<RETURN>Subject: subject<RETURN>E-mail body text<CTRL+D>nail ian@virusmagnet.comSubject: Lotta viruses coming into this accountIan, you need to stop responding to the spam.cron job:nail -s "Test 3" recipient@email.com < /tmp/test_email will send the following e-mail.nail -s "Test 3" recipient@email.com < /dev/null will send an e-mail with a blank body - good for quick reminders using the subject line only.cron events, use the command crontab -e to edit your crontab file:26 21 * * * nail -s "Test 3" recipient@email.com < /tmp/test_emailMany elements can be added or cusomized - this is simple enough to generate automatic e-mails to myself.
May 31, 2008: HTML has changed since I learned it. For example, <style> tags weren't useful, and CSS was just starting out.
Ew, I'm old.
So I used to write an image tag as <img src="General_Lew_Wallace.jpg" width="108" height="144" align="left" border="1">.
But, an alt text is now required, and the border has been deprecated. So after some poking around with CSS, I came up with:
<img src="General_Lew_Wallace.jpg" alt="General Lew Wallace of the U.S. Civil War. I don't look like him." width="108" height="144" align="left" style="border-style: ridge; margin-right: 10px">
It does look better. Thanks to the tutorials at www.w3schools.com
May 30, 2008: I update this blog using the curl command to upload to the web server (see my entry back on March 8, 2008, "The Joy of cURL").
The command, curl -v -T TechBlog.html -u website:password ftp://ftp.freeservers.com/ian/ lives in my Bash history; each time I want to upload, I simply up-arrow through the history at the command prompt until the list time appears, and then hit -enter-. Presto! Terribly easy.
But sometimes I've done a lot of command line work in the meantime (for example, python programming), so I up-arrow seventy or ninety times before the old curl command reappears.
I'm much too lazy to do that regularly.
So I created an alias in my .bashrc file: alias blog='curl -v -T TechBlog.html -u website:password ftp://ftp.freeservers.com/ian/'. Now I can simply type blog instead of looking for the old curl command.
May 29, 2008: Ubuntu doesn't have a convenient reader or converter for .lit (e-book) files, because .lit is a proprietary format.
To install the C-Lit converter on Ubuntu, use the command line. Do the following three commands in order:
wget http://ace-host.stuart.id.au/russell/files/debian/sarge/libtommath/libtommath_0.37-1_i386.deb)
wget http://ace-host.stuart.id.au/russell/files/debian/sarge/clit/clit_1.8-1_i386.debsudo dpkg -i libtommath_0.37-1_i386.deb clit_1.8-1_i386.debTo use clit (oh, what name!):
clit inputfile.lit outputdirectory/
inputfile.lit is the path to the lit file, /home/me/ebooks/mybook.lit (of course, the /home/me/ can be left off if you're not root)
outputdirectory/ is the path and name of the new folder clit will create. The trailing slash (/ or \) means that the directory does not already exist. Each .lit file should be exploded to it's own directory. For example ebooks/mybook/
So the final command would be clit ebooks/mybook.lit ebooks/mybook/, and the html version of the book will appear in the newly-created mybook folder
May 28, 2008: Figured out how to get a Python script pop up a notification bubble on the desktop:
It uses the pynotify frontend to libnotify. It's not part of the python 2.5 base, but is included with the Ubuntu default install. Here's a test script for my Ubuntu system. It pops up a little bubble from the system tray
import pygtk
import pynotify
pynotify.init( "Some Application or Title" )
n = pynotify.Notification("Title", "body", "dialog-warning")
n.set_urgency(pynotify.URGENCY_NORMAL)
n.show()
Tip: The .init() call is neccessary, or you'll get a lot of ugly DBUS and GTK errors.
Changing Stuff: Simply replace the elements("Title", "body", "dialog-warning") with your desired title, body, and image path. The image display will take .jpg, .png, .svg, and likely others. For example...
n = pynotify.Notification("Milwaukee Without A Car", "The Python script MWC_Webcrawler has completed a scheduled run. The logfile has been added to your desktop", "/usr/share/icons/Rodent/48x48/apps/gnome-info.png")
May 19, 2008: Found out how to add an RSS icon to the URL bar:
Add the following to the <head> section of the page: <link rel="alternate" type="application/rss+xml" title="Your News Feed" href="http://somewhere.com/news.xml">
May 15, 2008: Had terrible problems with applications autostarting at login that I didn't want. I looked everywhere in /etc and /home/me/.config, but OpenOffice and Thunar just kept appearing.
Then I figured it out. One lousy time I checked the Save session for future logins option on logout. So it restarted that way every time.
So the fix was to shut down all applications, logout (saving the session), log back in. Voila! All fixed.
April 27, 2008: Here's how I upgraded my 7.10 laptop to 8.04. Ubuntu Forums source.
gksu "su /mnt/xubuntu-8.04-alternate-i386.iso/cdromupgrade"But it didn't work. So I upgraded over the network instead.
April 9, 2008: For the timetable project, I want to occasionally create (or perhaps spawn) a new terminal window that will track the python script(s).
Created the following item in my /etc/cron.hourly folder:
python ian/test_script
Created the following script as test_script.py:
#! /usr/bin/env python
import os
os.system("xfce4-terminal")
It works on the command line, but not from an xfce4-terminal window. So I removed the code, and I'll log to a file for now instead.
April 5, 2008: Our sign contractor for the store created some beautiful graphics - but the disk they gave us was all .jpg and bitmap .pdf and even a bitmap .ai file. Limited usefulness for reuse unless we can convert them to vector graphics - bitmaps are big and pixellated, vectors are small and infinitely scalable smoothly.
Used Inkscape. Turned out to be incredibly easy. Import the bitmap, then Path -> Trace Bitmap. Next, File -> Document Properties to crop the page area (so it doesn't save as one logo in the corner of an empty sheet of paper). Save the converted file.
Next problem: Inkscape saves as .svg, but OpenOffice can't open it. Easy to fix - instead of .svg, have Inkscape save as .odg, an OpenOffice drawing file. I love when things work out.
Monochrome and color laser prints of the converted graphics are great - no pixels, smooth and clean edges. Interesting: The bitmaps look better on screen, but the vector graphics are superior on paper.
April 4, 2008: Needed to backup a DVD. On Linux, Brasero failed to finish reading the disk, and never said why. The MacBook Disk Utility errored out with -39. Back to Linux dvdcopy - error reading Title VOB at block 159. No luck - giving up.
April 3, 2008: The 320GB external NTFS drive is faring poorly, but it's Linux's fault. There's a bug in the kernel. As an attempted fix, I enabled the backport repository and updated the driver (from 6 months old to four months old). Minor improvement only. Since the next update of Ubuntu is due in three weeks, I'll wait to see it it's fixed then.
March 31, 2008: Did my first successful python scripts! The first simply imports the second, the second checks the existence of a network connection.
March 20, 2008: For fun, I checked my external drive while booted in Windows. Oh no! It needed to be defragmented! Defrag recommended CHKDSK as well.
Big mistake: One or both of them scattered a lot of my backup files (including the backups of this blog - quite a few entries gone until they turn up again). I'm afraid to look at my music...or my collection of Futurama episodes. Only fix is to hunt through the 'found' folder and put stuff away manually. Big mess.
March 13, 2008: Tesseract is a very powerful OCR package that works only from the command line. Imagemagick is a very powerful image conversion toolkit.
So to OCR a PDF, first convert the PDF to a TIFF with convert inputfile.pdf covertedfile.tiff, then OCR with tesseract covertedfile.tiff textfile. That's amazingly easy.
March 13, 2008: I just figured out that Deluge saves a quick-resume file in the same folder as the torrent (/home/ian/.config/deluge/torrentfiles). I wondered how often it updates - now I suspect it updates every time Deulge successfully quits without an error.
If so, then a good idea is to quit and restart Deluge every 6 or 12 hours or so, thereby limiting the loss from a crash.
My external drive is NTFS, and likes to crash on occasion...so I might start setting my timer.
March 13, 2008: File sharing is finally easy. System Preferences -> Sharing -> Turn sharing on. Oprion to log in as the user for total access. At last. The MacBook and iBook share wonderfully. Haven't been able to get the Linux box or the XO laptop on board yet - they see the file shares in Avahi, but can't connect to them.
March 9, 2008: The new MacBook arrived a couple days ago, and I finally touched it tonight. The new MacBook had OS 10.5, the old iBook has 10.3.9. The iBook wouldn't run the Migration Assistant, and I don't have a Firewire cable anyway...so we used the house wireless, I logged into the iBook through file sharing on the MacBook, and moved most of Library by hand. Great web page detailed which files to move...but can't find it amy more.
March 9, 2008: Setting up an NFS server for local file sharing is much easier than I expected. But getting it to work is much harder:
nfs-kernel-server for the service.sudo mousepad /etc/exports (I use Mousepad under xfce). The examples are a bit sparse, but there are a couple good examples here.No mucking about with .config files, no ports or services to modify. The Ubuntu packages are configured properly already.
On the OLPC (great info here), it's just as easy to set up an NFS client:
su, then yum install nfs-utilssu, then mount ipaddress:/ServerPath /LocalMountpoint, for example mount 192.168.1.38:/media /mntOnly big sticking point so far is Permissions. The mount works, but the files are not accessable due to permissions (gid, uid, etc...). Very helpful overview here, and the quick list of essential terminal commands, in proper order:
sudo mousepad /etc/exportssudo exportfs -asudo /etc/init.d/portmap restartsudo /etc/init.d/nfs-common restartWe'll see if it works after a reboot. Still need to figure out permissions, NFS client and server on Mac, NFS server on OLPC.
March 8, 2008: Success! I successfully shared my Linux (Ubuntu 7.10) music files to the Mac using Avahi on a wireless network. Now, if the Mac and Linux boxes are on the same network, the Mac can see and play any of the Linux songs.
How I set it up (surprisingly easy):
mt-daapd for the service, and package avahi-discover as a diagnostic tool.localhost:3689, Username: (blank), Password: mt-daapd. The project is called Firefly Server.No mucking about with .config files, no command line work, no ports or services to modify.
We'll see if it works after a reboot. Still need to figure out how to share iTunes music with Rhythmbox, and how to share both wth the OLPC. Still need to figure out how to share video files, and other non-media files.
March 8, 2008: Success! How do you mount a USB stick on an OLPC laptop and get a window of the contents?
Tip #1: Try several of the USB ports. I was successful in the lower right side port.
Tip #2: Once inserted, the USB stick will automount under /media/UsbStickName. Just do an ls /media/ to see your stick there.
Tip #3: For the GUI, look in the Journal. The stick shows as an icon on the bottom. Click it, and the window of contents opens!
Tip #4: To unmount and eject the drive, use the Journal's USB Drive icon. Trying to use the umount command in Terminal fails, claiming the drive is busy.
March 8, 2008: curl is a wonderfully useful and scriptable upload/download tool. For example, instead up firing up FTP to upload this page to my website, I figured out that I can open a Terminal and enter: $curl -v -T localpath/TechBlog.html -u username:password ftp://ftp.freeservers.com/ian/. And it does the whole thing for me!
March 8, 2008: Periodically, I use the terminal command deborphan to clean out orphaned packages. Found eight or nine.
It's easy to use. Deborphan merely lists the items. I use Synaptic to remove them.
March 7, 2008: Since the reinstall, there's been no sound in Linux. Xubuntu has output no sound. Found the following solution on the Ubuntu Forums.
Edit the alsa config file: sudo mousepad /etc/modprobe.d/alsa-base
Added the following lines at the bottom of the file:
# Fix for Toshiba sound. From Ubuntu Forums
options snd-hda-intel model=auto
We'll see how it works at the next reboot.
March 5, 2008: My wife's old iMac G4 started making an ugly sound last night.
So I backed it up immediately. We looked at the loose power connector, the buckling casing, and the noise...and decided it had become unreliable. So I ordered a replacement today.
Looks like the kids get a spiffy toy.
March 5, 2008: So far, only three problems with the reinstallation.
March 4, 2008: I decided not to wait until April...
Downloaded and burned an Ubuntu 7.10 Alternate CD. Reinstalled Windows (snore, 1 hour of installing, 2 hours of updating and faddle). Installed Ubuntu 7.10.
Uh-oh. No I didn't. The Ubuntu CD was corrupt, and instead hosed everything again.
Reinstall Windows while using the Mac to download and burn an Ubuntu 7.10 Live CD.
The live CD passes the self-test, but then is no longer recognized as bootable by the laptop.
Use the installed Windows to download and burn Xubuntu 7.10 live CD. At the same time, installed Quickbooks and Openoffice, and de-bloated the tiny (10GB) Win partition. Even used the 'compression' feature to squeeze 2.5 GB free space.
Install Xubuntu 7.10 - Success! Lots of adding and updating, but it's done. The laptop is usable again.
March 3, 2008: I located the store's .qbw file on my laptop (the Linux partition is still fine), moved it to a stick, and took it to the store. Goal: Install the latest company data on the store PC, since I had been updating at home.
QuickBooks has encountered a problem and needs to close. Microsoft Visual C++ Runtime Library Runtime Error! Program: C:\PROGRAM FILES\INTUIT\QUICKBOOKS\QBW32.EXE
Okay, go to Add/Remove Control Panel and repair it...
The following error occurs when trying to register the QuickBooks items:
Internal Error 2908 {7D4B5591-4C80-42BB-B0E5-F2C0CEE02C1A}
Argh. Turns out I had weeded unused programs last week. I hate bloat. I had removed Microsoft .NET Framework 2.0. Who knew it was installed by Quickbooks?
Put in the Quickbooks CD. It recognized that the correct component was missing, and installed it. Ejected the CD and put it away.
Went back to Add/Remove and the Repair option. It chugged a while (20-30 minutes) and reported success. Tried it with the moved company file....success! We're back in business.
March 2, 2008: I made a severe mistake in Wine - I set the virtual C: Drive on Wine to match the REAL Windows C: Drive (/media/sda1). BIG MISTAKE. I installed a program, and of course Wine's virtual registry probably overwrote the real Win registry. So now Windows refuses to boot at all...even into safe mode.
Happily, the Ubuntu partition is just fine. I have a huge drive to backup to. My linux box can read/write to NTFS, and I have plenty of time to backup. So I won't lose any data.
But it sucks. Maybe I'll wait until April (Ubuntu 8.04), and then fix it. Maybe not:
March 2, 2008: Learning to use curl, to download schedule information. Using a tutorial to guide me through the minutae of faking forms and another to guide through scripting it into BASH.
March 2, 2008: Beginning a major new project today. I want to bring intercity timetable information to my website, Milwaukee Without A Car.
The goal is a set of pages, purely for my enjoyment:
I want to develop a set of scripts that run on my Linux laptop to: Regularly download the information from the various companies (Python), organize it (XML), output it to several HTML pages (Python, XSL), and upload it to the website (cURL)...all automatically (cron).
March 2, 2008: Ambitious, considering how awful I am at scripting, and how bad most of the timetables and websites are. In the end, I should be a *lot* better at curl and awk!
March 13, 2008: There's no good way to extract the data from PDF timetables online.
Next step is to hand-collect some sample data, hand-create some XML from the data, nail down the XML format, and write the XSL to convert it to the three HTML table formats I want: Yellow sheet (departures), White sheet (arrivals), and timetable format.
The final HTML on the website does not need to be dynamic - the data changes only every two weeks or month.
March 28, 2008: My utterly brilliant brother-in-law, Arno has had a big infulence on the plan.
May 18, 2008: Success! The RSS Feed is up. It's only the first few companies, but they system works!
July 2, 2008: The feed had a fatal bug on June 11, but I rewrote it and resumed today. It's cleaner, suceptible to fewer fatal bugs, easier to trace breake, and includes more companies.
March 2, 2008: I need to try restarting the Mac to retest Skype.
March 2, 2008: Installed wine-doors a package manager for Wine. Nothing useful in it, but worth keeping an eye on.
March 1, 2008: Learned a lot at Ubuntu Brainstorm...mostly that people are not much smarter than cockroaches. Great fun!
I tried two packages based on comments in Brainstorm:
mc (midnight commander) is a command-line window manager
gnome-do is an adaptive workflow application launcher.
Both are pretty cool to know about, but they're just not something I'll be using. I'm in more of a learn-to-script-it mood.
March 1, 2008: Tracker is a powerful indexing package - that was too buggy in October 07 and killed the system. It hogged the CPU and filled(!) the /home directory disk with a corrupt index file. Bad. Bad. Bad. Uninstalled it back in October after a day of frustration and high dudgeon.
In April 2008, Ubuntu 4.08 will include the 'fixed' and improved Tracker. It is cool, and promising. The bug reports seem promising - all the big problems fixes last fall....
Okay, I'll try it again in April. I'm a fool for love. But not sooner - the current version on Synaptic is the 7.10 buggy one.
Update: I never got around to Tracker - I installed Xubuntu instead, which has no crying need for it.
March 1, 2008: Cool! Package apt-rdepends installs a shell command (also apt-rdepends) that gives a clean list of all dependencies. Reverse searching is also possible. I needed something like this in Iraq, when I was upgrading by hand due to a lack of internet connection for my laptop.
Interestingly, Synaptic has grown a script-maker for offline package changes. It generates a script that you use on a connected machine to download the right packages. I could have used that, too...
Now they are merely of academic interest - unless I go back.
February 29, 2008: Trying to limit myself to 30 minutes per session at Ubuntu Brainstorm. Reading the silly ideas (and the few really good ones), and responding to many. So many are already implemented! Many people want to bloat up the distro, others to pare it down to the bone. Very geeky fun.
February 29, 2008: Friday afternoons I go to the store with the kids. Can't get much done, but I try.
Test call from store Windows PC to the store ATA next to it using Gizmo Project. Call connected. Inconclusive - no mic on the PC, and it's inbound calls that are the problem.
Test all from the ATA to an 800 number (free). Successful two-way conversation. Since it's inbound calls that are the problem, it's likely a router setting issue. I didn't get time to poke at the router (darn).
Test calls from PC to Mac and Mac to PC using Skype. Mac never acknowledged inbound calls, but PC did. Mac never updated PC's online status. Successful connection from Mac to PC only after restarting the Mac's Skype. Couldn't test voice (no mic on PC), but both were behind the same router. Result: Mac's Skype seems to have a problem. Need to check Skype support for Mac.
February 28, 2008: Two failed test calls.
Test call from laptop to store ATA using Gizmo Project. Phone rang, picked up. She couldn't hear be, but I could hear her beautifully. Likely firewall issue at store.
Test call from laptop to her Mac using Skype. Her Skype never rang. She didn't see my status as 'online'. Hmmm....
February 28, 2008: Success! A couple months ago I submitted a bug. Today they confirmed it. (I made a good report)
When installing the package netatalk 2.0.3-6ubuntu1 on Ubuntu 7.10, the following errors occur:
hostname: Unknown host invoke-rc.d: initscript netatalk, action "stop" failed. dpkg: warning - old pre-removal script returned error exit status 1 dpkg - trying script from the new package instead ... hostname: Unknown host invoke-rc.d: initscript netatalk, action "stop" failed. dpkg: error processing /var/cache/apt/archives/netatalk_2.0.3-6ubuntu1_i386.deb (--unpack): subprocess new pre-removal script returned error exit status 1 hostname: Unknown host invoke-rc.d: initscript netatalk, action "start" failed. dpkg: error while cleaning up: subprocess post-installation script returned error exit status 1 Errors were encountered while processing: /var/cache/apt/archives/netatalk_2.0.3-6ubuntu1_i386.deb E: Sub-process /usr/bin/dpkg returned an error code (1) A package failed to install. Trying to recover: dpkg: error processing netatalk (--configure): Package is in a very bad inconsistent state - you should reinstall it before attempting configuration. Errors were encountered while processing: netatalk Press return to continue.
How to fix it:
ATALK_NAME=`/bin/hostname --short`ATALK_NAME=`/bin/hostname`ATALK_NAME=`/bin/hostname --short`ATALK_NAME=`/bin/hostname`February 27, 2008: Every time I login to my Ubuntu 7.10 laptop, I get the 'happy login' music and the screen begins to populate with my desktop.
Then it vanishes (before I can click on anything), and services-admin prompts me for my password. Whether I enter the password or simply cancel, the system thinks for a moment, then brings up the network and brings back the desktop.
The only difference I've noticed is that CUPS seems to be active only when I've entered my password, and isn't if I cancelled instead. If all it's starting is CUPS, then I don't care if services-admin starts or not; I can start it manually. I'm annoyed by services-admin prompting me.
Result: Nothing in bugs, nothing in forums. Left a post at www.ubuntu-forums.com to see if anyone can help.
February 27, 2008:
Next step: Check the router at the store.
February 27, 2008: Success! Every time I boot Linux, one of the startup messages is intel_rng: FWH not detected. Today I fixed it!
The item shows up in /var/log/dmesg as Feb 27 06:28:03 ian's_computer kernel: [ 15.128000] intel_rng: FWH not detected
It turns out to have a simple explanation, and suggested solution is to 'turn off' the kernel module.
I used sudo gedit /etc/modprobe.d/blacklist to edit the blacklist file as root. I added the following at the bottom of the file:
# prevents minor boot error 'intel_rng: FWH not detected' blacklist intel_rng
Reboot, and success! The error message is gone.
February 26, 2008: Ekiga Bad - I double checked the Port Triggering on the home router - it's fine. But Ekiga still garbles and echoes my voice. Inbound audio is great. Not usable. Ekiga mailing list had a fellow with a similar problem in Oct 07 using Win XP, probably a driver issue. Might be here, too - audio, though it works, has always been a bit iffy on the Linux Toshiba.
Ekiga Good - Make calls from the command line using ekiga -c recipient@proxy. For example, the Gizmo echo service is ekiga -c sip:17474743246@proxy01.sipphone.com or ekiga -c sip:echo@proxy01.sipphone.com
Gizmo Bad - Several test calls, all disconnected instantly. Not usable. Opened SIPPhone ticket #YBE-375340.
Skype good - Test call to my awesome Brother-In-Law, Barrett, in Texas. He heard me clearly. Didn't have his mic so he couldn't talk back, but audio in has never been a problem...
February 25, 2008: Failure! We have an Analog Telephone Adapter (ATA) hooked up to the store phone. That way, it can receive both PSTN and Internet calls. The store SIP URL is sip:17476010543@proxy01.sipphone.com. Er, that's the store, and I'm usually not there, so please don't call it to chat...you'll just annoy my wife.
In the past, I've used this ATA (attached to Gizmo Project account 'kiwkak5678') to dial out from home and the store, so I know it works.
Yesterday I phoned it from home using Ekiga 2.0.11 for Linux (Ubuntu 7.10 on Toshiba A105-S4054) on my laptop (connection test only - no mic) - Success! The phone rang four times, the answering machine picked up, and I heard the answering machine message.
Today I tried a couple Ekiga tests on my laptop:
Support forum results: Ekiga has nothing at all about the echo echo echo echo. Gizmo claims most problems are really NAT/Firewall issues (never theirs).
Next Steps:
February 25, 2008: Success! Today I created and tested this page, plus the feedback webform.
Success stories are so rare....
February 25, 2008: For some reason, my CUPS under Ubuntu 7.10 refuses to print-to-pdf. I've tried everything I know (not much)...and probably broke a lot of stuff along the way.
But I found an easy way to do it from the command line.
cd Desktop)convert -density 300 -units PixelsPerInch scanned_file.tiff converted_file.ps
ps2pdf13 -sPAPERSIZE=letter converted_file.ps final_output_file.pdf
rm scanned_file.tiff converted_file.ps