Category Archives: Source control

How to keep selected local Windows folders in sync

Some web platforms, like Apache Tomcat and Voxeo Prophecy, require their configuration files to be kept in specific locations under the platform’s installation folderpath. This creates a minor annoyance when developing for these platforms, because your IDE may not be able to add such a folderpath to its workspace. But even if the IDE can access such a folderpath, or even if you can create a symbolic link to it, the IDE might add project-related files that would confuse the web platform.

As a workaround, I’m using FreeFileSync to define rules about which items from the two folders should be overwritten by newer files from the other folder. However, FreeFileSync only syncs when prompted to via its GUI. To automatically detect new files and trigger sync, you can use the companion app RealtimeSync (which is included in the FreeFileSync installer). Yet, RealtimeSync is an app rather than a service, so you need to configure Windows to launch it whenever you start Windows or resume from sleep.

Installing FreeFileSync

  1. This app’s sourceforge page has a download button, but it will lead you through several hops before you get to a mirror at “FossHub”.
  2. The download links can be hard to find. Look in the light blue box near the top for a set of links such as “Download FreeFileSync for Windows”.
  3. During the installation, avoid Express install because it will install bloatware; use Custom Install instead.

Configuring FreeFileSync

These steps are adapted from another guide.

  1. If there are any files already in the web platform folder(s) that you want under the IDE’s control, import them to the corresponding project folder(s) in the IDE now
  2. In FreeFileSync, click the small green ‘+’ button above the left file listing pane to add as many pairs of folders to sync as you need.RealtimeSync_config1
  3. Set the left folder listing to the project folder, and the right folder listing to the web platform’s configuration folder
  4. Customize the default syncing across all folder pairs by clicking the green gear button in the upper-rightRealtimeSync_config2
  5. Cause new items in the left folder to be copied to the right folder. Cause edited items in the left folder to overwrite the corresponding file in the right folder. Note that only files introduced after RealtimeSync is first started will count as “new”, which is a good thing if you don’t want all the files in the left folder copied over.
  6. If you need to override the default sync behavior for any pair, use the small gear button that’s between the folderpaths
  7. Click OK to close, then go to Program | Save As Batch Job
  8. I recommend creating a top-level Dropbox folder called Settings where this batch-settings file can be kept.

Configuring RealtimeSync

  1. Launch RealtimeSync
  2. Go to Program | Open and select the batch-settings file you just created.
  3. Click Start.

Configuring ScheduleTasks (Windows) to launch RealtimeSync

  1. Use Windows+Q to open the start menu search box, enter “schedule”. Either “Schedule tasks” (in Windows 8) or “Task scheduler” (Windows 7 and before) should be offered. Select it.
  2. In the app that appears, select Create Basic Task.
  3. Under General | Name, enter something like “RealtimeSync after login”
  4. Set the trigger to be “On local connection to any user session”
  5. Set the action to be “Start a program” and browse to RealtimeSync’s executable (probably at C:\Program Files\FreeFileSync\RealtimeSync.exe). Under “Add arguments”, paste a complete path to the batch-settings file. (I recommend the Copy Path feature of FileMenuTools, a separate app, for this frequently-needed ability.)
  6. Under Conditions, make sure there are no dependencies on idleness, AC power, etc.

Verifying that it works

  1. Logout of your Windows session, then log back in.
  2. Edit one of the project files and save it. The FreeFileSync dialog should appear within a second or two, and disappear within a second.
  3. Verify that the corresponding file in the web platform folder has the edited content.


Print Friendly, PDF & Email

Debugging standalone JavaScript in Eclipse IDE

There are some nice online JavaScript debuggers like and, but if you want to edit a .js file that’s part of a version-controlled project, you’d probably prefer to do so in an IDE.

