Monday, December 29, 2008

Disable automatic check out in Visual Studio 2005/2008

To disable automatic check out when editing files in Visual Studio (2005, 2008):

Go to Tools menu, select Options, expand Source Control.

Change the section called “Checked-in item behavior” for On Edit (and On Save) to whatever you want. It’s defaulted to Check-Out Automatically.

Friday, December 26, 2008

Water heater leak

Found a small pool of water at the base of my water heater Christmas eve and thought I'd have to buy a new water heater. That would have been a very expensive repair bill! Luckily, it turns out the leak is due to the inlet adapter pipes rusting out due to my water softener. I guess the salt that I used to use caused the galvanized pipe to leak. So water was being forced out through the pipe at the top as the tank filled up. I've been using potassium tablets instead of sodium for my softener now, but I guess the few years of using salt took it's toll already. Tough to find parts and plumbers during a holiday break like Christmas.

Update: Need to replace water heater due to internal tank corrosion. I'll need to make sure to inspect and/or replace the anode every 5 years or so to avoid this problem in the future.

Monday, December 15, 2008

Virtual PC resize hard drive partition

If you have a VPC install and need to expand your boot virtual drive, unfortunately, the only solution I'm aware of is using a commercial application.

However, there are two work-arounds:

1. The slow way, which is to create a 2nd, larger virtual hard drive, mount that, boot into the host, then using a ghosting software, ghost (image) your primary hard drive onto the new, larger drive. Then shutdown the OS, modify the setting so that the 2nd hard drive is now your primary boot drive and then remove the original hard drive.

2. The fast way, is to create a 2nd hard drive, boot into the OS, assuming a Windows XP guest, right-click on My Computer and select Manage, and go to the Disk Management. Right click on the new hard drive, select Change drive letter. Remove the drive letter. Click Ok. It should unmount the drive. Then click Change drive letter, Add, and check "Mount in the following empty NTFS folder." Create a folder on your C: drive and select that as the mount point for your 2nd drive. Done! If you're running a Linux guest, you should be able to setup the drive on a folder mount point as well (just Google for the instructions).

The 2nd option allows you to add hard drives as folders of your C: drive. This indirectly expands the available space in your VPC without having to modify the size of the original drive. This is useful if you need more storage for non-system files (ie. applications, data, etc.) This will work for any of the folders on your drive, including the Program Files folder, if needed. But the mount point should be empty. Otherwise, when the new hard drive is mounted, it'll "hide" the contents of the folder. But if you need to mount to an existing folder, just rename it first, create an empty folder with the same name, and then mount the hard drive to that folder.

Saturday, December 6, 2008

Excel Offset function

One thing I've noticed with beginning (and some advanced) financial analysts is that they either haven't been taught how to use the Offset formula or they're not clear what its usefulness is when creating models in Excel.

I use it all the time to create schedules that are dynamic and allows you to work with ranges based on some criteria.

The most common use for offset to me is to provide a way to get the annual total of some monthly range without hardcoding the range itself (ie. not using =sum(a1:a12)).

To create an annual schedule from a monthly schedule, in a new sheet, I first create a row that has the year in the columns B:xx (assume in row 1), where xx is the number of years. They should be numerical (ie. 1, 2, 3, etc.). Rather than type "Year 1", enter 1 into the cell and set the format to be custom. In the cell custom format, use the format: "Year" 0 (include the quote and notice the space between the close quote and the zero).

Then I set the row labels to point to the corresponding label in the monthly schedule (=MonthlySchedule!A2) starting in cell A2 of the annual sheet (It doesn't have to start in the same row, but you'll want to make sure each row label is relatively located in the same place as the first row label. You'll see why later).

Under year 1, for the first row of data, I place the formula as such:
=sum(offset(MonthlySchedule!$B2,0,(B$1-1)*12, 1, 12))

B2 represents the first row's first month data in the monthly schedule. B1 is the annual sheet's year 1 heading value.

Now you can copy that formula to every cell under each year for each row labeled. As long as the label rows in the annual sheet are in the same relative positions as in the monthly sheet, the data will be correct. Now you've just created an annual report without having to manually set each 12 month range! If you add more months, just copy the last column more years over! If you add more rows of monthly data, just copy the rows in the annual (making sure it corresponds to the monthly row's relative position).

What the offset function lets you do is to not only move your starting position of a range, but also how many rows and columns worth of data to return. And because it returns a range of data, summing the returned array is possible.

