« November 2010 | Main | January 2011 »

December 26, 2010

Headphone Burn In

For Christmas, one of the things I received was a new set of headphones for my iPod. They are Klipsch S4 headphones which Consumer Reports had rated highly and reviews on Amazon seemed pretty favorable as well. There was nothing really wrong with my Sennheiser CX300 headphones I've had for a few years, but I felt like maybe I could do better.


Some of the reviews on Amazon said that these headphones required a "burn in" period to sound good. I had heard about that with some types of headphones, so I did some research. It's one of those things that people don't seem to agree on or whether it is even real. It seems like it would be pretty easy to measure the performance of headphones if you had the right equipment, but I guess a lot of headphones now actually conform to the shape of the ear and use a tight fit to produce part of the sound. So maybe it is harder than I think. Anyway, I think it is really funny that even though there isn't much proof about burn in and what is effective, that there is a long page of instructions telling you how to do the best possible burn in of your headphones. It is posted at head-fi.org and referenced by a lot of different websites. You can actually get MP3's with sounds recorded that are supposed to maximize burn in.

When I got the headphones, I tried them out and they didn't sound all that great. So I left them plugged in while a playlist of normal music played at a little higher volume than I would typically listen to, but not as high as it would go. Some people recommend 40 hours of burn in, but I thought they were sounding better after only 15 minutes. I left them plugged in and would check back every now and then and over the next few hours it really did seem like the sound quality was improving. I let them run all night and then listened to them and they did sound very good, though not quite as much bass as I'm used to with the Sennheisers.

They are also very comfortable, almost like they aren't even there. One thing is they have a Y cord instead of the asymetric cord of the Sennheisers which I had learned to like because it lets you unplug the earbuds and hang them from around your neck if you need to just take them out for a second to listen to someone or something.

Notes, Part 3

After thinking about a new notes app some more and looking at a bunch of different notes apps, now I am thinking that syncing with Google Docs might not be so bad. In particular, NoteMaster is cheap (99 cents, but has a free version you can play around with that lets you sync 8 notes), and syncs only with one folder in Google Docs, so I can keep any other docs separate. With Google in the mix, I can import notes from text files and edit them online from pretty much anywhere.

Here are the ones I was looking at after searching for "notes" or "memos":

  1. 4Notes, $4.99, backs up to website
  2. ActiveNotes, $0.99, turns iPod into web server so you can edit notes on your computer
  3. Awesome Note, $3.99, syncs Google docs, but more geared towards to-dos
  4. BigNotes, $0.99, has password protection
  5. DigiNotes, $1.99, uses DropBox for notes
  6. MemoBook, $1.99, this is the one I had been using
  7. Memos, $7.99, syncs Google docs
  8. Memos, $0.99, really just a bulletin board for sticky notes
  9. mNotes, free, doesn't do categories
  10. Moes Notes, $2.99, more geared towards audio notes with GPS tagging
  11. MyNotes, $0.99, support website is a parked domain
  12. Note Board, $0.99, another bulletin board for sticky notes
  13. Note Me, free, can't import or back up notes
  14. NoteLife, $4.99, syncs with SOHO notes, audio, video, buggy
  15. NoteMaster, $0.99, syncs Google Docs
  16. Notes, $1.99, freehand doodles or notes
  17. Notes Secure, $0.99, password protected notes
  18. Notes+, $1.99, syncs to computer, but can't import notes
  19. Notespark, $4.99, syncs to a website, can import notes
  20. Notsu, $3.99, does checklists, can e-mail notes to people
  21. SimpleNote, $4.99, syncs with website and desktop, free version has ads
  22. Springpad, "free", the cost is they push "offers" to you
  23. Sticky Notes Pro, $0.99, puts sticky notes on the lock screen
  24. TikiNotes, free, has a alternate keyboard that I didn't think was effective
  25. WriteRoom, $4.99, syncs with WriteRoom.ws (on Google?)

Anyway, NoteMaster lets me password protect any folder of notes that I want which is good because that means I only have to get involved with passwords if I open particular notes, not all the time. And while the app always opens where I was last, if I am in a protected folder or note, the app doesn't re-open there.

