Archive for the ‘computers’ Category.

defaults on macOS Can Break Otherwise Usable plist Files

Today I learned that the defaults(1) command on macOS can break otherwise-parsable plist files.

I found this when trying to change selectedThrottleIndex in the Arq config (~/Library/Arq/config/app_config.plist) to adjust a bandwidth usage setting. I didn’t have access to the GUI, wanted to change things from CLI, and whoops! After changing this things broke.

Consider this… First I read out the setting with defaults read ~/Library/Arq/config/app_config.plist selectedThrottleIndex, then set it with defaults write ~/Library/Arq/config/app_config.plist selectedThrottleIndex 2, then read it again to verify the change. All looked good, so I figured I was done and I let things bake.

Upon getting physical access to the machine and launching the GUI, I found that Arq was no longer activated, needed my license info again, and then (uggh!) had lost my configuration. This was fixed by first restoring the whole of ~/Library/Arq from Time Machine, launching Arq, browsing to the backup destination, and clearing it’s cache. After rescanning the destination all was good.

So, why did it happen? Well, it turns out that Arq uses a headerless XML-ish text file with the suffix .plist. Even though it’s not in the same format as plutil(1) outputs, defaults(1) will still read it and modify it… But the resulting file is a plist binary! It seems that Arq only likes to parse its format (note: I did not exhaustively test this — plutil(1)‘s xml1 format may work), so upon seeing the binary version it the program presumed no config and started over. Whoops! Interestingly, the defaults(1), plutil(1), and pl(1) commands will all happily parse the Arq format file.

Note that after launching Arq with the broken config and re-adding the license, restoring just the app_config.plist file didn’t make things better, which is why I jumped right to restoring the whole ~/Library/Arq directory. There must be some config caching somewhere or so…

TrainerRoad PowerMatch: Disabled

After getting the CycleOps Hammer smart trainer I’ve been experimenting with how it, my Stages power meter on the Salsa Vaya, and the TrainerRoad PowerMatch function work together. In short, PowerMatch is designed for those who have a power meter on their bike and want to ensure that the resistance and workouts are consistent indoors (with the smart trainer) and out (with just the power meter). While I only use power data for training indoors during the winter (never for outdoor training), I do like to look it over after outdoors rides and thus want to be sure the two are as in line as possible.

To automatically handle differences in power meters, TrainerRoad’s PowerMatch calculates the offset between the power meter and smart trainer, then adjusts the resistance every 10 seconds to accommodate the difference. On its face this makes sense to me, but whenever I’d enable it the resistance would get bit surge-y feeling during harder efforts leading me to think something wasn’t quite right. I suspect this is because of the Stages being single-leg, I likely have a bit of an imbalance between legs, and my recent rides in TrainerRoad have shorter efforts than the sustained stuff that single-leg meters are best at. So, I started to think about if something else was right for me.

In TrainerRoad, on the Power Meter settings, there is a toggle to use the meter for cadence only. In the Smart Trainer setting the options for PowerMatch are Auto, Disabled, or a Manual offset. This results in the following scenarios:

Power Meter Normal, PowerMatch Auto: Displayed power is from meter, with this data used by PowerMatch to determine resistance. Occasional surging feeling, but overall good. While riding it appeared that power data jumped around.

Power Meter Normal, PowerMatch Disabled: Displayed power is from meter, resistance set by trainer’s internal meter. Displayed power data appeared low (5-10W) when holding an interval steady.

Power Meter Cadence Only, Power Match Disabled: Displayed power is from trainer, resistance set by trainer’s internal meter. Feels smooth (no surging) but seemed marginally easier than with PowerMatch.

Power Meter Normal, Power Match Manual: Displayed power is from meter, resistance set by trainer offset adding/subtracting manual value; no automatic adjustment of offset done.

With Power Meter Normal, Power Match Manual looking most like what I wanted, I set out to determine the offset between my Stages meter and the CycleOps Hammer. To do this I first ensured the Stages and Hammer were calibrated. TrainerRoad was set to have PowerMatch disabled and the Stages meter to Use Cadence Only. My Garmin Edge 520 recorded power from the Stages meter and TrainerRoad recorded the Hammer’s data. I then rode a custom TrainerRoad workout that has a warmup, then a series of 1 minute intervals at 60%, 70%, 80%, 90%, 100%, and 110% of FTP with 30 second 50% rests between in Erg mode so  trainer resistance adjusted automatically. After this I did a 30 minute Free Ride where I shifted to adjust speed (and thus power), trying to get a good mix of steady state and short/hard intervals, under different situations, to get sane date to compare. To cut down on data misalignment both of these rides were non-stop spins without pausing, doing my best to start and stop the Garmin along with the TrainerRoad workout.