The Eclipse IDE has the JSDT plugin that provides syntax highlighting. (And it’s baked into the “Eclipse for Java EE Developers” edition, but can be installed in other versions, too.) To evaluate the code and see the output in the IDE’s Console view, some extra steps are necessary. Z0ltan’s guide is very helpful. Some extra hints:

  1. Install nodeJs first. This is an executable that wraps Google’s V8 js engine, providing a commandline interpreter (and lots of useful libraries, I believe, such as allowing the coding of a web server using javascript). As of 2014 April 29, the Windows installer doesn’t broadcast through the OS that the Path has been updated, so as a workaround you may need to open the Environment Variables dialog and then close it with the OK button.
  2. If you copy any text from Z0ltan’s page, or this one, into your IDE, make sure to re-type all the quotes; otherwise, copy/paste tends to pick up “fancy” quote characters that cause weird errors.
  3. In between Z0ltan’s steps 1 and 2, you need to select “Program” in the left pane, and then hover over the buttons above it to select the one having hover text “New launch configuration”.
  4. There’s a comment at the end of Z0ltan’s guide advising that you add the /D flag like this:
    /C "cd /D ${container_loc} && node ${resource_name}"

    if your js source file might be kept somewhere other than the C drive. But Microsoft’s documentation of cmd.exe flags just says /D disables autorun, so I’m not sure how helpful that is.

The NodeJs API pages start here, and there’s some helpful guidance on error-handling on Joyent.

Print Friendly, PDF & Email

Exporting an svn repository to git format

To have good scientific results, it must be possible for other researchers to replicate what one’s found (or maybe it was a fluke). Along these lines, psychology articles have long included very detailed sections on methodology that should allow other researchers to recreate similar experimental settings. For projects that involve custom-made software tools, this should be even easier, because the researchers can share the exact code they used on a public repository. Yet this is almost never done, even for pure computer science research.

When I became Principal Investigator of the Computational Social Cognition program at A*STAR in 2008, we created and maintained all our custom software using an in-house Subversion (“svn”) repository. The policy was and still is that one can pursue open-sourcing of a project if it turns out not to have any commercial potential; it’s been my aim since 2008 to open-source as many of our projects as we can, and try to start a movement in cognitive science research to share in this way. Other researchers share this view.

My new site is the next step. In addition to all the non-code resources it houses, I want it to link to source code from all researchers in this topic who are willing to share, and I want to put them all on a project-hosting site that will be around a long time. I considered SourceForge, GitHub, CodeHaus, and GoogleCode, and decided that Git’s local repos offer many advantages over svn, and that GitHub’s issue tracker and community are more mature and active than others.