I went ahead and wrote a routine in Access that will save the notes archive I imported from MemoBook to individual text files. Also the advantage of Google is that it won't likely go out of business like a third-party website might and is less likely to start charging money or sell my information (or have it stolen). Also there are a few apps that sync with Google, so it would also give me the ability to switch to a different notes program if this one goes bad or a better one comes along.

NoteMaster is also huge: 18 MB. But it does let me do some fancier formatting, add pictures, headers, backgrounds, etc. I don't know that I will use any of that, but I can if I need to.

The downside is that only Google Docs are synced so all of the notes would have to be converted. I can upload text files to Google, but they wouldn't be synced unless they are converted to Google Doc format. As long as I don't get to carried away with formatting, I can even export Google Docs to text format (or Word and others) as a zipped archive, so I can do all of them at once. That's pretty good.

I played around with it just now. If I upload files with a .txt extension they can either stay as text files (and apparently can't be edited) or can be converted to Google Doc format. If there is no extension on the file, then Google won't let me see the contents or edit it, but I can download it if I want. Even if I say Google can convert it when uploading it, Google doesn't try because there is no extension on the file. Since the title of the notes is the file name, all of my note titles will have to end with .txt. I can rename them by hand over time, but that's kind of a bummer.

December 25, 2010

Notes, Part 2

When I first got my iPod Touch, I looked around for a program that could hold all of my notes from my Palm. Apple's built-in Notes app wouldn't do categories and only had magic marker font (they got rid of that in a recent iOS update, but categories are still out). So it had to be able to import the 400+ notes, categorize them (or put them in folders), and then sync with my computer so they could be backed up. I wound up paying $1.99 for MemoBook which did all of that and not much else, though actually one neat thing is it lets you assign multiple categories to a note. This was pretty helpful because I assigned a category "Most Used" to the handful of notes I use the most and they are easier to get to that way.

MemoBook was updated once for some kind of stability issue, but otherwise doesn't seem to be being developed actively. And it is a little clunky. If you want to edit a note, you have to go the note and then click Edit. When you are done, you have to click Save. That doesn't seem like a big deal, but what's the point? It's not that easy to accidentally edit something on an iPod (and if you forget to click Save before leaving the app, the change is lost). Also, no matter what note you are in when you leave the program, it always opens back up in the list of categories. It would be better to open in that note or in the category where you were last (like the Palm did). Most of my notes are in the category Personal, so that is an extra step to get to a note. And part of the whole problem with the iPod is there are already a lot of steps and swipes to get anything done. So I turn on the iPod, swipe to unlock it, swipe to get to the correct screen of apps, and then click the MemoBook app, wait a second or two for it to start, click my category, click the note I want, click edit, make the change, and click save.

Also, although I can save my notes back to an archive on my computer, I can't really do anything with the notes on my computer. With the Palm, there was a program on your computer, Palm Desktop, where you could edit notes and they would be synched back to the Palm. There is a program called EverNote that some people like that will sync with a website and then you can edit files through the website. The EverNote app is free, but there is a yearly fee of $45 to use the EverNote web account (!!!). So that's out. Then there are Google docs, but I don't want to get all into that. Google docs are more complicated than I really want to deal with. For complicated docs I can sync with my MS Office docs on my computer via DocsToGo, which also has to be manually synched because Apple doesn't want to share iTunes with developers.

Anyway, I started to look at SimpleNote which is kind of like EverNote in that it syncs with a website. The free version has ads or you can pay $5 to get rid of the ads on the iPod, $12 per year to get rid of them on the website too. It allows you to add "tags" to notes which are essentially categories. I downloaded and tried it out and it seemed pretty good. The program opens in the last note you were in, which is good. You can assign multiple tags to a note, too.

So I started to look into how I would get the notes out of MemoBook and in to SimpleNote. There is a free third-party desktop app for Simplenote called ResophNotes that lets you import notes from an Outlook CSV archive, from individual text files, or from one big text file with some kind of separator between the notes. Then it syncs with SimpleNote on the web and with the iPod.

I'd never thought about how I would get my notes back out of MemoBook, but when I would back them up it would give me a CSV file (comma separated values, in a text file). By default this type of file is associated with Microsoft Excel, so I open the file in Excel and did not get the results I wanted. Every time there was a hard return in a note, Excel thought it was a new record. The CSV format deals with hard returns and commas by putting text fields in quotation marks, so Excel should know better (then if you have quotation marks, it doubles them up to know they are not the end of the text field). So that was no good.

MemoBook exports a note with at least five fields: 1. title, 2. note, 3. created date, 4. last modified date, and 5. the category. However it has multiple categories, it just keeps adding fields to that record.

Next I thought I could get rid of all the hard returns by opening the file in a text editor and swapping hard returns for xxx so that a note would all be on one long line. But maybe the commas were messing it up, so it still didn't work right. I even tried converting the CSV file to tab-separated by replacing "," with a tab (the first quotation mark being the end of a field, then a comma to separate the next field and then a quotation mark for the start of the next field). Separating records would be a quotation mark, then a hard return, then another quotation mark. But first I had to get rid of the tabs already in the file by replacing them with ttt and also finding all the converted quotation marks that were double-quotes. Anyway, this didn't work either and I was also crashing my text editor (Homesite) which couldn't deal with so much text and so many find and replace actions (it would say out of memory) so I wound up doing some of this in Microsoft Word then copy and pasting it back into Homesite since I don't trust Word to save something as a plain text file.

It still wouldn't go into Excel, so I thought maybe I could get it into Microsoft Access. And I was able to import the tab separated values file that way, though it didn't like the format of the dates from Memobook, so those were lost (no big deal really). But I still had all the ttt and xxx snippets in there representing the tabs and returns.

Then I got the idea that maybe Access could just import MemoBook's original CSV file and do better than Excel. Now we're talking! This worked really well except that I got some weird stray character at the end of the title of the notes. Really the title of the note is just the first line of the note, which is how I had it on the Palm, but I had to convert it to an actual title field for MemoBook. But some of my notes are just one line, so they were kind of funny to deal with.

So now the notes are in database form, but they still aren't in any kind of form that SimpleNote or ResophNotes can deal with. I was thinking I could write a VBA routine in Access that would write records to a text file, but hoped for a solution that wouldn't require any programming. So I went to Outlook to see what kind of CSV format it uses for notes. A note in Outlook's file has 5 fields too, but they are different: 1. Note body, 2. Categories, 3. Note Color (a number; 3 is the default of yellow), 4. Priority (default is "normal"), and 5. Sensitivity (default is "normal" again). Okay, so I can make an Access query that will combine the title and note body into one field (with a hard return separating them, which I have to do by combining a Chr(10) and Chr(13) between the two fields), then the category, and the default values for the other 3 fields. Then I can export this to a CSV file and SimpleNote should see that as the same as an Outlook file. And this actually worked. All the notes were imported no problem. But not the categories. To test the Outlook import method, I made a couple of notes in Outlook and assigned categories, created a CSV file, and imported that and the categories were lost even with a file generated by Outlook. Ugh.

Then I had to find a way to delete all of those uncategorized notes. You can't delete them all at once. So I found out that Resoph notes stores the notes in an XML file in Application Settings (or something like that) in a .resphnotes folder. Meanwhile you will want to turn off the automatic sync to the web or you won't be getting rid of them afterall.

You can assign a tag in SimpleNote if you want, but only one note at a time. I thought maybe I could import one category at a time and then take all uncategorized notes (the ones I just imported) and assign them to the category I wanted, but I don't think you can do that either. Nor can you highlight more than one note at a time. So it would pretty much be a process of opening each note, assigning a tag, saving, opening another note, assigning a tag, etc. I don't know if that is something I want to do, though I guess I could probably get rid of a lot of the notes I don't use anymore.

SimpleNote is good because it automatically syncs to the web. And the web and desktop sync whenever I open the desktop program. So it is definitely a step up from MemoBook, but I think for now I will stay where I am. It is amazing to me that there are so many apps and none of them do the very simple things I want for a reasonable price.

December 23, 2010

iPod Videos

When I first ripped all of my CD's to MP3 files, I found out that if the music continued all the way to the end of the song, it would stutter at the end of the MP3. I got rid of that computer and my new one didn't have the stutter. But for some reason with some CD's it would put skips in the music. At first I thought the CD's must be damaged, but if I ripped the same CD on my newer laptop, I didn't have the problem.

Then when I was trying to re-organize all my MP3's, I wound up erasing a bunch of them. So I spent a while a few months ago re-ripping all of my CD's on my laptop. Then I would sync my 4G iPod nano with my laptop. But when I got the iPod touch, I wanted to sync with my desktop computer. However I still didn't have all of the music moved over and in fact I had never even finished ripping all of the CD's in my collection. So the first thing I had to do was find out which CD's were on the iPod and which ones were not. The only way to do that was to go through one-by-one on my iPod and through my alphabetized CD's. But I alphabetized my CD's by last name or group name whereas the iPod alphabetizes by first name or group name. Plus they put numbers at the end insead of the beginning (UNIX!) and I have all of my soundtracks under the artist "Soundtrack" whereas on my shelf they are under the title of the movie. So I reorganized all of the CD's to match the iPod which took a while (about 300 CD's). Anyway, I wasn't missing but a handful of CD's on the iPod as it turns out. So I got all of that sorted out and got rid of the MP3's I had ripped from Mom's CD's when I was synching the iPod she uses (my 3G nano) with my desktop. So that was a lot better and I won't really miss the Beegie Adair Trio or Celtic Woman.

I also have some episodes of TV shows I have ripped from my DVD's (it is legal to do this if you record the video stream from the DVD rather than rip the show by breaking the DVD's encryption). I ripped them as AVI files when I was watching them on my Palm, but the iPod can't play those files. Therefore I had to convert them first. But once I imported them into iTunes, they were all put in Movies. That was okay when I just had a few, but I finished converting all of the files and had enough room to just go ahead and put all of my remaining episodes (about 80 episodes of things like Everybody Loves Raymond, Battlestar Galactica, Seinfeld, and Get Smart). But I would like them to be better organized and it seems like they should be put under TV Shows instead of Movies, but I couldn't figure out how to do this in iTunes. It would also be good to have them ordered by season and episode number (I did this originally by just using the file name, like "Seinfeld 9-04 The Peephole.avi" for the 4th episode of the 9th season of Seinfeld, call "The Peephole").

This was so much harder than it needed to be. In iTunes you can do Get Info on any song or video and modify it. And if you highlight an entire Season, at least you can change all of them to Season 2 at once. But with a video, there is still a bunch of music-related information like Artist, Album Name, etc. in addition to another tab full of fields with things like Season and Episode number. If you don't do it just right, then none of it sorts correctly on the iPod even though it might look okay in iTunes. Eventually I got it all in there right, but it took a few times and each time I had to go in and add a piece of information to 80 different files, then sync with my iPod meaning it had to re-load 16 GB of files onto the iPod which takes a really long time (seems silly to have re-load the episodes when all I thought I was doing was changing values in a database). It was agonizing, but it actually worked out really nicely in the end. I found some very helpful instructions at iLounge. Those instructions are like a small book and give you an idea of just how complicated the process is. I think Apple would rather you buy the episodes from them and the information will already be stored in the files. Of course part of the problem is iTunes won't help you import a DVD like they do with CD's because DVD's have encryption that is illegal to break whereas as CD's do not (has nothing to do with copyright law since making personal copies of disks you have bought is legal).

Remote Control Close Call

Last night I was have a refreshing drink of grape juice, grapefruit juice, and water when Mom called. I was on the sofa with my drink at my side and my remote control on my lap and dogs on either side of me. So I reached in my right pocket to get the phone and the remote slides to the left and went right into my refreshing drink. There was only about an inch of juice left, but I guess that was enough because the remote didn't work anymore. That's bad. I got this remote to replace my previous universal remote in March 2008 and they have since stopped making them. Well, they at least they don't make them the same way and then new ones won't allow me to use the cable I bought to hook the remote up to my computer (I wrote about this in JP1 still kicking).

So grape juice is dripping out of the bottom of the remote and I'm trying to help Mom with her wireless network so Kelly and Gabriele can get on the internet while they are spending the night at her house. I take the batteries out in case there is some kind of short and try to continue to coax out any juice into the bathtub rather than drip purple juice on to anything else. It just keeps leaking so I figure the only thing to do is try to take it apart and get all the juice wiped up. There were a couple of screws to take out and then I used my plastic pry tools I got when I replaced the battery in my old iPod. Those things work great for unsnapping plastic devices like this. Then I had to remove 4 more little screws and the whole thing came apart into 5 pieces: the front face, the rubber mat of buttons (fortunately each button is not an individual part), a plastic board with holes where each button goes, the circuit board, and the back cover. The rubber mat of buttons was pretty dirty, so I cleaned that off and then wiped down the other parts to get all of the grape juice off. The front face is hard to clean because the buttons stick out, but without the buttons it was easy to get all the grime of the last couple of years off of it. I put it all back together, put the batteries back in (which I had charging in case they had discharged due to a short) and I got nothing. There probably aren't too many liquids that conduct electricity better than juice. Oh well, I still have my old remote with some buttons that don't work, so I put the batteries in it and it worked okay except I had to fast forward through commercials instead of skip ahead 30 seconds since that button doesn't work anymore. I thought maybe if I cleaned that remote off the buttons would work again, so I took it apart the same way and cleaned it out, but those buttons still didn't work (or didn't seem to anyway).