Both of these sets of data were then compared in DC Rainmaker‘s Analyzer tool, with the results visible here:

Comparing the two, I see two notable things, both most visible in the 30 Minute Freeride:

  1. Sudden transitions decreasing power show 0 values when measured by the Hammer, but still some power with the Stages.
  2. Hammer seemed to measure higher, with the variance becoming greater as power output became higher.

I don’t believe the sudden transitions are a concern nor really something that can be accommodated for, and I don’t think they’ll be a problem for the normal Erg mode workouts where the main desire is to have the trainer providing resistance. This is likely a simple side effect of the large flywheel in the trainer taking a while to slow.

For the scaling disparity between the Stages and Hammer, maybe there’s something there… I’m tending to think that the Stages is reading higher on very hard efforts because with these I’m more apt to be standing and shoving down on the pedals versus a smooth spin. Perhaps this is throwing off the strain gauge? Let’s see…

Here’s how the average powers worked out:

Workout Meter Average Power Weighted Average Power
Custom Test Stages 173.50 191.70
Hammer 174.77 194.20
Free Ride 30 Stages 209.87 228.25
Hammer 211.03 234.05

 

Since I’m trying to compare power meters themselves, I’m looking at Average Power. (I don’t want to use Weighted Average, because this gives increasing priority to greater power outputs, since they are harder on one’s body. For example, it’s a way of reflecting how 300 W feels more than 2x as hard as 150 W.)

Across these two rides the two meters are within ~1 W of each other. While I originally went into this investigation looking to see how much of an offset I’d have to set up in Power Match Manual, I’m now thinking that the Hammer is close enough to the Stages to simply use Power Meter Cadence Only, PowerMatch Disabled. It’s possible this could skew a bit more as I do higher power efforts, but I think this will probably still be within sane ranges. It’s rare that I’ll see the 100W difference like in the high power effort of the Free Ride 30 test (700-800 W range), most things will be in the 200W-300W steady state range where alignment seems sane.

This will cut down on the surging that seems to be coming from the single-leg power meter, still provide sufficient correlation between indoor and outdoor efforts, all while having the benefits of an Erg mode smart trainer.

It’d be nice if TrainerRoad offered some sort of percentage correction, but perhaps this is why PowerMatch instead does a frequent reassessment and is turned on my default; better to check the offset and correct vs. attempting to figure out a scale. Being able to see how PowerMatch is working internally would be nice, but I’m not sure this would add any real value to the product.

Easy Web Page Load Timing Comparison via Bookmarklet

I needed to get rough metrics of web page load times across different browsers. While the built in development tools are good for fine-grained timing, outside of pay tools (eg: HttpWatch) or browser-specific (Page load time Chrome extension) I couldn’t find anything easily available for general page load time.

It turns out that the time between performance.timing.navigationStart and performance.timing.loadEventEnd does a good job of this, as it shows the time elapsed between when the browser starts navigating to the new page and when it feels the page is done loading (the load event handler is terminated).

A bookmarklet containing the following can be used to do this:

javascript:(function(){ var loadtime = (performance.timing.loadEventEnd - performance.timing.navigationStart) / 1000; alert("Page Load Time: " + loadtime + " sec"); })();

This link can be dragged and dropped to your Favorites / Bookmarks bar to easily create a bookmarklet with this content: Page Load Time

Full CD Collection Ripping Workflow

Back in 2003-2004 I ripped ever CD I owned to 192kbps AAC, a very good sounding format which was cost effective to store on disks of the time. This was a great achievement, and for the last 12 years I’ve enjoyed having all of my music in a central digital format. Now that storage is cheaper and I have some time, and before data rot sets in, I wanted to re-rip the collection to archival-quality Apple Lossless format. (This format was chosen for compatibility with my currently preferred software and hardware players, and being lossless can easily be transcoded to other formats as needed.)

My previous ripping operation was performed with a dual CPU PowerMac G5 and iTunes. While iTunes’ eject-after-import feature facilitates disc swapping, the workflow was selecting a stack of CDs, inserting them one at a time, then manually validating tags and artwork. At the time CD metadata providers didn’t have many of the discs, so a great deal of manual cleanup was needed. This was tedious, and something I didn’t want to repeat…