In this case, I want to move over 12 cells for every year, minus 1 (since in year 1, we don't want to shift over at all). Then I want 1 row, 12 columns worth of cells returned in an array. That array is summed and the result is the 12 month summation starting in month 1.

Other useful ways for Offset include using a drop-down to select a year for display, determining how many months or cells you want some calculation done on, etc.

I've used Offset in my models not only to create my annual schedule, but to display the total value of a trailing x month worth of finances, given a selected month, using drop-downs and offset into my monthly financial schedule. I've also created reports that show the yield on investment for any given year selected without having to predefine the results (I calculate it based on a schedule by using offset to span the selected amount of periods).

Offset is a very powerful and useful function for creating dynamic models where static formulas are used.

Thursday, October 9, 2008

Stock market: PAIN!

Note to self: trust your instincts. Remember for future events to take advantage of them.

Should have went all cash back in May when I "knew" the market would start falling again in June based on prior market corrections (2001).
Should have shorted financials when I knew Lehman was in trouble based on information about their Alt-A loans.
Should have took the small loss on my bad investments rather than "wait for a recovery" and take a large loss.
Should not have tried to time the bottom. Wait for the market to demonstrate a bottom. Better to miss the 10% on the way up than assume you're 10% from bottom and find out it's 30% or more!
Should have seen the financial crisis when the price of homes far outpaced wages and yet houses were still selling.
Should have seen the financial crisis when lenders were lending at below 1.0 DSCR based on future value!
Should have seen the financial crisis when the stock market went parabolic.
Should have seen the economic crisis when bubble economies started showing up.
Should have seen the economic crisis when there's too much or too little liquidity. 1929: no liquidity. 2003-2007: too much liquidity. 2008: no liquidity.

Excessive monetary supply in the market creates over-leverage in an effort to make capital work. Greed makes the capital work inefficiently, and an abundance of capital creates indifference to risk ("there's plenty more where that came from").

We're seeing a generation/market/political cycle. As they say, "history repeats itself", because the new generation thinks they're smarter than the old. I hope I'm wise enough to learn from the old, and not let hubris blind me to the truth or let greed minimize risk through justification.

Saturday, August 30, 2008

Found an inexpensive full-body "skin" protector

I found a place that sells full-body "skin" protectors for my MacBook and iPod Touch.

It's inexpensive compared to InvisibleShield and does a good job of covering up the entire device. It's cut to exact dimensions, so you have to align the pieces perfectly, which can be time consuming and a bit difficult. I messed up my MacBook install because I stretched it trying to apply the top piece. That caused the edges on the corners to overhang, so I had to trim it.

I screwed up my Touch install on the face also. I should have waited to let it dry out a bit before trying to fold the edges down, but got impatient and it folded onto itself. That caused the sticky side to touch, leaving the screen through that folded area distorted. Thankfully, BestSkinsEver sent me a replacement. So far, their service is very good and their price is much better than competitors.

I originally bought a plastic protector for the Touch from another vendor (PCMicrostore), but the rear protection was only the flat portion. The front was the entire glass area, but it was too thick because the pieces are made from hard plastic. You get an edge where the home button is, which was annoying. It cost me $4.99.

From BestSkinsEver, the Touch protector covers the entire back including the rounded edges and the entire front, including the beveled edge. It also protects the home button using a separate disk film that you place on top of the button. It cost me $7.99. A much better value!

The MacBook cover protects the top and edge, the bottom and edge, the battery separately, the palm rest which includes cut out areas for the top cover's notches, the touchpad area, and the single mouse button. All for $27! Compared to InvisibleShield, which costs $55, it's a steal also!

The skin is a stretchy thin film that's clear, but be careful not to get lint stuck on the adhesive side, or have it fold onto the adhesive side. That will ruin it. Use a mild soapy water solution to dip the pieces into before putting it on. Wet your fingers also before removing them from the paper backing. I put the whole sheet with film on paper backing into the soapy solution in the bathroom sink so that I can remove it easily. With enough solution on the pieces (not too wet, though), it should be easily applied and removed to adjust. It doesn't slide around as well due to the adhesive, so don't try to slide it. Lift and reposition. I did this in my bathroom with hot water in the tub to create a mini sauna. That should help with floating dust and lint.

Anyway, I highly recommend for full-protection skins. I plan to get it for my iPhone also.

UPDATE: I ordered the full body skin for my kid's new DS' (2 of them). Went on easily, now that I have practice, and looks great! My kid's old Advance SP were all scratched up from use so figured getting protective skins is a good thing. It covers the top as a single piece with the sides of the top protected, as well as the bottom, the battery cover, the Slot 2 face, the bottom sides, and both screens! Be aware which screen piece goes on which screen. They should fit just on the glass.

I just ordered another full body set for my Android G1 phone. As soon as I get that, I'll put up my review so I can take advantage of BestSkinsEver's promotion (refunding the cost for reviewing the G1 skin). I decided I'll wait on the iPhone since I already have my iPod Touch and don't like that the 3G doesn't have A2DP profile, a removable battery, nor any memory expansion slot. Hopefully the next revision will, at which point I'll probably get one.

Monday, May 19, 2008

To use fax with Cisco Voip

In order to use a fax system within the Cisco Voip setup (including call forwarding fax calls), you have to make sure the system can handle the fax signal without degrading or corrupting the signal.

For me, that means configuring the router to disable the Cisco fax routing.

voice service voip
fax protocol pass-through g711ulaw
modem passthrough nse codec g711ulaw

and configuring a dial-peer:

dial-peer voice 74 voip
destination-pattern 181[8-9]
modem passthrough nse codec g711ulaw
codec g711ulaw
fax rate disable
no vad

In addition, you have to set the network clock selection:

network-clock-select 1 T1 0/0/0

This is done to make sure the slip sec doesn't go above 0, which causes problems.

To view slip sec:
show controller T1

To clear the counter:
clear counter

Cisco untar direct to flash

To extract a tar file direct to flash, use the following command:

Router# archive tar /xtract source-url flash:/file-url

For example, to extract the contents of CME-locale-de_DE-4.0.2-2.0.tar from TFTP server to router flash memory, use this command:

Router# archive tar /xtract tftp:// flash:

Monday, April 7, 2008

Brother MFC-8840 Error 6A

A Brother MFC-8840D reported an Error 6A on the panel after a short power-outage that occurred. Calling Brother indicated that the error reflects that.

To clear the error, the procedure is as follows:
1. Turn off printer
2. Hold down MENU button on front panel and turn on power while continuing to hold.
3. Release button after 5 seconds (after the Please Wait message)
4. If error still occurs:
5. Press 91
6. If error still occurs:
7. Press 99

This should clear the error.

Thursday, March 27, 2008

Cisco Unity Express CLI Access

To connect to Cisco Unity Express (CUE) from CCME's command prompt, type the following command:

router# service-module service-engine 0/0 session

0/0 should match the interface location for the specific router.

Thursday, February 14, 2008

Waterfall Hurdles

To calculate the distribution of cashflow using a waterfall structure, the basic sequence is as follows:

Given the following waterfall structure:
Pref: 10% 90/10 split
Hurd 1: 13% 60/40
Hurd 2: 14% 50/50
Hurd 3: 15% 45/55
Over 15%: 40/60

You need to calculate a given period's interest for the equity unpaid for that period:
Pref: 10% * Unpaid Equity + 10% * Unpaid Pref if the pref is compounding

Unpaid Equity is the total equity of all investors.

There's two ways in Excel to do this. Use the following if you have multiple investment of capital initially over several periods.
Row 1: Previous period's unpaid Equity + new Equity contribution for this period
Row 2: 10% * Row 1
Row 3: 10% * Row 5
Row 4: Any distribution to pay down pref (negative value)
Row 5: Unpaid Pref = Sum of Rows 2 through 4

Here's a sample spreadsheet:
Sample Waterfall Spreadsheet (*)
To save a copy of the worksheet, click on the link and near the top of the worksheet, select "File -> Download as".

The other way is as follows. Use the following if you have one initial investment and no additional contributions as each contribution would require its own accumulated interest calculation.
If you know how long an investment has been held:
=(Unpaid_Equity * (1+pref_rate)^length_of_investment) - Unpaid_Equity

The above formula will return the amount of Pref due given the length of investment time passed.
The same formula is used for each of the hurdle rates.

This sequence would carry over multiple columns where each column represents another time period (month, year, etc.).

The above sequence for the Pref calculation is now applied for each of the hurdles.
Once this calculation is laid out, given a cash distribution, you can determine how the amounts are split according to the waterfall.

That is done in the following sequence:
Typical capital deal structure states return of pref first, then return of capital. This is applied only when there is sufficient cash to distribute at a capital event. If there is insufficient funds to pay both pref and capital, the net effect of paying the pref first is that the investor will simply get their return of capital (full or partial).

After the pref and capital to paid down, depending on whether the capital structure is pari passu or not, will determine the amount of remaining dollars to distribute. If the structure is pari passu, then all equity contributors get their pref and capital at the same time from the distribution. If the structure is not pari passu, then the agreement determines who gets paid first, then second, then third, etc. After all equity investors have their pref and capital paid down, the remaining amount of money is profit for distribution according to the hurdles 1 - x, however many x levels there may be in the terms.

The delta between levels (ie. pref and hurd 1, hurd 1 and hurd 2, etc.) is split according to the split terms for that hurdle level. For example, Pref is 10% and Hurd 1 is 13%. From the calculations done above for both these rates, you subtract the amount of Hurd 1 from Pref to determine the amount that is split 60% to primary investor, 40% to secondary investor.

In excel, you would calculate it as follows:
You can either return equity first, or pref. End consequence is the same.

The following would be applied once for the primary investor at the primary investor split rate, and the secondary investor would have the same formula with their split rate.

(Pref payment) Row 1: = max(0, min(pref, distributable_amount)
(Return Capital) Row 2: = max(0, min(unpaid_equity, distributable_amount - row1)
(Hurd 1 Payment) Row 3: = max(0, min(hurd_1 - pref, distributable_amount - row 1 - row 2)
(Hurd 2 Payment) Row 4: = max(0, min(hurd_2 - hurd_1, distributable_amount - row1_to_row3)
(Hurd 3 Payment) Row 5: = max(0, min(hurd_3 - hurd_2, distributable_amount - row1_to_row4)
(Remaining Cash) Row 6: = max(0, distributable_amount - row1_to_row5)

After the above calculation, split each row's amount by the split terms.

*Note: At the time of posting the sample worksheet on Google Doc's, the XIRR function in Google's spreadsheet had a problem dealing with ranges beyond those with values so you can either export to Excel or change the IRR formula to just the range with data.  If you export to Excel, you might have to change the XIRR formula's range as well, temporarily, and then change it back.

Tuesday, February 5, 2008

Excel tip: remove gaps in lists

Here's a formula to remove gaps in a range so that the list is contiguous:


W$53:W$69 is the destination range where the gapless list items will be placed. This formula would be copied to each cell within this defined range. Notice it is a collection (ie. hit ctrl-shift-return when accepting the cell formula).

A$53:A$69 is the source range of values you want to copy. In this example, I want to copy the data in this column if the test of column V on the same row is true. The value in column A of the row where V is true is copied to the same row in column W, or a zero value is put in column W of the same row if the test is false.

V$53:V$69 is the test range. If this test is true, then it's a cell that has value.

If you want to use a different source range to determine whether to include a row or not, change the bolded range (IF(V$53:V$69)<>0) to the condition you want to check. It has to have the same number of cells as the source and destination.

Notice also the absolute rows. If your data is in a row with multiple columns, set the column to absolute. This way, you can copy the formula to every cell within the range easily, since the same formula is used in each cell within the destination range.

Sunday, January 27, 2008

Cloverfield, the movie review

Well, after seeing the previews of Cloverfield, I thought it would be a worthwhile movie to watch. I rarely go out to see movies nowadays. The price of a movie ticket is unjustifiable for me because a lot of new movies are hit or miss. Why would I want to pay $10 to watch a movie that looks good in the previews, but end up sucking some way or another?

Anyway, I went and watch it thinking it would be a good scary movie. My review in two words: not-scary and nauseating. That's 4 words, but two thoughts. So, the word on the street was that the movie was a scary thriller. I'll tell you right now, Alien (or Aliens) it's not. I had no sense of fear or suspense at any point during the movie. The only thing I felt was nauseous. The Handycam recording with the constant hand shaking movement of the camera made me feel very sick, and ended up moving back a few rows (pretty much to the last row) from the optimal mid-section seats to try and quell that motion sickness feeling. I was hoping the hand motion would stop soon, but it never did. The only time it did was when the camera was dropped on the floor, at which point I felt relieved the moving stopped.

In terms of the plot, I just don't get it. Why is it that this "thing" seems to be everywhere the lead characters go? I would think it would move away from the fighting, but alas, the typical bad story writing continues with this movie. They could have made the movie a lot more interesting if it was filmed normally too. It felt like any First Person Shooter (FPS) intro that's come out since Half-Life, where you're watching from the first person perspective an event occurring, which obviously was the intent of the director. But unless you play FPS' and enjoy that type of cinematography, you'll not only feel sick, but distracted because it just seems too hard to believe the story.

Hopefully, I didn't give away any spoilers, but my recommendation on this movie is if you enjoy playing FPS games and have a strong stomach, enjoy it as if it was a really long intro to a FPS game. Otherwise, I recommend you skip it, unless you like that type of movie. If so, you might consider taking some dramamine beforehand.

Roomba 570 ordered (and returned)!

Well, after getting tired of cleaning up the floor from crumbs and other tiny particles from the kids, I decided to order the Roomba 570 in the hopes that it'll help keep the floor clean. I'm tired of vacuuming every few days, having to pull it out, plug it in, clean, then put it all away again. But I really hate walking barefoot onto a crumb or piece of food dropped on the floor!

I decided to buy it from Hammacher for the lifetime warranty. It was about $50 cheaper on Amazon, but for that price, I think the lifetime warranty will be worth it, especially for a vacuum cleaner that'll probably run almost every day, unless it's too noisy. I'm hoping to have it clean in the early morning or middle of the night, depending on how loud it is and how long it takes to clean the rooms.

Hope it works out, or it'll be another vacuum cleaner I've bought that won't get used much. I'm still looking for that perfect floor cleaner with minimal work!


I returned the Roomba. After a couple of days using it, I realized it's not a vacuum cleaner, but rather a "robotic" sweeper. I say "robotic" because the default program isn't very smart. I'd say it's more like a rat in a maze. It takes a long time to clean an area, you need virtual walls to keep it within a room before moving to the next, and it doesn't pick up materials very well. The sweeper gets lint and sheddings stuck on the bristles, and instead of sucking it up, it just gets stuck and if it runs over something else, the stuck lint just comes off on the floor. Since it didn't do a very good job of cleaning the floor as I had hoped, I decided it wasn't even worth keeping.

Saturday, January 26, 2008

Exchange 2007 to 2003 mailbox move failing

Tried to move to Exchange 2007, but web access doesn't work using the Exchange virtual directory. Not thinking ahead, I already started to move some mailboxes over from 2003 to 2007 before I had done a backup and such. This always leads to trouble for me. When the Exchange OWA virtual directory wouldn't work, I decided to wait to migrate, which meant I'd have to move back those mailboxes I already moved. Unfortunately, as luck would have it, moving the boss' mailbox back kept failing! His was the only one too. Couldn't understand why it was failing during the move so I was desperate trying to figure out how to move it back so his ActiveSync would work again.

Turns out having Outlook open was causing the failure. Maybe it's because he's running Vista, but closing Outlook allowed the move to succeed. I assumed Exchange would take the mailbox offline before doing the move, but I guess it doesn't.

Tuesday, January 22, 2008

Roomba Deal

I've wanted to get a Roomba vacuum cleaner for a while now, but just don't want to spent the money after having bought a Miele canister vac. I'll eventually get one, but not right now. When I do, get it from here:

Hammacher Roomba Deal

They have lifetime warranty on their products that they sell. Roomba normally only comes with 1 year warranty, which I think sucks for a vacuum cleaner.

Is the lifetime warranty worth the $130-$160 premium? Maybe not. I'll have to decide that when the time comes.

WAN data optimization

I just read about a product that helps optimize WAN data so that site-to-site communications is reduced or sped up, saving money and time.


If/when the need arises, I'll have to look into their product line.

Saturday, January 19, 2008

Jusched.exe doesn't quit in VM

I have a Windows VM and every time I shutdown, the application jusched.exe doesn't quit. I have to end the process to continue the shutdown. Turns out, jusched.exe is the Java Update check scheduler. I found a link that I thought was a smart way to get rid of that program from running in the background, yet keeping the update checker checking.

Java Updater via Task Scheduler

Stop the Java update checker from checking via the Java control panel.

Then create a Windows scheduled task that runs the jucheck.exe update checker every month. That way, the system task scheduler, which has to run, won't waste system resources, but you still can check for updates when you want it to.

This setup also got rid of the hanging jusched.exe problem when shutting down my VM.

Friday, January 18, 2008

A computer that follows you throughout your house!

With multiple computers in my house, it's always been a desire for me to be able to stop what I'm doing, go to another computer, and continue on. I've been doing that by saving and reloading on another computer, or I'll remote desktop in to continue. But with USB flash memory sticks getting bigger and bigger, it's now possible to carry my computer setup with me to any other computer in my home!

By using a 16 or 32 GB USB memory stick (actually, any large portable memory device would work like a hard drive, iPod, SD Memory card, etc. The faster the better), I can create a virtual machine system on that flash memory stick! On each of the host computer, install VMWare's free Server virtual machine software (on the Mac, install Fusion). Create a virtual computer and save the files onto the memory stick. Once the system is configured the way you want, you now have a virtual machine you can start up and continue to work on from any other computer in the house! Instead of shutting down the virtual computer, just pause it in the VM to put it to sleep. It'll save your last state onto the flash memory stick so that when you start it up again on another computer, it'll start where you left off.

Because flash memory is much slower than regular memory or even hard drives, and because your memory stick probably doesn't have that much more space after the OS and your applications, you should create a shared folder on a fixed system and in the virtual machine, map a drive to that shared folder. Now you can save any and all data from your applications on the shared drive instead of the flash drive! If you need to take the data/file with you, just drag a copy onto the virtual machine's desktop.

Ingenious and free (except the memory stick)!

The biggest limitation of this setup right now is you can't play 3D games or games that require hardware acceleration. Hopefully VMWare will create a virtual DirectX layer like they're doing with the Mac version in Fusion. When that is fully compatible, even taking games with you from one computer to another will be possible.

I also recommend you stock up on memory for each of your host computer. Memory is cheap, and the more you have the better, even if you don't plan to use them as virtual machine hosts.

New RO Tank

I have to replace my Reverse Osmosis reservoir tank because it's starting to rust/corrode. I found this as a nice replacement:

Flowmatic RO Pro bladder tank

It's not metal on the outside, so it should last a lot longer and it's not that expensive, compared to the steel ones.

Thursday, January 17, 2008

How to remove Microsoft's Messenger IM

I never use Microsoft's Messenger IM client, so I always want to remove it. Here's a link explaining how to do that.

Remove MSN Messenger

If you want to remove MSN Messenger from Windows XP and can't seem to find it in the Add/Remove Programs. You need to edit one file to have it displayed in Add/Remove Programs. There is a couple ways to uninstall MSN Messenger. One way is to run this command from Start | Run.

RunDll32 advpack.dll,LaunchINFSection %windir%\inf\msmsgs.inf,BLC.Remove

Another way
Search for sysoc.inf. It should be located in the C:\windows\inf\
Edit the file with notepad.
Remove the word hide. Save the changes.
Open Add/Remove Software.
Click on Add/Remove Windows Components and you can remove MSN Messenger. There is two services to remove everything.
You can now remove both services. They have a bug with the check boxes but it still works.

Wednesday, January 16, 2008

Save money on Epson Ink!

I bought myself the Epson R280 and RX595 color ink jet printers to be able to print photos, print direct-to-disc labels, and just for documents. I bought both cause they were pretty cheap for the pair and because I planned to do something interesting with one of them.

The RX595 is a multi-function printer. It can scan, copy, and print. I plan to scan all my old photos pre-digital camera into my server, but also use it to print high quality prints using the Epson Claria ink.

I bought a R280 for cheap (wish I could have gotten for free after rebate, but didn't know about it) to put besides my new iMac. I wanted to use it as an everyday printer for the kids and wife. However, at $18 per ink cartridge, I didn't want to use it with the OEM cartridges. So I bought myself a Continuous Ink System, "CIS" for short. I bought a kit from because others mentioned them as a good, reliable vendor for a quality kit. The kit allows you to use ink bottles instead of cartridges. The benefit is lower cost of ink and no more throwing away/shipping back used ink cartridges, or buying messy refill kits or "compatible" cartridges. With this system, I can just keep buying bottles of any ink that's out, without messing with the printer at all! So far, I've made plenty of photo prints, full page prints, documents, etc., and still only used maybe 1/5th of the ink bottle that came with the kit. The colors aren't as nice as the Epson Claria ink, but that's why I have the RX595! With the CIS kit, you have to modify the cartridge holder permanently, which is why I chose to do it on the cheaper R280 printer (bought mine for only $45). I really like the kit, and the feeling that I don't have to worry about printing on it for fear of having to spend $18 to replace just ONE cartridge. A full set of 6 Claria ink cartridges will set you back almost $70-80! With the CIS set, it only costs $30-$60 for 6 4 ounce bottles, depending on vendor and quality. In case you don't know, 4 ounces is equivalent to around 6 cartridges, which translates to around $100-120, just for 1 color!

So far, I like the kit from InkRepublic a lot! I'm glad I overcame my fear of "breaking" a perfectly new printer.

Pearl 8100 full body protection

I bought something similar to this for my Pearl 8100. It's a clear film protector that covers the face and back so that I can put it in my pocket and not worry about something scratching it. This company seems to have a film set that covers even the sides of the phone, as well as kits for other phones. I like this full-body skin protection much better than a case. They're not cheap, but I think worth the price!

Photodon iMac anti-glare screen film review

I have a 20" core 2 duo iMac setup in my kitchen. However, the screen is sooo shiny and glossy, it's hard to read in the morning due to the sunlight reflecting off the screen. So I did a Google search and found this:

It's a custom sized anti-glare film for the iMac! They have a 20" and 24" version, anti-glare and clear. They both work as a screen protector as well, which is perfect since the whole family likes to touch the screen as they point, or the kids forget to cover their mouth when they sneeze.

Today, I installed the film on the screen per the directions. It was tough keeping the lint and dust off, but I just angled the screen down to minimize falling lint/dust from landing. I used the included wiping cloth with a bit of windex squirted on a corner to clean the screen off. Pulled the plastic film off the anti-glare film an inch at the top, applied it, and then pull the plastic film half way. Otherwise, the silicon adhesive wouldn't stick. I don't think the adhesive is either sufficient or "sticky" enough. More on that issue later.

My impression of the anti-glare film is that it isn't perfect. I was hoping to have a film that cuts a lot of the reflection without reducing visibility, but alas, there's still bright spots on the screen, just not as bright or focused. It also cut the brightness by 10-15% which isn't that big a deal since the max brightness is way too bright to begin with. There's also the "sparkles" typical of diffusers, which makes the whole screen look like it has water streaks. This is the most annoying part of the film. The other problem I have with it is that the edges don't cling to the screen. There's edge "bubbling" so to speak where it's not completely affixed to the screen. I can live with it, since it's in the black bezel area, but it tells me the silicon adhesive isn't sufficient. I have other silicon adhesive backed films on my phones and such, but I haven't had this issue with those.

Overall, I'll keep it just to protect the screen, but hopefully a better anti-glare film will be available sooner rather than later by Photodon or someone else. At least it'll help with the fingerprint clean up and potential scratches from pens and other things the kids use to point on the screen.

Cisco IP Phone - 2821 Router - Update CF Card

I replaced the 64 MB CF Card in our 2821 router with a 256 MB CF Card. First of all, I had a heck of a time finding a 256 MB CF Card, which is the largest card you can put in this box. Anyway, after I transfered the files from my 64 MB card to the 256 MB card, everything booted fine, but now I can't access SDM or CCME admin page! I have no problems with Unity Express admin pages, though. I haven't had time to troubleshoot it, but I really don't know where to start, or what's cause it. I can still use the IOS command line to configure, but I sure miss using the web interface. Gotta fix this soon.

Found the problem. The files were not named with matching case. Since IOS seems to be a type of Unix variety, all the file names are case sensitive. Once I fixed that, all the web admin files worked again.

MAME and 68000 games not working

Tried to run a 68000-based game in latest MAME, but after loading the roms, kept kicking back out to the menu. Turns out, I had the 68000 code to ASM instead of C. I guess there's issues with the ASM version of the 68000 emulator. Switching it to the C version allowed the games to run again. Yay!

Microsoft Office 2003 SP3

Installed SP3, and now all excel workbooks open up with the macro security at high. This was done because apparently there's a vulnerability that hasn't been fixed yet in macros across the Office spectrum! The annoying thing is, it no longer seems to be a global setting, but rather a per-workbook setting! We have tons of workbooks that we work with everyday, but to have to keep changing that setting for each workbook post SP3 is quite annoying. Not only do you have to open, change the setting, then save it and reopen it, but you have to do it for every book that hasn't had this done to it yet! Ugh! I understand why they did it, but it would be nice if the Microsoft Updates had some type of "Readme" within the automatic updater before (or after if auto-updating) it applies them so that people can prepare for these things.

Lost lego pieces

My kids received quite a few Lego Star Wars kits in the past year. However, because they're kids, they've lost quite a few pieces as well. I just assumed once pieces are lost, you had to buy the whole kit again. Turns out that's not the case. Lego's website has a customer service page where you can purchase lost or missing pieces. The website lets you add to their shopping cart any set of pieces that comes in a given kit based on the kit model number. Afterwards, you give them your mailing address and submit. A day or two later, you'll get an email with a price for all the pieces you wanted, including whether some are not available. I tried to order the pieces to a Boba Fett figure, but was required to give proof of ownership, which I didn't have. So, I guess I'll have to try to find the kit instead. Oh well.

Excel 2003 Tip

I was asked by a coworker how to show the formulas in all cells within Excel 2003 rather than the calculated value.

The answer is to hit CTRL-`. This puts you in Formula Audit mode.

OS X 10.5.1 stopped loading at blue screen

After doing a system update on my OS X Leopard iMac, it rebooted and got stuck in the blue screen at boot. The mouse works, but nothing was happening.

Turns out, prior to rebooting, I had installed APE, which others had found causes this issue.

The solution was given by apple's troubleshooting pages:
Mac OS X 10.5: "Blue screen" appears after installing Leopard and restarting

In case the link dies, here is the portion that I used:

Issue or symptom

After completing an upgrade installation of Leopard and restarting the computer, a "blue screen" may appear for an extended period of time.

Products affected

  • Mac OS X 10.5 Leopard


You may have third-party "enhancement" software installed that does not work with Mac OS X 10.5 Leopard. Use one of these solutions.

Option A: Use another Mac to remove application enhancement software

If you have a second Mac that has a FireWire port (even if it's not running Leopard), and a FireWire cable that you can connect to both computers, use this solution:

  1. Start your original, affected computer in Target Disk Mode by holding the T key, and connect it to your second computer. Your affected computer's hard disk volume(s) should appear on the desktop of the second computer.
  2. Open the second computer's mounted disk volume (where Leopard is installed), then open the System folder, then the Library folder, and finally the SystemConfiguration folder.
  3. Locate "ApplicationEnhancer.bundle" and move it to the Trash. Important: Do not delete any other files from your Leopard disk.
  4. Enter an admin account name and password if prompted.
  5. Eject the mounted volume(s). (Disconnect the FireWire cable if you want).
  6. Turn off the original computer and start it up again (holding no keys).

If the issue persists, or if the "ApplicationEnhancer.bundle" file was not on your Leopard volume, use Option B.

Option B: Reinstall Leopard

If you can't use option A, it may be necessary to perform an Archive and Install installation of Leopard. Archive and Install moves your existing Mac OS X system files to a folder named Previous System, and then installs a new copy of Mac OS X on the selected volume. Mac OS X–installed applications, such as Address Book and Safari, are archived, and new versions are installed in the Applications folder. Applications, plug-ins, and other software may have to be reinstalled after an "Archive and Install." This is covered on page 7 of the Install & Setup Guide included on the Leopard DVD.

You will probably want to check "Preserve user and network settings" when starting the installation.

Note: After installation, verify each third-party software product is compatible with Leopard before reinstalling it, especially any application "enhancement" software.

Option C: Use the command line (advanced) to remove application enhancement software

Try this solution if you are comfortable using Terminal and have certain application enhancement installed. The software may be removed following the below steps:

  1. Start up in single-user mode by holding Command-S after restarting the computer. Note that single-user mode always uses the US English keyboard layout.

  2. Type these commands, each on a single line followed by Return:

    /sbin/fsck -fy
    /sbin/mount -uw /
    rm -rf /System/Library/SystemConfiguration/ApplicationEnhancer.bundle

  3. If the issue persists, use option A or B above.

First post

As a technology guy, I'm always tinkering and fixing and upgrading and what-not. Over the years, I've created, broken, trouble-shot, and fixed lots of problems and issue, but never kept a log of the solutions to problems. I decided I better start logging any and all issues I run into, because it seems I keep running into them after my mind has blanked out what the solution was. Hopefully, I'll be able to record all my solutions to problems I encounter through this blog.