At some point I decided to go back to the juiced remote, tested it, took it apart again, put it back together, tested it again, and Hey! it works! The new one is better because it has backlighting and all the buttons work, so I'm glad to have it back. And now it's even nice and clean.

Here's the Cinema7 remote I mention in the comments later:


December 16, 2010

20 Years of Bridges

Twenty years ago today I started work designing bridges!


December 14, 2010

Angry Cake

I saw two articles in today's paper about iPhone apps. One was about a Smurfs game that is free to download but you can buy add-ons from within the game and parents are getting billed hundreds of dollars when their kids buy Smurfberries from within the game (they're not even real Smurfberries, they only exist within the game).

The second was about Angry Birds, which I have written about before. It is an iOS phenomenon, loved by all. It turns out the article was actually written for the New York Times and can be found here. I had never heard of Angry Birds until I got my iPod. Michael and Fiona like to play it when I visit them. Apparently dressing up as an angry bird was a popular Halloween costume (certainly more popular than last year). One of the things mentioned in the article is an Angry Birds birthday cake requested by a kid whose mother then spent 80 hours constructing. But it is great: picture.

December 11, 2010

Friends of Dekalb Animals

On the community bulletin board I started, a person wrote in and asked for help for Friends of Dekalb Animals. This organization is independent of the Dekalb Animal Services but helps transport animals from there to the northeastern US where it is easier to find homes for dogs. It is very expensive to transport a dog plus some veterinary services are needed, but it basically saves the dogs life.