Not to mention there was no good way to assess the accuracy of the resulting rips…

Twelve years later, with better tools available, and finding some time in the form of a holiday break (Christmas Eve to after New Year’s) I began thinking about re-ripping my CD collection. Having recently moved my web hosting (this site, nuxx.net) to Linode, my old server was sitting unused at home and I only needed some modern software and an autoloader to set up a high performance CD ripping workstation. The requisite tools were purchased and I got to work. 411.3 GB later and most all of my physical CDs (1241 albums) have been imported as cleanly as possible, ready for listening on a myriad of devices, hopefully for years to come. (Duplicates were not ripped.)

Since ripping an entire CD collection is a desire of many friends of mine I wanted to share  the general setup and workflow that I used. It went well and was mostly hands-off, with only occasional manual intervention needed when the auto-loader jammed and then tool-assisted cleanup of tags and artwork. By using high quality ripping software which supports AccurateRip I was able to ensure that the vast majority of ripped tracks are affirmed error-free and effectively digital archival quality.

Most Inaccurate tracks were caused by damaged discs; typically reflective layer scratches, cracks, or scuffed polycarbonate.

Success Results:

  • 14069 tracks (92.3%) are Accurate
  • 144 tracks (0.95%) are Inaccurate
  • 1024 tracks (6.7%) were not in the AccurateRip database.
  • 1 track was a hidden track 0 in the pregap, which had to be ripped specially, and thus couldn’t be checked with AccurateRip.

Hardware / Software Used:

  • HP ML110 G7 w/ 24GB RAM, 64GB SSD, 3x 1TB HDD, USB 3.0 Card, AMD Radeon HD 5450 (Needs to be a sufficient computer to handle ripping, encoding, and displaying Aero graphics with ease. Built-in video card was not sufficient.)
  • Dell 2005FPW Monitor (1680×1050)
  • Acronova Nimbie USB Plus NB21-DVD
  • HP SATA DVD Drive (Internal, identifies as hp DVD-RAM GH80N.)
  • Samsung USB DVD Drive (External, identifies as TSSTcorp CDDVDW SE-218CB.)
  • Epson Perfection 3170 Scanner
  • Windows 7 Professional
  • dBpoweramp and PerfectTUNES (w/dBpoweramp Batch Ripper and Nimbie Batch Ripper Driver)
  • Mp3tag (Incredibly useful tagging tool with powerful scripting.)
  • CD cases organized into numbered boxes of 30-50 discs.

