Sunday, February 24, 2008

subversion propset automation via auto-props

Found it:

Link: http://svnbook.red-bean.com/en/1.1/ch07.html#svn-ch-7-sect-1.3.2

config on my host currently reads:
...
enable-auto-props = yes

### Section for configuring automatic properties.
### The format of the entries is:
### file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?'). All entries which match will be applied to the file.
### Note that auto-props functionality must be enabled, which
### is typically done by setting the 'enable-auto-props' option.
[auto-props]
*.c = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.cpp = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.h = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.dsp = svn:eol-style=CRLF;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.dsw = svn:eol-style=CRLF;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.sh = svn:eol-style=native;svn:executable;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.txt = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg
Makefile = svn:eol-style=native;svn:keywords=Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
Notes:
  • Quotes in file "config" prevented subversion from updating property Id in my test file. For example, this does not work:
    • *.cpp = svn:eol-style=native;svn:keywords="Id ..."
  • Whitespace confuses subversion propset application. For example:
    • This works:
      • $Id$
      • $Id:$
    • This does not work (note the whitespace):
      • $Id : $
  • Steps I applied to test:
    • Add this example header to a dummy file (new.cpp):
      /*******************************************************************************
      * #
      * # Author:
      author
      * #
      * # $Id: $
      * #
      * # *****************************************************************************/
    • svn add new.cpp
      • A new.cpp
    • svn proplist --verbose new.cpp
      • Properties on 'new.cpp':
        svn:keywords : Id Date LastChangedDate HeadURL URL Author LastChangedBy Rev Revision
        svn:eol-style : native
    • svn commit new.cpp -m "Initial revision"
      • Replacing new.cpp
        Transmitting file data .
        Committed revision 11.
    • cat new.cpp
      • /*******************************************************************************
        * #
        * # Author: author
        * #
        * # $Id: new.cpp 11 2008-02-24 19:26:30Z user $
        * #
        * # *****************************************************************************/
      • Italicized items above represent environment-specific text

Friday, February 15, 2008

Level 77


It gets exponentially longer with each level. The top PQ'ers are up to level 92.

This is the only computer game I "play" these days.

Link: http://progressquest.com

Friday Cat Blogging


Kernels once rolled here;
Unpopped, mesmerizing sounds;
Put them back in, please?

Hired

I started a new full-time job on Monday, Feb 4.

Today, I learned there's a form I need to fill out if I want to bring an electric fan into work. A fan! My high hopes for bringing in a new development rig and a compact fridge have met with similar violent ends.

I'm glad I didn't ask before swapping out the stock Cool White fluorescent tubes for Full Spectrum tubes.

On the up side, I'm helping low-income kids, and that feels good.

Shadows

Walking across campus from my compiler class on Thursday, I was struck by the number of shadows I cast as I walked--seven by my count, and perhaps more. I've never noticed before, but it's so obvious. As I walked, they changed direction and opaqueness, as the angle and distance from the light sources changed. It was quiet, save the occasional vehicle, and I felt peaceful.

Tuesday, February 12, 2008

Sealable Plastic Badge Holder

The past two jobs I've worked at require badges (save the jokes, please) for identification.

Stock plastic badge holders provided with the badge open at the top to allow the RFID card to slide in. The unsealable opening at the top eventually lets in dust, dirt, and liquids. The badge ends up looking beat up after a year or two. Replacing the plastic holder helps, but it's a hassle.

It turns out there's a simple solution--purchase a pack of sealable badge holders from an office-supply store. For example, Office Depot, or intuitively enough, badgeholder.com.

Sunday, February 10, 2008

Canon MP160 + Wireless Multifunction Print Server

Wireless multifunction print servers have a few pitfalls--here's what I've been through.