Anyway, they are doing a thing through Citgo right now called Fueling Good hoping to get a $2500 gas card to help them out. People visit Citgo's website and vote for Friends of Dekalb Animals. You can enter every day and every time you vote you can then play an instant win matching game where you could win $25 in gas.

Once you have signed up, you can click Cast Your Vote on the upper right of the link above. Then enter your e-mail address. Then do a search by entering "dekalb" and click on Friends of Dekalb Animals. Then choose to vote for them and you can play the matching game. It doesn't cost anything and maybe it will help them out. You can vote every day through January 4.

December 4, 2010

Sortable Wiki Tables

Today I was reading an old comment from someone who had tried to update the CPF wiki with a table of flashlights and what kinds of batteries they use. To me this is something of fairly limited value because there are hundreds, if not thousands, of flashlights. And keeping a list up-to-date would be a lot of work. Plus I think most doing research on lights will know what their options are.

But the table this guy was trying to put in (he was stopped by the moderator for some reason) was pretty interesting. It lets you click on the headings of the table to sort by that column. I didn't realize such a thing existed, but it is pretty neat. Anyway, the guy had posted a few rows of the code he had written, so I made a new entry here to see how it works. It puts a funky symbol in the heading that looks kind of like an elevator Door Close button (><). Then you click to sort by that column, which then toggles for ascending and descending. Pretty neat. And while there are all kinds of things that Wikipedia can do through add-on templates, the sortable table is built-in to the default installation of MediaWiki.