Workflow:

  1. Use dBpoweramp Batch Ripper to rip all CDs. Label output folders by the box numbers containing each CD; this will make manual metadata validation/cleanup easier.
  2. For each disc that is rejected, use dBpoweramp CD Ripper to rip the entire disc. This is likely a metadata issue as CD Ripper has access to more metadata providers than Batch Ripper. Or it may be the drive failing to recognize the disc.
  3. Use AccurateRip from PerfectTUNES to scan the entire directory structure, then use the built-in information tool to get a text file listing all “InAccurate” tracks.
  4. For each disc with “InAccurate” listings:
    1. Delete entire disc. (I opted to do this instead of re-ripping just the InAccurate tracks, as metadata differences between CD Ripper and Batch Ripper could lead to file names that are clumsy to fix.)
    2. Look disc over and clean if necessary. This, coupled with using a different drive, seems to resolve about 50% of ripping issues. Be sure to use proper technique: soft/clean/low dust cloth, wiping from inside to out (not circularly).
    3. Re-rip discs using dBpoweramp CD Ripper in fast mode.
    4. Re-rip individual tracks with secure mode as needed. Note that re-reading of bad frames can take hours per track, and that some tracks just won’t match AccurateRip or even rip securely. (Some of my discs are sufficiently damaged that I was not able to rip certain tracks.)
    5. Some discs may need to be ripped with Defective by Design settings, particularly in case of copy protection.
    6. Make a separate list of discs which have been accepted issues.
  5. Run AccurateRip (part of PerfectTUNES suite) to confirm all tracks and check against list of accepted issues. Repeat #4 as needed.
  6. Run the Fix Albums tool within Album Art (part of PerfectTUNES suite) to attempt automatic acquisition of artwork for all albums.
  7. Start with the PerfectTUNES suite components to fix artwork and metadata:
    1. In ID Tags go through a series of directories at a time sanity-checking metadata. Compare each CD case to the tags as needed, confirming that artwork looks sane. Keep a document listing artwork to later review.
    2. Use the Album Art tool to attempt bulk fix of art on all albums.
    3. One box at a time add artwork using a scanner and online resources. Then fix Low Resolution artwork.
      1. An Epson Perfection 3170 scanner connected and configured in automatic mode, clicking … next to an album then Acquire (from Scanner) will automatically scan, rotate, and crop artwork from a scanner. This seems to fail on thick-case (Digipak, clamshell) albums and is inconsistent on mostly-white artwork.
      2. Decent artwork can be obtained from Discogs.
      3. Add observed metadata errors to a document for later review.
  8. Use Mp3tag to clean up tags. Useful filters and suggestions include:
    1. (albumartist MISSING) AND (compilation MISSING) – Find tracks that are not part of compilations but did not get Album Artist set.
    2. %_covers% IS "" – Find tracks without artwork.
    3. compilation IS 0 – Find tracks with Compilation set to No. This can be removed using the Extended Tags editor.
    4. "$len(%year%)" GREATER 4 – Find tracks with Year fields longer than four digits (some metadata includes month and day).
    5. (totaldiscs IS 1) AND (discnumber GREATER 1) – Find disc numbers higher than 1 when the total number of discs in the album is 1.
    6. Selecting all tracks, exporting to CSV, then reviewing in a spreadsheet program can help find misspellings, duplicates, etc. For example, look at unique values in the Artist column to find misspellings like “Dabyre” vs. “Dabrye” or “X Marks The Pedwalk” vs. “X-Marks The Pedwalk”.
    7. NOT %ACCURATERIPRESULT% HAS ": Accurate" – Show all tracks that do not contain the AccurateRip header indicating an accurate rip.
  9. Fix any noted errors using a combination of ID Tags, Album Art, and Mp3tag.
  10. Prepare for archiving by renaming all files using Mp3tag:
    1. The following Format string for the ConvertTag – Filename renamer will move files to e:\final_move with the following formats, without most invalid characters for Windows filesystems, truncating the artist, album, and track lengths to 64 characters: e:\final_move\$if(%albumartist%,$validate($replace(%albumartist%,\,_),_),Various Artists)\$validate($replace(%album%,\,_),_)\$if(%albumartist%,$replace($validate($left(%artist%,64)-$left(%album%,64)-%discnumber%_$num(%track%,2)-$left(%title%,64),-),\,_),$replace($validate($left(%album%,64)-%discnumber%_$num(%track%,2)-$left(%artist%,64)-$left(%title%,64),-),\,_))
      1. Tracks with Album Artist set: ...\Artist\Album\Artist-Album-Disc#_Track#-Title.ext
      2. Tracks without Album Artist set (compilations): ...\Various Artists\Album\Album-Disc#_Track#-Artist-Title.ext
  11. Make a backup. Make many backups…
  12. Import into your preferred music player. In my case, iTunes on OS X:
    1. Album or artist at a time, delete the old, MPEG-4 versions and import the Apple Lossless tracks.

Issues:

  • Autoloader would occasionally jam. Seemed to be caused by:
    • Discs sticking together; ensuring they are gently placed in the loader seems to help.
    • Some discs are particularly thin or thick; these would often fail to load properly. Manually rip these.
  • Autoloader only supports standard size CDs, so mini or artistically cut CDs must be ripped in a normal drive. The USB drive is a laptop-type with a snap-lock spindle, which is better for artistically cut CDs.
  • Off-balance artistically cut CDs must be ripped at 1x to mitigate vibration. This can be problematic during initial spinup.
  • Some discs didn’t read well in one drive or another. If a rip would not be error-free in one drive, it’d frequently be fine in another.
  • Some discs are not present in AccurateRip.
  • Dirty discs caused more problems than I’d anticipated. Discs seemed to be scratched or dirty for a number of reasons:
    • Previous poor storage techniques (DJ or CaseLogic-style slip cases).
    • Outgassing of liner notes caused cloudy white buildup on some discs; could be removed with alcohol.
    • Discs lacking paint over the reflective layer are more susceptible to damage; particularly if stored in slip cases.
  • I suspect that less-common discs may have invalid information in AccurateRip. (Tip: The number after the Accurate Rip CRC indicates how many other users the rip matched with.)
  • In order to use either dBpoweramp CD Ripper or Batch Ripper via Remote Desktop, the following group policy must be enabled: Local Computer Policy → Computer Configuration → Administrative Templates → System → Removable Storage Access → All Removable Storage: Allow direct access in remote sessions. This setting is detailed in this article from Microsoft.
  • PerfectTunes Album Art will lump together albums with differing versions specified with parenthesis. For example, “Pearl’s Girl (Tin There)” and “Pearl’s Girl (Carp Dreams…Koi)” will both show up simply as “Pearl’s Girl”. This can make artwork assignment challenging. To work around this I’d name albums something like “Pearl’s GirlTin There)” until artwork is assigned, then change the name afterward.
  • PerfectTunes ID Tags will occasionally fail to set the Compilation tag when it is the only attribute being edited. Work around this by using Mp3tag and editing the extended tag COMPILATION to 0 or 1.
  • PerfectTunes Album Art will not always show missing art. Work around this by using Mp3tag with filter %_covers% IS "" to find specific tracks without art assigned.
  • Mp3tag had issues renaming the artist “Meanwhile, Back In Communist Russia…” due to the ellipses at the end. By replacing the three dots format (…) with precomposed ellipses (…) the issue was resolved.

