Jiro's post last week prompted a lot of very interesting comments. Today, Jiro and I would like to share publicly a discussion we had about one of them. (We'll be considering some of the others in future posts.)
Brett: Jiro, last week you wrote an open letter, asking people for their input on topics they'd like to see in the POTW blog. We've been getting some really interesting (and legitimate --I think we owe some people some swag!) ideas. I was particularly intrigued by Sven's comment. Sven asked if every serious MATLABber has a “File Exchange” folder on his or her path. I hadn't thought about the ways people manage their downloads, but now I'm really curious.
Personally, I have a directory called “MFILES” that I add to my path, recursively, on startup. Within that directory, I have many sub-directories, including one I call “DOWNLOADS.” Submissions I get from the File Exchange typically go there, each in its own folder that I label with some descriptive name that helps me know at a glance what it contains.
Is that similar to your file-management approach?
Jiro: That's sort of similar to my approach. I also have a folder where I put all the files I downloaded from the File Exchange. I call it “FEXDownloads.” Inside that folder, I have a folder for each entry. However, I don't have any of them on my MATLAB path. I use that as a place to keep track of everything I downloaded and tested. If I find any of the entries useful for my daily use, I move that content to a different folder called “MyReceivedFiles,” which is on my MATLAB path.
I'm not very consistent on how I organize the files in “MyReceivedFiles,” though. Initially, I put all the functions directly under this folder. But that quickly started to make the function list large, and occasionally some of the function names would clash with my own functions. Then, I started to put some of them into packages. This way, I can create additional namespaces. For example, I have a folder called “+WordPress” inside “MyReceivedFiles” (which is a utility I got from a colleague to publish my blog posts), and I call it like this:
Sven had another great question about * versioning * . The File Exchange does have a “Watch this File” option to be alerted when a file gets updated. But aside from that, you have to manually download and manage the versioning, right? Do you have any other tips?
Brett: I've been known to move downloaded files off my path—particularly if I find they create namespace issues, or if they are buggy or poorly executed. (There are some great files on the File Exchange, but there are some that aren't great, too.) But my default is that they start out on my path. The packaging idea is a good one; I might have to try that.
I wish I had some great tips to share regarding downloading updated files, beyond simply “watching” the ones you're interested in, reading the update notes, and manually downloading when a bug is fixed or something interesting is added. Automatic updating is an intriguing idea, but one that frightens me a bit. If we ever got to that point, I would absolutely move all of my direct downloads off-path by default, and only move them onto my path after I've had time to validate them.
Jiro: Right. Because the File Exchange is very open (very little moderating), you do have to be careful about the quality and test them before you are comfortable to add them to your path.
Well, I wonder how other community people manage File Exchange downloads.
Brett: How about it, readers? Does anyone have a different approach to managing File Exchange downloads (or for keeping abreast of changes to their favorites) that they'd like to share? Tell us about them here!
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.