I added in a row of my own, but it's kind of a pain writing Wiki tables (though easier than in HTML). If I ever really develop this page, I think I would make an Excel spreadsheet and then export from Excel to Wiki using this online tool.

December 1, 2010

Wiki Customization

The Flashlight Wiki that I set up recently is doing pretty well so far (though it isn't showing up in my webserver statistics so I don't know how many visitors I'm getting; well, it shows a total on the wiki page). But I have made a lot of changes to the default installation in order to get things the way I want them. So I though I would make a record of that in case I have to reinstall from scratch.

Things done in LocalSettings.php file:

Change path to new 135x135 logo that I made (from FAQ):

$wgLogo = "http://igirder.com/led.png";

Put in new line for favicon path (from FAQ):

$wgFavicon = "http://flashlight-wiki.com/backup/favicon.ico";

Restrict edits to registered users who have been confirmed by the admin (from FAQ):
// Prevent anonymous users from editing
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createtalk'] = false;

// Prevent registered, non-confirmed users from editing (from FAQ):
$wgGroupPermissions['user' ]['move'] = false;
$wgGroupPermissions['user' ]['edit'] = false;
$wgGroupPermissions['user' ]['createpage'] = false;
$wgGroupPermissions['user' ]['createtalk'] = false;
$wgGroupPermissions['user' ]['upload'] = false;
$wgGroupPermissions['user' ]['reupload'] = false;
$wgGroupPermissions['user' ]['reupload-shared'] = false;
$wgGroupPermissions['user' ]['minoredit'] = false;
$wgGroupPermissions['user' ]['delete'] = false;

// Allow confirmed users to edit
$wgGroupPermissions['confirmed' ]['move'] = true; // Only add this line if you want all users to be able to move
$wgGroupPermissions['confirmed' ]['edit'] = true;
$wgGroupPermissions['confirmed' ]['createpage'] = true;
$wgGroupPermissions['confirmed' ]['createtalk'] = true;
$wgGroupPermissions['confirmed' ]['upload'] = true;
$wgGroupPermissions['confirmed' ]['reupload'] = true;
$wgGroupPermissions['confirmed' ]['reupload-shared'] = true;
$wgGroupPermissions['confirmed' ]['minoredit'] = true;
$wgGroupPermissions['confirmed' ]['delete'] = true;

Enabled image uploads by making this statement true:

$wgEnableUploads = true;

Added a line to allow the wiki to generate thumbnails.

$wgMaxShellMemory = 524288;

Added a line to run a meta tag extension (also needed to add the meta.php file to the Extensions folder). Lets me include a meta tag for the main page description, but doesn't seem to work for the page title (wiki uses TITLE tag anyway, not META):


Cached pages for quicker rendering (only does this for unregistered visitors, but I guess that would be most of the traffic).

$wgUseFileCache = true; /* default: false */
$wgFileCacheDirectory = "$IP/cache";
$wgShowIPinHeader = false;

When setting up the Wiki originally, I could pick a type of license, but picked none. To add a Creative Commons license, I configured these lines as follows (and put a logo image in my backup folder):

# $wgEnableCreativeCommonsRdf = true;
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "http://creativecommons.org/licenses/by-nc-sa/3.0/";
$wgRightsText = "a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License";
$wgRightsIcon = "http://flashlight-wiki.com/backup/creative-commons-icon.png";

I wanted to be able to do footnotes like they do in Wikipedia, so I had to add the Cite extension by downloading a compressed file, putting it in my extensions folder, and extracting it. Then I had to add this line to the end of localsettings:


I decided to add some AdSense ads to the page just to see if I get any revenue. There is a MediaWiki extension set up for it, so I unzipped that in the Extensions folder. I also needed to set up a new ad in AdSense that was 120x240. This generated some code for the ad, but I only needed a few key parts of the code, adding the following to localsettings.php. The last line is an option that hides ads from registered users, but I'd like to see what ads are showing up, so it is commented out. The instructions said to make a change to main.css, but I didn't do that (couldn't find main.css at first, but it is in skins/monobook) and it seems to work fine:

require_once( "$IP/extensions/GoogleAdSense/GoogleAdSense.php" );
$wgGoogleAdSenseClient = 'ca-pub-8914738878891900';
$wgGoogleAdSenseSlot = '2337837216';
$wgGoogleAdSenseID = 'flashlight';
// Show the AdSense box only for anonymous users
#$wgGoogleAdSenseAnonOnly = true;

I wanted to have some kind of filter to keep bots from registering, so I installed the extensions ConfirmEdit and ASIRRA, adding the following lines to the end of the file (also modified ConfirmEdit.php to act only for new user registrations):

require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
require_once( "$IP/extensions/ConfirmEdit/Asirra.php");
$wgCaptchaClass = 'Asirra';

Once I prevented bots from registering, I wanted to delete the bots that had signed up already, but you aren't supposed to just delete users, so instead you can merge the users and then delete them (this probably matters more if users had made any edits, but the bots were never confirmed, still better safe than sorry). So I downloaded and installed the User Merge and Delete Extension, adding the following lines to localsettings, and then commenting them out once I had merged everyone.

# require_once( "$IP/extensions/UserMerge/UserMerge.php" );
# $wgGroupPermissions['bureaucrat']['usermerge'] = true;

Lastly, I had to add these two lines to allow short URL's (using unrecommended method (also had to modify .htaccess to make this work, see next section):

$wgArticlePath = "/$1";
$wgUsePathInfo = false;

Modifications to .htaccess file

First, when using an add-on domain like this, there are a lot of ways to see the web pages, and I only want people to be able to see them as http://flashlight-wiki.com/stuff

But since it is a subdomain *and* and add-on domain, people could get to by seeing the subfolder on igirder http://igirder.com/flashlight-wiki/stuff as well as http://flashlight-wiki.igirder.com/stuff, so these lines in my .htaccess file redirect both of those (code from here, but I adapted it to get rid of the www. prefix on the destination):

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?flashlight-wiki\.igirder\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^!www\.flashlight-wiki\.com [NC]
RewriteRule ^(.*)$ http://flashlight-wiki.com/$1 [R=301,L]

After that add these lines to redirect www.flashlight-wiki.com to flashlight-wiki.com (not sure what the second two lines do):

RewriteCond %{HTTP_HOST} ^www.flashlight-wiki.com [NC]
RewriteRule ^(.*)$ http://flashlight-wiki.com/$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^/flashlight-wiki($|/.*$)
RewriteRule ^.* http://flashlight-wiki.com%1 [R=301,L]

To get short URL's to work, I had to make the changes shown just above to localsettings, but I also had to add this to the .htaccess file (for Wiki's installed to root directory, which is what I did originally, not knowing any better). I did this after the stuff above so as to at least hopefully get people in close to the right format of URL before attempting any of this:

RewriteRule ^[^:]*\. - [L]
RewriteRule ^[^:]*\/ - [L]
RewriteRule ^/*$ /index.php?title=Main_Page [L,QSA]
RewriteRule ^(.+)$ /index.php?title=$1 [L,QSA]

Changes to Main.css

I thought it would be good to have internal links one color and external links the traditional blue (purple if a link has been visited before). Wiki also has red links for links to pages that don't exist yet (dark red if you've tried to visit the page before). So I thought green would be good, but it was kind of hard to do light green and dark green, so I did dark green for unvisited internal links and brown for visited links. To do this, I had to change the main.css file under the skins/monobook folder. Technically you aren't supposed to change main.css because it is part of the installation and this should be done with a separate css file. So if I upgrade or change the skin, I will have to make these changes again. There doesn't seem to be a special class for internal links, so instead I set the general links to green and brown and then set new external links to blue and purple. So I revised these existing lines to read:

a {
text-decoration: none;
/* was color: #002bb8; */
color: #006600; /* dark green */
background: none;
a:visited {
/* was color: #5a3696; */
color: #663300; /*brown*/

Then I added these lines after that:

:link.external {
color: #002bb8;
:link.external:visited {
color: #5a3696;

Somewhere I read that when changing link colors you should use :link instead of A because A can be anchors, not just links. While I was messing around with colors, I also made the background color an off white (light yellow) by modify this line near the top of main.css:

#content {
background: #ffffdd; /*was white*/

Prefs that I modified

Changed this to warn people registering that their accounts will not be activated until they send me an e-mail or PM at CPF or BLF.

Things I still want to do:

Enable multiple languages or at least a translation button. A guy from a Spanish language flashlight site said he would do some translating if I could enable other languages like Wikipedia does. The only way to get true multi-language support is to install a wiki for each language and have a "family" of wikis.

Change the title of the main page from Main Page - Flashlight Wiki to just Flashlight Wiki to maybe help search engine ranking. I think this will require changes to a javascript file (since it only applies to the Main Page, it has to be written as an IF statement), but I couldn't find out where to do that.

I'd like to set up support for equations, but my first try to do that wasn't successful (see comment of Jan. 2, 2011).

File size uploads are restricted to 2MB by default, but I'd like to change that to 500kb or smaller so people don't upload giant images. This might require tweaking server settings that I don't have access to though.