Cost:

  • Time: Hard to fully quantify, but overall process took about four weeks of spare time. Most time was spent waiting for the autoloader on initial rips and then manually cleaning up artwork and metadata issues. I was typically able to run 3-4 boxes of discs through the autoloader per day, then spent some lengthy evenings working on tagging and artwork. The use of the autoloader then PerfectTUNES and Mp3tag made the process feel very efficient.
  • Hardware:
    • Acronova Nimbie USB Plus NB21-DVD: $569.00
    • USB 3.0 Card: $19.99
    • Internal Power Cable: $1.99
    • AMD Radeon HD 5450: $31.76
  • Software:
    • dbPoweramp and PerfectTUNES bundle: $58

Workaround for Acronova Nimbie USB Plus, QQGetTray, and OS X 10.11 (El Capitan) Failure with USB 3.0 Cable

I recently acquired an Acronova Nimbie USB Plus NB21-DVD to automate portions of some CD and DVD projects I’ve been working on. This has worked great on Windows 7, but on OS X 10.11 (El Capitan) I was unable to get QQGetTray to work. This software faciliates programs which support action-on-insert and eject-on-completion to work with the Nimbie autoloaders by detecting ejections (via tray opening) and triggering disc changes. Thus, it’s pretty important…

So, how does one make this work? Use a USB 2.0 cable instead of the provided USB 3.0 cable.

How did I find this workaround? After a bunch of searching and digging it just happened to be buried in a response from Acronova in the Customer Questions and Answers on the NB21-DVD’s Amazon page:

The new OS X El captain has changed the way it handles USB 3. In the meantime, instead of using the included blue USB 3 cable, use a USB 2 cable to operate Nimbie under USB 2.0 mode.
By Acronova on December 1, 2015

While writing this post I received a reply to a support ticket I opened with Acronova saying the same thing, and further messages indicated that the QQGetTray developers are still working on the issue.

Frustrating, and surprising, but it works. This workaround is not mentioned anywhere on the product’s site or knowledge base, nor is there any info listed about a fix for QQGetTray. While this keeps the drive from being able to rip at full USB 3.0 speeds, I can deal with this compromise in order to get a toolchain working to avoid manually swapping discs.

The symptoms are that OS X successfully sees the optical drive via a USB 3.0 SATA bridge, was also seeing a USB 2.0 device called NT21, yet QQGetTray would report “Status: No devices found” and fail to actuate the loader mechanism. This was on a Late 2014 iMac with Retina display, model ID iMac15,1, running Mac OS X 10.11.2. When connected via a USB 2.0 cable (instead of the provided blue USB 3.0 cable) the optical drive is then seen as hanging off the internal USB 2.0 hub along with the NT21 device. It all then runs as USB 2.0, and QQGetTray works properly.

stjohnprovidence.com vs. stjohnprovidence.org

Attempting to pay a medical bill online and accidentally typing stjohnprovidence.com/billpay (link intentionally omitted) instead of stjohnprovidence.org/billpay resulted in this wonderful false AV warning within my browser. I’d think that a big hospital would work to fix this sort of thing…

It’s Time For A Change

Back in 2008, not long after I started mountain biking, The MMBA was looking for a volunteer to help fix its poorly performing website. While fairly new to the mountain biking community I had a good deal of experience with providing reliable small-scale web hosting; lessons learned from running my personal site, nuxx.net and a few other virtual hosts for friends. Through my friends Nick and Marty Shue, whom I had casually known since back in the BBS days, I began leading volunteer work on the site, resolving the main performance issue, migrating it to my server, and eventually expanding its capabilities.

