Andrew Harmsworth reviews ImagePrxy, a Cache for Oregano
I have owned Oregano 1.10js for some time now. In fact, I bought it when Oregano 2 was announced as "imminent". Unfortunately that was some years ago, and whilst it worked well, it lacked a cache and was slower than Fresco. Its one huge advantage for me was that Fresco would crash my RiscPC at least once a week, regularly leaving me to resort to DiscKnight to repair my hard disc.
Even though at the time I was using Oregano over a fast network connected to my home, the lack of cache irritated me. For one thing, even saving images out in their original format requires Oregano to re-fetch them. I finally gave in and bought ImagePrxy, as it sounded just the ticket and it didn't seem as if Oregano was going to be updated anytime soon (it wasn't).
ImagePrxy is first installed inside Oregano, and on loading the browser, sits alongside it on the iconbar:
Personally I would prefer for it to be fully-integrated, but that's a minor point. The program does install inside Oregano (in a sub-directory called Cache) but I surmise that adding a "Cache Choices" to Oregano's menu would involve altering Oregano itself.
Developer Image Software has created a number of add-ons for Oregano over the years. Nutmeg is the basic cache, whereas ImagePrxy is more sophisticated. Somethings called Cassia and Paprika also exist, but there is no information on these on the Image Software website.
ImagePrxy is more than just a cache - as its name implies, it is a capable proxy server (for the unenlightened, browsers can point to it to request file fetches either locally or over a network from other machines). Its iconbar menu pulls up as follows:
Let's run through these features one at a time.
As one would expect, the ability to store files that have been fetched to your machine is catered for. These can either be kept until the program quits, or files over a certain age can be removed from the cache on quitting. Either of these takes considerable time, and the whole process can lead to a significant increase in the time taken for a CTRL-F12 to put you in the position to power-down for the night.
The "Use Memory for Caching" option (described as a turbo mode in the manual) does significantly improve its performance in use. The downside is that shutting down involves dumping more files to disc than normal.
This is a superb feature, especially as that to do so in Fresco involved the purchase of a site saving utility, the name of which is lost in the mists of time. Unfortunately, it is incredibly slow as the first thing it does is to run through all the sites in its cache, in order to build up a file list.
You then select what you want from the list, which also has subdirectories (helpful if you regularly visit sites such as BBC News, and want to save something specific). This feature works really well, and although it is slow to initialise (depending on the number of sites in your cache) the output is perfect, with every image present on saved pages.
This is undocumented and a work in progress but would offer the ability to block access to selected sites. ImagePrxy also has the ability to stop other machines (via their unique IP address) on your network from accessing the web through it. Nice touch.
The ability to point internet applications at network servers - proxies - that allow access to the web, ftp, email etc, is vitally important. Yet numerous RISC OS tools fail to offer this facility. ImagePrxy not only offers the ability to select one network proxy, but can store an entire list of them for you: neat. Proxying works well for HTTP, and is reputed to work with secure HTTPS transactions.
I was unable to get https-proxying to work properly over our network. Furthermore, using my modem, connecting to Nationwide Online Banking puts me in an infinite loop "your session has expired... click here to login again". For some reason, clicking here merely reloads the page from the cache, and no amount of hitting reload bypasses the out of date session. The solution is to turn off https caching from Oregano's menu. ImageSoft tell me that this problem is probably due to Nationwide's server not properly downgrading for HTTP 1.0 clients. Ah well, at least Oregano copes with it on its own...
A history list is accessible, and is remembered on restarting the application (even after a reboot). Oregano's inability to remember your history has always annoyed me, so this feature is a real boon. The history does appear, however, to be generated on the fly by looking at the cache: one would normally expect this to be instant.
As with the site saver facility, the history list appears in the order in which you have accessed the sites. Wouldn't it be wonderful if it could list your history on a day-to-day or week-by-week basis? There are some things Internet Explorer does do really well...
ImagePrxy is not the fastest program in the world, even on a StrongARM RiscPC. Looking into the !Oregano.Cache directory, the fact that it is uncompiled BASIC may have something to do with this.
Here's another story - one day I decided to run Martin Avison's Task Usage program, as something was causing problems for another application. Sadly it would seem that ImagePrxy (which reports itself as Nutmeg) was at fault:
Fig. 7. ImagePrxy's Task Usage (Idle!)
Don't get me wrong, I'm no RISC OS programming expert, but using 80% of the processor when sat idle doesn't strike me as efficient. Perhaps someone could point out what it's doing wrong?
Certain websites would cause ImagePrxy to crash with an "at line" BASIC error. So annoying was this that I had to resort to bypassing the cache altogether from Oregano... not what you want to have to do. This only happened when using it through a network proxy, and I have had no such problems when using a dial-up connection.
I have yet to purchase Oregano 2. I guess I just don't use the web at home as much as I do at work. However, the demo appears capable of working through ImagePrxy by pointing its proxy setting at 127.0.0.1:8080 (as is done with Oregano 1) so the fact that the newer browser still lacks a cache is less annoying than it would otherwise be (a retrograde move would be unwelcome).
Oregano 2 is significantly faster than its predecessor - at fetching and rendering - so it's an upgrade I may be tempted to make sometime soon. Darren Windsor, author of ImagePrxy, told me that he may release a new version of Nutmeg (et al) for Oregano 2 if there is sufficient demand. Apparently Oregano 2 uses persistent connections which ImagePrxy can proxy, but not cache, so a complete re-write would be necessary to bring a cache (that won't crash) to Oregano 2. Wouldn't it be nice if things just worked?
On the whole I have been delighted with the additional features that the program offers to Oregano 1. It does make web browsing faster, especially when revisiting sites on a regular basis, and performs best through a modem. Whilst the program has its faults, these are far outweighed by its numerous benefits and I would recommend it to anyone who has Oregano 1 and wants to improve its functionality without wishing to fork out on Oregano 2.