So how to convert our svn repo project to git format? The svn2git tool is nearly ideal, but I had to make some adjustments:

  1. Although the readme indicates the following should be sufficient for installation,

    $ sudo apt-get install git-core git-svn ruby rubygems

    $ sudo gem install svn2git

    I found that some of these packages failed to install, and prevented those that followed them from installing, and did so silently. So I recommend doing sudo apt-get install on each item in the first line separately.

  2. The readme also indicates that one can indicate a particular project in the svn repo to convert without having to checkout and convert the entire repo. But I ran into errors such as:

    [...] is not a complete URL and a separate URL is not specified.


    pathspec 'master' did not match any file(s) known to git

    So I did a complete checkout and conversion of all projects in the svn repo, but I will checkin only some of them to github. Deleting the .git folder in the current directory and then retrying helped. Our root is the trunk, and we have no branches; none of the tags is worth keeping, either. So the command that worked for me was:

    $ svn2git -v http://mydomain/svn/repoName/ --trunk / --nobranches --notags --username myusername

  3. But actually that wasn’t enough, either, because svn2git seems not to send KeepAlive’s to the server and I was timing out with this error:

    RA layer request failed: REPORT of '/svn/repoName/!svn/vcc/default': Could not read response body: connection timed out (http://mydomain) at /usr/share/perl5/Git/SVN/ line 282

    One of the unexpected benefits of exporting from an in-house repo is that I could file a ticket requesting that the server timeout be temporarily increased. If I were converting a SourceForge repo, I might have to wait until svn2git is fixed instead.

  4. Now you should be ready to import.

btw, doing all this with Ubuntu 13 in VMWare Player 6 on Windows 7 64-bit works fine.

Print Friendly, PDF & Email

Getting svn+ssh client access in Windows

The following steps should help if you are using an svn commandline client and you get an error like:

svn: OPTIONS of 'http://YOURSVNDOMAINANDPATH': could not connect to server

Or if you get,

Network connection closed unexpectedly

in NetBeans or TortoiseSVN. UPDATE: The steps below turn out to fix the problem only in the commandline client, not in TortoiseSVN nor in Netbeans, sorry.

I had been using svn through Eclipse+SVNKit without much problem, but when I had to use NetBeans for a new collaborative project, I couldn’t get svn working even though I was using the same repository as with Eclipse. Switching from Netbeans to TortoiseSVN and a commandline svn client didn’t do any better. It seems a fair number of people have the same problem, and it seems due to all of these programs using a common config file and that file configures ssh support off by default. If you need to access an svn repository whose url starts with “svn+ssh://” and you’re using Windows, this advice is likely to be of use to you.

  1. Install your SVN client (e.g. NetBeans including SVN, TortoiseSVN, or CollabNet’s commandline SVN client)
  2. Download ssh commandline client plink
  3. Add the path to plink to your Path environment variable
  4. Make sure Windows isn’t hiding your AppData folder: In Windows7 in WindowsExplorer, select Organize | “Folder and Search Options” | View, and select “Show hidden files, folders, and drives”.
  5. Edit

    so that the following is uncommented:

    ssh = plink -l YOURUSERID -pw YOURPASSWORD


  6. Change the commandline to the directory where you want the SVN contents to be savedFor example,

    H:> C:
    C:> cd UsersdavidDesktopProjectsNetbeansWorkspace
  7. You should now be able to make a local copy of the SVN contentsFor example, if your SVN is running on a server at DOMAIN:PORT, and the repository on that server is at /home/svn/repos, and the folder you want a local copy of is PROJECTFOLDER, then use

    C:LOCALPROJECTS> svn co svn+ssh://DOMAIN:PORT/home/svn/repos/PROJECTFOLDER
Print Friendly, PDF & Email

Going portable as an alternative to using a remote desktop

This tip is intended for people like me who:

  • Often need to work outside the office but don’t want to carry a laptop
  • Happen not to use any Linux or Mac machines, just Windows
  • Can’t use Window’s Remote Desktop Connection app. (Perhaps your IT dept won’t open the port in their firewall; but if the problem is just that you’re using a Home version of Windows, you could switch to a Business version or upgrade to an Ultimate version.)
  • Can’t use the similar VNC app because your client computer has User Account Control turned on and you want to keep it that way for security reasons.
  • Or, your IT dept won’t give you admin privileges on your machine, so you can’t install apps at will
  • If you use SVN, then either your SVN repo has a publicly-accessible IP address, or that you can access it via VPN. (That is, if you need to use SVN but it’s kept behind a firewall, then these instructions won’t help you access it…you’re stuck working non-portably.)

The next best alternative I’ve found is to use a thumbdrive to keep your documents and applications (plus application state such as licenses, passwords, bookmarks, files currently being edited, email and contacts, etc).

If all the desktops you’ll use the usb drive with are XP, then you could put MojoPac on the usb; it emulates an OS and provides a desktop view of your usb that runs as a window in XP. It’s not clear if there will ever be a version that works with Vista or Windows 7.


Before copying any files to your thumbdrive, or installing any portable apps, consider whether you’d be hurt if the thumbdrive were lost or stolen and someone got access to its contents. If that’s at all important to to you, there are four options:

  • If you expect to have admin rights on any computer you might use, then you could install TrueCrypt on your thumbdrive and also create a TrueCrypt file container there.
  • If you don’t expect to have admin rights, but can convince your IT dept to install TrueCrypt for you, then check out the instruction in the next paragraph.
  • Or, if you won’t need more than 1G of space encrypted on your thumbdrive, you can try Rohos Mini Drive. (I haven’t)
  • Otherwise, you need to use Remora, where you will have to manually unencrypt each file you would want to use, then manually re-encrypt it after saving. (I haven’t tried this either)

If you can go with TrueCrypt, then install it on your harddrive. Use it to encrypt the thumbdrive. You can configure the encryption so you are prompted for the password as soon as you plug in the thumbdrive anywhere; then, you will be able to access files and run apps from the drive as though it weren’t encypted but all your edits and adds will be encrypted. (Things will run slower due to the on-the-fly encryption, although perhaps not noticeably so.) You might want to encrypt only a folder of documents, but I opted to encrypt everything because apps like Thunderbird store one’s data (e.g. all one’s email, if you have opted to keep local copies) in generally unpredictable places. After installing TrueCrypt, do this (basically following TrueCrypt’s beginner tutorial):

  1. Do the following from a machine where you have admin privileges
  2. Start the TrueCrypt application from your desktop
  3. Click the Create Volume button
  4. Select “Create an encrypted file container”. (I tried “Encrypt a non-system partition/drive”, but when I plugged the drive into another machine where TrueCrypt wasn’t installed, I was prompted to format the usb drive.)
  5. Select “Standard TrueCrypt volume”
  6. Click “Select file”
  7. In the file selector popup, select your thumbdrive in the left pane, and for “File name:” provide a name for your container. Mine is “TrueCryptContainer”, but the paranoid might want to use “junk”. Then hit Save.
  8. In the Encryption Options view, just hit Next.
  9. When prompted for file size, use the full capacity available (e.g., 3680 MB for a “4GB” usb drive). Then Next.
  10. Choose a good password. Next.
  11. For Volume Format, set Filesystem to NTFS (or, if you can’t get admin privileges anywhere, choose FAT). Move your mouse around over the window several times to generate a good random seed for the encryption algorithm. Then click Format.
  12. When formatting’s done, close that dialog window.
  13. Back in the main TrueCrypt dialog, the one showing a list of unused drive letters, choose a letter you want your new container mapped to.
  14. Click the “Select File” button and choose the container file you just created.
  15. Click the “Mount” button. You’ll be prompted for the password you assigned. Sometimes this doesn’t work for me and I have to cancel and then hit Mount again before it works.
  16. Once it works, you’ll see your container file listed alongside the drive letter you chose in TrueCrypt’s main dialog. And the drive letter should appear in WindowsExplorer under “My Computer” along with your other drives. You should be able to open from and save to this encrypted container using any application’s File Open and File Save commands.
  17. Be sure to use the Dismount button before trying “safely remove hardware” and before removing the thumb drive.

Sync with desktop or server/cloud

After encryption, this is probably your highest priority. You can try a portable application like Toucan, but I think it’s not full-featured enough. For example, one needs to type or paste in paths when defining items to skip, instead of selecting them through a browse button. And my rules for skipping items were ignored anyway. Instead, rather than using a portable app to do the syncing, you probably just need to sync to one primary desktop, and Microsoft’s SyncToy running from that desktop works well. I configured it to sync docs/projects and apps separately, and I set my desktop-to-cloud sync service Mozy to sync just the docs/projects from the desktop (because I want double protection for things I can’t just reinstall and reconfigure). As a further step, I use Windows Task Scheduler (See “Help | Learn how to schedule SyncToy” within SyncToy) to kick off these SyncToy tasks near the end of every workday. Setting SyncToy to run at the end of a workday assumes your backup desktop is your work desktop; to sync to a desktop at home, you probably want the trigger event to be the insertion of your usb drive. TaskScheduler doesn’t natively support “mounting of usb drive” as a trigger, but you can buy MyTrigger for US$24 which enables TaskScheduler to launch SyncToy for such an event.

Default programs

Once you start reading email from Thunderbird on your thumbdrive, when you click links in msgs you’d want them to open with the browser also on your thumbdrive (especially if you might bookmark the link or enter a password). This doesn’t happen automatically; instead, you’ll get whatever app has been set as the default handler of the kind of file you want to open (where “kind” is determined by the file’s extension — the part after the dot). There is no good solution in XP nor Vista to this general problem of wanting to set usb-hosted apps as default handlers (but Windows 7 appears to support it).. However, just for the case of handling urls when they appear in apps other than the browser, one can make a desktop-hosted Firefox the default handler and then use the Foxmarks extension in that installation and all one’s other Firefox installs (including the portable one), since the extension syncs bookmarks and passwords across machines. (However, there does not appear to be any Firefox extension that syncs one’s open tabs, aka session.)

Auto-start when inserting drive

Many people like certain apps on their drive to launch as soon as it’s plugged in. PStart is a portable application with a small window (aka “panel”) where one can list other apps hosted on the same drive, and set some of them to launch when the drive is mounted. To make this work, however, one needs to configure each desktop OS to “autoplay” usb drives whenever they are inserted. XP and Windows 7 will prompt you if you want this done when you plug in your first usb drive, but Vista requires extra work:

  1. Open your run box (Start | Run) and type regedit and click OK.
  2. Go to HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer.
  3. You should see a key called NoDriveTypeAutoRun (see picture below). Double click it and set the Value Data to 91 (hexadecimal).
  4. Restart your computer and it should be fixed.

Now install PStart to your usb drive.

Once it’s installed, open its panel and go to Setup | Create autorun file. Select the drive letter that’s mapped to your TrueCrypt container. (You might want to tweak the autorun.inf file even further.)

You can also tell PStart to launch any programs listed in its panel when PStart launches. To do so:

  1. Right-click on the item in the panel (or add it by right-clicking in an empty part of the panel and selecting “Add file”)
  2. In the dialog that appears, click the Advanced tab
  3. In this tab, set Autorun to “on startup”

Reminder to take your drive when you log-off

This is useful, but the Quiet version requires that you log-off instead of using Safely Remove Hardware.

Force apps to release thumbdrive

If you often have the problem of Safely Remove Hardware failing to dismount the drive, you might consider this workaround. However, there seems a pretty fair chance of data loss. (If you use PStart, the culprit might be that in Settings you don’t have “when closed” set to “exit application”.)

I’ve heard that Windows 7 will actually tell you what application is holding onto the drive (but not what file it’s using).

Reward if returned

You probably want to create a text file at the root level of your drive called REWARD IF RETURNED.txt providing your email address, and make sure the file remains unencrypted. Or, you may want to make the name of the drive your email address or phone number.

Mozilla Firefox browser

I prefer Google’s Chrome browser, and there is a portable version (steps available below) but I haven’t found any way to export bookmarks once one starts using the portable version; that’s a critical flaw, because when I’ve installed updated portable versions, I’ve had to lose any bookmarks accumulated since I first started using the portable version. So, I’m using portable Firefox instead. (Update: I’m using Foxmarks because portable Firefox is slow, particularly when scrolling.) For portable Firefox, I recommend the following addons:

  • Xmarks – Keep your bookmarks in sync across machines and drives
  • Download Statusbar – I find it annoying that FF uses a popup to acknowledge every download attempt, and the designers of this addon felt the same
  • Undo Closed Tabs Button – If you were too quick to close a tab and want it back, this feature will help you
  • Tabs Open Relative – When you right-click to open a link in a new tab, it should appear right next to your current tab, not way down at the right. This feature fixes that.
  • Firebug – Useful for designing/debugging web pages
  • Zotero – Useful for managing a library of e-documents, such as you may have on your usb drive

And if you really want to use portable Google Chrome, here’s how:

  1. The portable version is available from a German developer, and you’ll have to get a translation of his blog page (plus the download link) from Lifehacker.
  2. To copy over your default tabs and settings, (for Vista) copy your C:UsersyournameAppDataLocalGoogleChromeUserDataDefault contents to Portable_Google_Chrome_0.2.149.30Profil
  3. Migrating bookmarks from desktop Chrome to portable Chrome takes several steps
    1. Download and install Mark Clouden’s chrome bookmark exporter
    2. Run it and hit the Export Bookmarks button. Make sure it refers to the chrome installation on your harddrive rather than the one on your thumbdrive.
    3. We’re going to use Firefox to import the bookmarks, so we can tell Chrome on your thumbdrive to import bookmarks from it. So run an instance of Firefox where you don’t mind emptying all existing bookmarks first.
    4. In Firefox’s menu bar, go to Bookmarks | Organize Bookmarks, and delete all bookmarks in the Bookmarks Toolbar and Bookmarks Menu.
    5. Click the Import and Backup button at the top. Choose Import HTML.
    6. Select “From an HTML file, then select the bookmarks.html file you created with Clouden’s exporter.
    7. It may take awhile to import; wait for the bookmarks you expect to appear. Then quit Firefox.
    8. Start Chrome from your thumbdrive, then go to (Wrench icon in upper right) | Import bookmarks & settings.
    9. Set From to Firefox and click Import.
    10. You’ll find your bookmarks if you click “Other bookmarks” in the upper right, and then “Imported from Firefox”. You can drag items out of “Bookmarks bar” in this view right onto Chrome’s bookmarks bar. And you can drag the other bookmarks and folders onto “Other bookmarks” itself, and then right-click on empty folders to delete them.
  4. You may want to change the default download location under (Wrench icon in upper right) | Options | Minor Tweaks
  5. You may also want to tell Chrome to reopen the same pages when you restart it. Go to (Wrench icon) | Options | Basics | Startup | Restore the pages that were open last

Notepad++ text editor has a portable version of this very powerful and popular text editor. I recommend renaming the .exe file and all other folders and files that contain “++” to “NotepadPPPortable” because some sync/backup tools like Toucan have a problem with +’s in filenames.

Mozilla Thunderbird email client has a portable version of this email client and address book application. But there’s no way to connect to your office Exchange server unless they’ve enabled IMAP or POP support. (But if you have a mobile phone running Windows Mobile, its email client does support Exchange.) Also, I recommend adding the following extensions:

AntiVirus offers the ClamWin antivirus checker.  Note that this is only useful when you suspect a there is a problem, probably in a specific file. It is not a schedulable scanner. You would probably use it only after disconnecting your thumbdrive from a computer you have borrowed.

WinAmp media player

Just copy C:Program FilesWinamp to your thumbdrive. But disable Winamp Agent, or it will prevent unmounting the thumbdrive.

Unzip / file compression

I used to use the version of 7-zip available from, but I find its UI very nonintuitive and am now very happy with IZArc, which has a portable version.

OpenOffice for docs, drawings, spreadsheets offers OpenOffice. OO’s doc writer is a great replacement for MSWord, and its drawing app is far better than Visio in my opinion.

PDF-XChange viewer

This PDF viewer is free, portable, and supports highlighting, comments, and typewriter features. The typewriter is great for filling out forms.

I’m providing a link for the PDFXChange download, because the creator’s web site is so poorly designed and confusing. But the software itself is really good, and I bought a license for the extra features.

Application launcher

Launchy is a very popular choice, and its online PDF help file explains how to run it in portable mode. An alternative that bundles encryption and autorun scheduling is GeekMenu.

Skype messenger and internet phone

I haven’t tried it portably, but here’s a tip.

Eclipse IDE

(A programming environment for Java, C, and other languages like Prolog)

These instructions are adapted from a forum post on

  1. If you’re going to use SVN as source control, make sure your SVN repository has a publicly-accessible IP address, or that you can access it via VPN.
  2. Run all updates in the Installed Software tab.
  3. Select Core SVNKit Library under Graph, Subclipse
  4. Select SVNKit Adapter under
  5. Disable SVNKit library version
  6. Once you launch Eclipse and select a workspace, the full filepath to that workspace — including drive letter — will be saved to eclipseconfiguration.settingsorg.eclipse.ui.ide.prefs. Because the drive letter assigned to the thumbdrive can differ across machines (and even across uses of the same machine), you probably want to edit this file so that the final line has no drive letter. For example, mine is RECENT_WORKSPACES=ProjectsEclipseWorkspace
  7. Eclipse seems to change eclipse.ini each time it runs by updating the ‘-vm’ value, and for me it puts an absolute path there including drive letter. So you may want to make eclipse.ini read-only to avoid this bug.

Unfortunately if you are a Prolog coder wanting to use Eclipse, there is no way to work truly portably. There is just one version of Prolog that runs in Eclipse that I know of, Amzi (which works very well), but it depends on environment variables in your OS and there is no way to provide these vars via an Amzi config file (yet). However, if Amzi is installed on your desktop, then an Eclipse running from your usb drive will be able to support Prolog. I have only tried this when I’ve installed Amzi on both the desktop and in the Eclipse on my usb. Here’s how:

  1. Go to the Amzi Logic Server download page and scroll down to section “3. Existing Amzi! and/or Eclipse Users”. Follow that.
  2. When prompted for a Destination Folder, be sure you select a folder on your thumbdrive (I selected “F:AppsAmziProlog”).
  3. When that’s done, you can enable Prolog support in Eclipse by following Amzi’s install instructions in the section on Existing Eclipse Users.
  4. After restarting Eclipse, go to Windows | Open Perspective | Other | Prolog.
  5. Then do the same to open the Debug perspective.

Task manager / Todo list

I’m not quite obsessive enough yet to need a multi-level task manager, but ToDoList offers that capability and can run portably.


  • An app that monitored the health of the usb drive and warned me when it’s time to copy its contents to a new drive. (I already try to auto-sync the drive to my laptop at home whenever I remember/have time to plug it in, and that laptop auto-syncs in turn with Mozy.)
  • A desktop-hosted antivirus that scanned any usb inserted before allowing it to autoplay.  This may just require me to hunt more; I currently use Kaspersky, which seems to work very well, but it’s not clear if it does this and their tech support has ignored my questions about it.
Print Friendly, PDF & Email