It was the perfect combination of my interests: computers, mountain biking, and providing a useful service to other online users.

With help from numerous people, including Rob Ritzenhein doing Joomla work for the original main site, Nick and Marty working through the migration planning (the photo to the right was taken during the site migration itself) and handling some forum moderation, the transition went smoothly and it’s been stalwart ever since. I was even fortunate enough to work with Jeff Lau who wrote an incredibly impressive Trail Guide whose simplicity and usefulness has no current parallel. Many other volunteers contributed to the content; writing posts, submitting trail guide updates, and generally tweaking content.

While the MMBA has gone through some radical changes, working to redefine itself as the chapters moved into the IMBA Chapter Program, the MMBA website site, particularly the forum and Trail Guide, has remained the top source for information on mountain biking across Michigan.

Through this time I gained tremendous experience learning how to assure reliability of production systems, the political parts of working with others, guiding volunteers as they work on projects they are passionate about, and wrangling problem users in online communities among other things. I also met countless wonderful people, made some great friends, and even managed to make a few people hate me.

After seven years I’ve decided that it’s time for me to move on. Over the next few months I will be working with the MMBA Board of Directors and Byte Productions, LLC of Traverse City to smoothly migrate the site (including the forum) to a new home. Once complete my server will be back to hosting my personal sites and a few small pages for friends, stuff that I consider much less critical. Then I’ll have time to figure out what to do next.

Bit Field for Internet Explorer 11 Security Protocol Options

In Windows / Internet Explorer the options for different security protocols (eg: TLS 1.2, SSL 3.0, etc) are stored in HKEY_CURRENT_USER\Sofware\Microsoft\Windows\CurrentVersion\Internet Settings|SecureProtocols using a bit field. I wasn’t having much luck finding the specific values documented, only this German TechNet blog post detailing the resulting settings. So, I made my own. Here it is in C format:

/* HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings|SecureProtocols for different SSL/TLS settings. */

#define SSL_2.0 8 /* 000000001000 */
#define SSL_3.0 32 /* 000000100000 */
#define TLS_1.0 128 /* 000010000000 */
#define TLS_1.1 512 /* 001000000000 */
#define TLS_1.2 2014 /* 100000000000 */

This also applies to Internet Explorer 9, but I haven’t checked other versions.

Creating a Bridge with a Span Port on OpenBSD 5.6

Since OpenBSD moved the bridge commands into ifconfig(8) I hadn’t been able to find quick info on creating a bridge(4). Presuming you’ve got some em(4) interfaces (for naming purposes) here’s all you need to do:

ifconfig em0 up
ifconfig em1 up
ifconfig em2 up
ifconfig bridge0 create
ifconfig bridge0 add em0
ifconfig bridge0 add em1
ifconfig bridge0 addspan em2
ifconfig bridge0 up

This will result in em0 and em1 bridged together, and a copy of all frames that it sees going out to em2 for monitoring.

After this, if you want it to come up every time you boot the machine, do this:

Create three files, /etc/hostname.em0, /etc/hostname.em1, and /etc/hostname.em2 all containing the single line:

up

Create one file, /etc/hostname.bridge0, containing the following lines:

add em0
add em1
addspan em2
up

Reboot the computer and netstart(8) will use these files to create the bridge for you.

One very important point to note if using this to troubleshoot 802.1x: this sort of bridge cannot be used to troubleshoot 802.1x because it does not pass LLDP frames, nor does it drop/raise the link, which switches commonly use as a trigger for initiating client authentication. For situations like this a tap such as the NetOptics TP-CU3 is much more useful.

WinHTTP PAC File Caching Location

When troubleshooting issues with proxy auto-config (PAC) files and WinHTTP on Windows 8.1 you may wish to view the cached PAC files which the WinHTTP Web Proxy Auto-Discovery Service have written to disk. These cached PAC files can be found in c:\Windows\ServiceProfiles\LocalService\winhttp and are named with a nine digit number and a cache extension (eg: 1667635681.cache). There is also a cachev3.dat file which appears to contain the download location of the PAC file, the MIME type of the file, and the download date/time.

This can be discovered by using Process Monitor with a filter of Path contains winhttp when the WinHTTP Web Proxy Auto-Discovery Service is started (net start WinHttpAutoProxySvc).