I own a Canon Pixma MP160 multifunction USB 2.0 printer. Originally, I connected it to my laptop's docking station using a GigaWare four-port USB 2.0 hub and shared it on the network from my laptop. The downsides of this configuration:
  • Undocking the laptop removes the printer from the network.
  • Once undocked, other laptops can still print, but they have to have a separate printer driver installed for local rather than remote printing, and they obviously have to hoof it over to the printer.
  • Desktops that rely on the shared printer are out-of-luck.
Obviously a non-optimal solution. A wireless print server, theoretically, would mean all wireless-enabled desktops and laptops can print from wherever they are in the house.

The seed of this idea has been in my head for several months. An opportunity to remedy the situation presented itself while I was shopping at a local tech store two weeks ago. On impulse (in hindsight, a regrettable decision) I purchased a Linksys Wireless G print server. Getting home, I discovered in my ignorance that print server manufacturers typically break down print servers into two sets--those that support multifunction printers and those that don't. The Linksys Wireless G print server doesn't support multifunction printers. Above and beyond that limitation, the installation and configuration process of the Linksys Wireless G proved frustrating:
  • The print server web server crashes if you begin navigating from the home page. To avoid this bug, one has to start navigating the print server's web server from http://*ip*/ps_stat.htm. That's scary quality control.
  • Without knowing this trick, even though you set the local wireless SSID security key, it doesn't take--so it's even worse from the user's point of view, since they think they did everything right.
After researching this on the internet, I decided that I wasn't happy with the bugs and the loss of multifunction printing support for the price, and returned it.

Before I did that, I decided to research wireless multifunction print servers further. My local tech store sells print servers from Hawking, D-Link, Linksys, AirLink, and TrendWare. I ignored the multifunction version from Linksys and decided after reading reviews online that the D-Link Rangebooster G Multifunction print server represented the best bet. I knew from reading their web site that the Canon MP160 wasn't listed as supported under the FAQ, but I decided to take a risk since they only had reviewed HP and Epson. This represented my second learning opportunity.

Last night I hooked it up, and after a quick call to tech support (it needed a static IP to work), got it working. D-Link tech support confirmed that it doesn't work with the MP160 multifunction printer, however. Other than it's failure to work with DHCP, the D-Link seemed like a quality product.

I finally got the idea to just call Canon and ask them point-blank what works with their printers. It turns out that they sell a model called the Silex C-6700WG that works with the Canon printers. Unfortunately, it's $100. *sigh* I guess this is what is meant by vendor lock-in. I haven't decided whether or not to buy it, since in the future I'm hoping to upgrade to a color laser printer

So why does it seem so hard to get printing right for multifunction printers? The answer seems to be (from TrendNet's now defunct page):
Printers that host multiple functions, such as faxing and scanning, use different communication standards to complete respective tasks. Traditional print servers are unable to interface with multi-function printers due to the use of different communication standards within one device. The result is that many multi-function printers are not currently linked to a home or office network.
So there you have it--multifunction print servers need to be fluent in fax, scanner, copier and printer standards--and apparently the communication pipeline of printer-driver<->print-server<->printer is pretty fragile.

Saturday, February 09, 2008

1,415

My spam folder currently contains 1,415 spam e-mails, all received in the last 30 days.

On average:
  • 354 per week
  • 47 per day
  • 2 per hour
To get silly:
  • 0.033 per minute
  • 0.00055 per second
I'm curious how typical this is....

Saturday, February 02, 2008

24C3

Aw man, I missed the 24C3:

http://events.ccc.de/congress/2007/Main_Page

One of the highlights of the tech year.

Friday, February 01, 2008

Radio Songs

Heard on the radio:
Vacaville, CA-based Papa Roach's "...To Be Loved" from their 2006 album The Paramour Sessions on the Geffen Records label. Video.

Chamorro Pride

Saw this phrase on a license-plate frame yesterday on the way to class.

Apparently, the Chamorro are the indigenous people of the Mariana Islands, which include the American territory of Guam and the United States Commonwealth of the Northern Mariana Islands in Micronesia.