Thursday, May 19, 2016

Matlab RF Toolbox and alternatives

We're currently seeing a bit of contention for the one license we hold for Matlab's RF Toolbox.
In polling the Electromagnetics group profs about the need for any more licenses for RF, I heard back from Prof. Triverio that there is a free user-contributed toolbox for importing and converting S-parameters, which was the particular feature that he had initially found in Mathwork's RF Toolbox.

Here is a link to Tudor Dima's S-Parameter Toolbox:

http://es.mathworks.com/matlabcentral/fileexchange/6080-s-parameter-toolbox--+-z--y--h--g--abcd--t-

You can download this to your local hard drive, then update the Matlab toolbox path cache to include the folder where you downloaded it, and you'll be ready to use this. There are no dependencies on other toolboxes.

If importing and converting S-parameters is the sole reason you needed RF Toolbox, then switching to this free alternative will relieve the contention for our single license for Mathwork's RF Toolbox. (If there are other functions in RF Toolbox that you do need to use, please feel free to carry on using it, and let your supervisor know so we can gauge if there's a need for more licenses for RF Toolbox.)

Wednesday, May 11, 2016

Malware prevention

We continue to be locked in an arms race against bad actors seeking to intrude into PCs we use and administer for nefarious purposes. Viruses and other malware keep innovating; anti-malware software has to scramble to keep up, requiring updates both to the 'engine' and the 'definitions' or patterns the security software checks for. These updates must be applied automatically, and users should in general not turn off this updating.

Why release malware?

In the past the biggest draws were either 
  • adding a compromised PC to a vast 'bot net' useful for sending out spam from thousands of distinct sources (making it harder to block source by source), or
  • logging user keystrokes in a quest to collect bank passwords and the like
Lately, the bad guys have zeroed in on a new way to make a lot of money exploiting security holes in other people's computers: ransomware. This involves injecting malware that runs with the user's privileges and encrypts as many of their files as it can find, including on network shares, then alerts the user demanding online payment (typically in untraceable Bitcoins) to unlock the data.

This type of intrusion is being focused on institutional users including hospitals, where our responsibility to keep data accessible for immediate use may pressure data managers to give in to these demands. The same could easily apply to research and teaching related data on UofT PCs.

Backups - the best insurance

The easy way to avoid the pressure to pay in such an event is to have current, secure backups. The backups must be located offline - otherwise the ransomware may just encrypt your backups while it is encrypting your live data. The backups must also be working properly and be readily accessible when the intrusion is detected. Doing a trial restore from your backups and verifying this brings back what you expected is the only way to be really confident the backup system is working as intended.

Prevention

Ideally we will always keep every PC so secure that no malware ever gets executed. So anti-malware software is needed. Where can we get this? Microsoft encourages all users to run their Security Essentials on any personal PC or laptop; under the MS Campus Agreement, we're entitled to run Forefront Endpoint Protection on every UofT PC. That's a good start, and we should ensure it is activated and getting updates. But is FEP sufficient? Many feel it may not be. Here's one post discussing that question:


Many third party software publishers offer subscription-based anti-malware programs for Windows. The site I prefer for seeing which of these is rated the most effective is http://av-test.org where they regularly re-test all listed products.

On their listing are a few products that offer free installation for academic use. The one I'm evaluating for this presently is 'Avast for Education' which you access through their http://business.avast.com site. It offers a free login account for you as site administrator, then lets you deploy their endpoint protection tool on as many clients as you like. Your 'dashboard' on their website lets you monitor all linked endpoints via the cloud. 

Defense in Depth


Most commenters on ransomware observes there is no 'majic bullet' to turn away this threat once and for all. They encourage 'defense in depth' where we aim to eliminate part of the risk at each of multiple points along the way:


  • maintaining regular backups, including a means to isolate backups from the desktop
    • don't leave the backups writable by the user, so ransomware can't encrypt your backups while it is encrypting your live data
  • using a firewall with frequently updated policies to block malware network activity
  • keeping endpoint (desktop and laptop) anti-malware software installed and updated
    • choose a product that covers anti-virus and internet security to block malware
  • keeping browsers locked down:
    • set up secure browsing settings
    • fewer plug-ins, remove any out of support
      • remove QuickTime
      • remove Silverlight
      • remove Flash Player
    • regularly update any required plug-ins subject to malware
      • Java 8-(
  • keeping users educated about social engineering tricks used in malware emails and websites
    • "Log in here to recover access to your... " {bank, email account, etc.}
    • "Please pay the attached invoice promptly" {apparent PDF, but virus inside}


Tuesday, April 5, 2016

What toolboxes are required by this Matlab code base?

Matlab is distributed as a core application plus a large menu of available toolboxes and blocksets which can be licensed separately. Today I was helping a Matlab user install an additional toolbox required by a project he's taking on. He mentioned that this is starting from existing Matlab code he received from another user.

When you 'inherit' existing code from someone else, one key question from the start is what are the dependencies. Of course good computer engineering practice includes documenting one's code and identifying all dependencies, to spare future users the need to trace them all manually later. But we can't always count on the person before us having done so.

So you could open a Matlab project and find it requires any number of different toolboxes. Does  your copy of Matlab have all the ones it needs? To find out, you could start the code and wait for it to halt with error messages about missing toolboxes, then see if you have a license for that, and get it installed. (You just have to hope you trial run(s) exercise every branch that reaches a dependency you need to resolve! Want to solve the halting problem while we're here?)

Fortunately, in Matlab (since R2012a) there is a 'dependencies' function, including a call to generate a list of the Matlab toolbox names that the specified body of .M code requires. You pass it a path to the location of the code you want checked, and it returns a list of required toolboxes. Voila!

Here is the Mathworks page on this:

http://www.mathworks.com/help/simulink/slref/dependencies.toolboxdependencyanalysis.html

To automate testing if all the listed toolboxes are installed, you can call

ver toolboxname

You can also test if a license is available for a toolbox using Matlab's license() function:

http://www.mathworks.com/help/matlab/ref/license.html

The license('inuse') command lists what licenses your current Matlab session has checked out (this could include any licenses you accessed during the same session that the license server has not yet timed out, including ones used by a previous task.)

Thursday, March 5, 2015

Matlab and/or the "R" statistics package

Prof. Moshovos asked me about R - the open-source stats and visualization package, and how it compared to Matlab. R is a free download from http://www.r-project.org/
I'll break this into several sub-questions:
  • Do R and Matlab address similar needs? Does R 'compete' with Matlab? 
    • in short: yes, to a good extent
  • Could the free R package replace the pricy Matlab for some users?
    • for basic tasks, it might; for specialized toolboxes, optimizations? No.
  • Would Matlab users find any benefit in learning and incorporating R in their software kit?
    • Why not - try it and see...
  • Can R and Matlab be hooked up together?
    • Yes: see RMatlab (linked below)
First, my replies are based on hands-on familiarity with Matlab but only what I've read online about R. Second, my answer to this for ECE users will differ from what you would advise the 'engineer on the street' outside of the University. For someone starting out without existing Matlab licenses, and without access to Mathworks' academic pricing, the chips might fall differently.

Our department holds a large shared pool of licenses for both Matlab, Simulink and a good range of additional toolboxes devoted to various specialized EE/CE subdomains such as power grids, communications, optimization, signal and image processing, RF, etc.

While the R community does produce some (also free) R packages for specialized tasks, I'm prepared to venture (without having searched exhaustively) that they have nothing comparable to the range of detailed, tested and optimized toolboxes offered by Mathworks.

That is (perhaps predictably) the response to this very question offered by Mathworks themselves, here:

http://www.mathworks.com/discovery/matlab-vs-r.html?refresh=true

We host training events offered by Mathworks once or twice a year. We also have access to Mathworks customer support, which we've found responsive but have not needed to resort to more than a very few times. As a free, open-source package, R does have extensive community 'support' through forums, but no dedicated technical support service. For me this is not a deal-breaker. We're all used to doing our own troubleshooting and online bug research.

Here's an interesting post by a 'forced convert' from Matlab to R (cost driven) who is now quite happy using R alone:

http://www.burns-stat.com/interview-with-a-forced-convert-from-matlab-to-r/

He goes into the issue of performance optimization: Matlab has a large full-time staff dedicated to both code quality and performance. The volunteers developing R may make efforts at both, but I suspect it's asking too much of them to compete with Mathworks on either of these fronts. Matlab has put a lot into leveraging modern multi-core CPUs and the huge floating-point performance of GPUs on better video cards (and dedicated computational GPU boards.)

Does R complement Matlab?

People like R for its strong, flexible set of visualization tools. Matlab also offers lots in the way of visualization, but some might prefer what R has to offer (I can't give an informed opinion of my own on this point.)

Interestingly, enough people have wondered about this that an open-source package "RMatlab" has been released offering interfaces both for calling Matlab from R, and vice versa:

http://www.omegahat.org/RMatlab/http://www.omegahat.org/RMatlab/

Be aware that R and Matlab have similar but distinct syntax and program structure, so mixing the two may stretch your brain a bit. This PDF goes into some of the nitty-gritty details:

R vs. Matlab syntax and coding rules

Thursday, December 12, 2013

New scientific graphing library

I just came across a mention of this new library of scientific graphing routines. Their API supports Matlab, perl, python, R, Julia, REST and Arduino. I haven't tried this out yet, but it looks quite powerful and worth checking out. If anyone finds it useful (or not) please email me your feedback and I can update this post.

https://plot.ly/api/MATLAB/#!

Friday, June 29, 2012

Ordering MS SCEP licenses in uShop

The UofT Licensed Software Office lets department staff place electronic orders for software licenses for a number of products through the central uShop procurement system. ECE faculty who need to order licenses for Microsoft System Center Endpoint Protection (to replace expired Symantec licenses) can have their admin assistant order these through uShop at the very affordable price of $3.25 per licensed PC per year. Simply count up the number of Windows PCs you need to protect with SCEP, and order that many licenses. These are good for one year and you will need to reorder annually. If you acquire more PCs during the year (without retiring an equal number) and thus need more licenses, simply place another order for the net number of additional licenses needed.

Let your admin know which FIS numbers to charge, and refer him or her to these steps. Here are screen shots of the steps to follow (steps for each screen are in the caption below the image):

Log in to uShop and click on "shop" to begin the order


In "step 1" click on 'Licensed Software Office'
(you may have to tell your browser to allow the 'pop-up' window)

At the top left, click on 'Software'

Click on 'Microsoft' (text below the MS logo)

Click on 'Servers' (text below the logo)

click on System Center 2012 Endpoint Protection (text below logo)

In the Qty: box below SC2012EP, type in the number of licenses you are ordering;
if you don't already have the installer, also fill in Qty: 1 under "CD..." to get a CD for $4.
Then click 'Add to Cart.'

Review your order details, then click 'Checkout'


After you click Checkout you will go to screens for filling in the FIS account numbers (screenshots omitted).

UofT Twitter accounts

 I noticed that some UofT peeps doing campus life promotion are using Twitter accounts with something followed by 'UofT' or '_UofT' in their twitter account name. So I tried a search of usernames containing "UofT' -- wow, there are a lot!

This link shows you a current list: Twitter accounts with 'UofT' in the name

ECE has a twitter account: @eceuoft

The IBBME (which includes some ECE profs) has one as well: @IBBME_UofT

Besides these I'll leave you to find more that interest you. There are some 'official' feeds from units within UofT such as libraries, departments, campus papers, etc. There are feeds for many student associations including the GSU, ASSU, etc., departmental student groups, charity and service groups, and for groups for students from many countries and regions.

Wednesday, February 22, 2012

network simulation in Matlab

Today at lunch Prof. Valaee asked if there are any Matlab toolboxes or packages for modeling computer network activity, comparable to the ns-2 and OPNET packages.

Here are a few links I found that offer various approaches to this in Matlab. There seem to be several for wireless but not so many for wired. I have no info on the quality or usefulness of these, but I've linked them here for ease of reference if anyone wants to explore this. (When searching, a lot more matches come up talking about "neural network" simulation - for this purpose, those are false positives. You could try adding "-neural" to the query to exclude these.)

The Mathworks, Inc. has a series of instructional videos covering Matlab features and their applications. Here's a brief one on using SimEvents and StateFlow (both included in our R2011 and newer) to model ethernet traffic in an event-based format. This may be the closest to what Prof. Valaee had in mind.

Wireless Matlab is an open-source project from 2006 hosted at sourceforge. The blurb specifically compares this effort to ns-2 and OPNET.

10Base-T Ethernet is a user-contributed model of four NICs using CSMA/CD on a segment.

LTE Simulators (for non-commercial academic use) simulates an LTE wireless network in Matlab.

Prowler attempts to simulate distributed embedded systems and sensors, and the impact of wireless channel congestion on their performance. Probably more specialised than what we'd use in ECE.

This paper covers simulating network congestion and its impact on real-time systems control, using an additional toolbox called TrueTime.

This 2004 IEEE paper covers linking together multiple simulators, using ModelSim, Matlab, and ns-2 together Using ModelSim, Matlab/Simulink and NS for Simulation of Distributed Systems

Thursday, February 16, 2012

GPU computing in Matlab

February, 2012

We're in the process of putting together a group order for many more licenses for Matlab's Parallel Computing Toolbox (so far we have just two.) This is useful to get Matlab making much more effective use of multi-core CPUs, including systems with dual CPUs as well as CPUs with 2, 4 or more cores. One Matlab session using one PCT license can initiate up to twelve parallel "worker" processes to handle concurrent tasks. We're seeing more and more multi-core systems in mainstream PC configurations.

One particular feature of PCT is its support for direct access to CUDA-capable GPUs. Many nVidia display adapters (video cards) include CUDA capability to one degree or other. This page explains what this enables:

Matlab GPU computing via PCT

The GPU must meet a minimum requirement of Compute Capability v.1.3 or higher. Most current nVidia cards that are CUDA-capable now offer CC v.2.1. Note that not every nVidia card is CUDA-capable even today; the lowest-priced cards omit this, and lower-mid price range cards may include some CUDA support, but with fewer GPU multiprocessors (and thus fewer total GPU cores - there are 8 cores per MP).

I gathered info on the GPUs in any nVidia cards in our Tier 1 linux workstations. Unfortunately the great majority of these are a bit older and most only offer CC v. 1.1, so they can't be accessed by PCT at least via the easiest route. It looks to me like there are other things you can do with building CUDA kernels (e.g. in C, compiling with the 'nvcc' compiler) and then calling those kernels from Matlab. I haven't gone into the details of those methods to see whether / how Matlab would support that. I also have surveyed only a small proportion of Tier 1 Windows PCs so far, and I have no way to check what  GPUs may be in any Tier 2 and Tier 3 PCs. That's up to you; here's how to check.

Testing if your system has a CUDA-enabled GPU

You can get the make and model of your video card without opening the case as follows:

  • In Windows, open Device Manager (right-click on "My Computer", choose "manage") then look at the Display Adapters section. It will list make and model.
  • In Linux, at a shell prompt, type: lspci | grep VGA

You can also ask Matlab to tell you if it has detected a CUDA-capable GPU in your PC. For this to work, you need up-to-date nVidia video drivers installed. The commands are:

gpuDeviceCount

{should return 0, 1 or 2 if you have a dual-GPU setup!}

gpuDevice

This displays a block of info about your GPU, including what ComputeCapability ver.# it has.

Here is Matlab's page on Identifying and Selecting a GPU in Matlab

If your system doesn't have a GPU
  ... or yours GPU's CC version is too old for Matlab PCT

If you want to take advantage of CUDA from Matlab, the best route (once our big order of more PCT licenses arrives) would likely be to buy a newer nVidia card, taking care to select one with enough GPU cores for what you want it to do.

Overall 'you get what you pay for'; card prices tend to work out to about $0.40 to $0.85 per GPU core. While there are a very few under-$80 cards with CC 2.1 (and at 50-65W, no PCI-power cable needed, see below), these have only 6 or 12 GPU MPs (48 or 96 cores). You need to spend at least $90-100 to get a mid-range CUDA GPU unit with 24 or 30 GPU MPs (192 or 240 cores; e.g. GeForce GTX 260, 275, 280, 285) and you'll need PCI-power cabling to supply their power draws of 200+W.

POWER DRAW
One thing to watch out for is that the more powerful CUDA-enabled cards are both larger and have much higher power draw than a typical video card. So you need to ensure first that there is room in your PC case for the card, positioned in the correct type of PCI slot (typically PCI-express x16). Next, you need to see if your PC's power supply has enough spare power to drive such a large card, and whether it has the required PCI-power connectors. These are either 6- or 8-pin plugs with yellow and black wires (for 12v and ground). Different GPU cards require either one or two 6-pin PCI-power connectors, or on the largest cards, a 6-pin plus an 8-pin or two 8-pin ones. The spec calls for 6-pin plugs to deliver 75W, and 8-pin plugs 150W. Only very specialized and high-output power supplies have any 8-pin connectors, and small to mid-size power supplies often don't even offer any 6-pin ones.

You also need to consider cooling and airflow for these. Perhaps plan to include a good GPU card in your next new system purchase, and have your PC supplier ensure the case and power supply are up to the heat and power loads.

Which boards?
Here is a link to a list of all of nVidia's CUDA-capable GTX video cards. (I haven't listed the Quadro or Telsa boards.) Each name links to the info page for that model, where you can find the specs including # of cores, Compute Capability level, power draw and power connector requirements.

I've compiled a summary of that info for several models currently for sale plus a few of the ones we have in place. I don't think this blog software does tables, so here is a table of nVidia GPU cards with CCC >= v.1.3, showing number of cores, power draw and PCI-power connector counts, and links back to nVidia's product page for each item.

Friday, November 11, 2011

Matlab for Mac

There are changes to Matlab under Mac OS X. In particular, OS X "Lion" requires Matlab R2011A or later. Our group license servers will not be able to upgrade to a license key for R2011A, due to licensing changes from Mathworks.
Instead, users needing R2011A or later will need to point their Matlab to our new license server. We currently have this running on a temporary machine for testing and early deployment, but we need to defer rolling out R2011 to all of ECE until we've had time to build and test our new department-wide server (which will be virtualized, so we need to license and configure VMWare server, etc. as well.)
Current Mac users who want to upgrade to OS X "Lion" will need to contact us about getting R2011A or newer, set up to use the temporary license server.
We're distributing the Mac edition via USB key, as this is much simpler for users than running the installer.
(Editions of Mac OS earlier than "Lion" can still use Matlab R2010B or possibly even earlier, using the existing group license servers.)

Wednesday, November 9, 2011

Scientific graphing

Further to my earlier post on advanced graphing, here are a few more options.

Now and then students ask about getting SigmaPlot, Origin or similar high-end data analysis, plotting and graphing software. Unfortunately the main commercial products in this field are quite pricey. An academic license for SigmaPlot lists at US $549. Origin for one UofT PC costs $550. OriginLab does have much lower prices for Student Personal Use licenses, ($50/yr.), but you must pay with personal funds and the license can only be used on a student-owned computer (your own laptop or home PC, not an ECE PC.) OriginPro Student Personal Use license 

Fortunately, for any task as broadly required as this, we usually find a range of good, low- to no-cost software as well. Many may be less polished or have fewer features than the top commercial entries, but are well worth checking out first. Here are a few I've dug up so far:

The Licensed Software Office carries IBM SPSS, popular in the social sciences, for Windows, Mac and Linux at $80 for a one-year license (Aug.1-Jul.31) for Faculty and staff, or $60 per year (Oct.-Oct.) for students.

SciDAVis is free, open source software for 2D and 3D plots, available for Windows, Mac and Linux: SciDAVis feature summary.

The free statistical programming language called 'R'  has powerful graphing and plotting features, as I mentioned in my earlier post on advanced graphing. It is available for Windows, Mac and Linux.


QTiPlot is a lower-priced alternative to Origin, SigmaPlot, SPSS etc. It has a variety of licensing options and pricing.

DPlot for Windows costs $195 and offers a time-limited free trial (output images contain a watermark).

Monday, August 29, 2011

Matlab "clones"

Our department has a Matlab license with quite a comprehensive lineup of specialty toolboxes and Simulink blocksets. Students and staff are allowed to use this license remotely from anywhere within Canada, the USA and Mexico (why these? something to do with NAFTA, apparently.) So please don't use our ECE network license to run Matlab on a computer located outside this region (remote login from anywhere to run the code on one of our computers here is permitted.)

But what about after graduation, or for friends and family who may need powerful simulation, matrix arithmetic and m-code functions? Well, aside from the Student Edition of Matlab, there are a number of free products available that provide some similar functionality, including an effort at m-code compatibility. This page offers a write-up on three such packages: FreeMat, Octave and Scilab.

I've heard good things about Scilab in the past, though I haven't tested out any of these three. Prof. Mann has made extensive use of Octave, I understand.

Thursday, June 30, 2011

Base windows config

The set of things we recommend for any Windows PC, and which we aim to keep installed and updated on PCs we manage, covers a range of free add ons. Here's a start at a current list, as of June 2011:


  • Windows Update or Microsoft Update - all updates, patches and service packs
  • A current commercial antivirus subscription
    • Symantec Endpoint Protection is free to all UofT users at antivirus.utoronto.ca
  • MS Security Essentials
  • Mozilla Thunderbird email client - currently at v.3.0 from mozilla.com
  • Web browsers (MSIE required; user choice of Firefox, Chrome or both)
  • Spybot S&D anti-spyware - free from www.safer-networking.org - protects browsers
    • uncheck "Use TeaTimer" during install
    • update, then immunize (takes some time) after that it will auto-update periodically
  • Browser plug-ins:
    • Adobe Flash player from get.adobe.com/flashplayer - visit in each browser
    • Web of Trust search security tool - visit www.mywot.com in each browser and click the button to add the corresponding plug-in for that browser - repeat for MSIE, FF, Chrome
  • Adobe Reader X download from get.adobe.com/reader/
  • Putty 0.6 - download from sgtatham - copy to All Users--Desktop
  • WinSCP standalone - download from winscp.net - copy to All Users--Desktop 
  • 7-Zip free archive reader/writer from www.7-zip.org - reads WinRAR format
  • Mendeley citation manager application and browser plug-ins from www.mendeley.org
  • Browser setup (in all chosen browsers)
    • bookmarks/favorites for commonly used UofT sites (library, IEEE, ECE, group, etc.)
    • Google Scholar preferences: add UofT as a library for "GetIt(TM)" links in results

Friday, May 27, 2011

GetIt(TM) at Utoronto in Google scholar search

There is a preference setting in the Google Scholar website to let you tell it what libraries you belong to, including the UofT library system.
Go in advanced settings, fill in university of Toronto as a library, and save settings. From now on, your search results in Google Scholar will be annotated with links to access full text of articles and books that our library has. The link says "GetIt(TM) at Utoronto"
Using this on campus gets automatic access to content held by our libraries. To use this from off campus, you need to use the library portal, myaccess.library.utoronto.ca and log in with your UTORid.

Wednesday, May 25, 2011

Advanced graphing

Several packages exist for graphing and plotting data. This is just a sampling of some options.

  • Matlab's built-in charting via the plot() command is quite powerful; you need to read up on various options to get the most out of this feature. 
  • Microsoft Excel has extensive charting and graphing features. Whole books have been written on these...
  • Unix and MacOS users can use gnuplot and there is even a Windows implementation in cygwin.
  • Dedicated statistics software such as SAS, SPSS and Stata have their own charting features. UofT's Licensed Software Office carries these three packages.
  • A more expensive dedicating plotting software package is Origin/OriginPro from OriginLab. Educational pricing starts at $500, so this is a premium option if your supervisor's grant can handle it. See this page for Origin academic pricing and terms. They offer a low cost student personal use license at $50/year, 2 year limit, but only for use on student-owned PCs - you cannot use this on a PC owned by ECE/your supervisor.
  • The open-source statistical programming language "R" for Windows, MacOS and unix/linux has graphing capabilities; see this intro to graphing in R
  • Those coding applications for the web or for a desktop O/S have a number of options to incorporate data plotting:
One post on physicsforum also listed these other alternatives to gnuplot, which I haven't tried, but which look promising: 
  • GRI, a language somewhat like LaTeX for coding scientific graphics (no GUI)
  • Asymptote, a technical drawing vector-based graphics language
  • Octave, a GNU project similar to Matlab
  • GLE, Graphics Layout Engine, a graphics scripting language that uses LaTeX and supports mathematical formulas. The latest edition includes QGLE, a GUI editor for GLE objects.

MathType, or something else?

Engineers need to compose equations, often quite elaborate ones, for their publications and talks. There are a number of ways to do this, and we've seen people try and use many of these here in ECE:

  • TeX / LaTeX - a free, open source package; a long-established text markup system, requiring a processor to convert from the marked up text to the formatted output.  Available on Linux and Solaris without any GUI, can generate PDF or PostScript output for printing; preview PostScript files with ghostscript. Several implementations also exist on MacOS and Windows. I'll cover LaTeX implementations in a separate post.
  • MathType - a commercial product, an add-on to Microsoft Word. The built-in equation editor in Word is actually a simplified version of MathType. (Hint: try the MS equation editor first to see if it is adequate to what you need.) The commercial MathType package offers more symbols and equation layout types. You need a license for each PC on which MathType is used. We don't have a site license for this. Your supervisor can order single copies direct from the publisher, Design Science. Academic pricing is modest at just $57. A free 30-day trial is available (just don't try to do your whole thesis on the 30-day trial! If you need this, ask your supervisor and it should be possible to pay for a copy. If not, then check out the free alternatives in this post!)
  • OpenOffice.org Math - For those running Open Office, the open source clone of MS Office, you have the option to install this free plug-in similar to MS Equation Editor. Beware that equations entered in this way may not display or output correctly if the document is opened in MS Office itself (i.e. in Word or PowerPoint.) Bring a copy of OpenOffice with you, or export to a PDF for presentation or print output, and verify the quality and accuracy of the results.
  • One other I have not seen but that sounds worth checking out is MathCast, a free, open-source product for MS Windows. It supports both Word and OpenOffice.org Writer, and is built on open standards XHTML and MathML.
I learned about MathCast from this page on eHow: http://www.ehow.com/list_6370631_alternatives-mathtype.html

Tuesday, May 10, 2011

Extracting data from a printed graph

I was reading about someone trying to analyse a data series for which they had only a printed graph. They took the trouble to estimate by measurement each point in the data series, so they could build a new graph from the data. A commenter in the discussion thread pointed out that software exists to help automate this process. That sounded like a potentially useful tidbit to note for future reference, so here's the link (just the Wikipedia page on this type of software, but it links to several products for this and includes useful discussion on how to get good results)

http://en.wikipedia.org/wiki/Converting_scanned_graphs_to_data

Friday, May 6, 2011

CNRI - handy handle extension for DOIs in Firefox

If you do any research online, you'll recognize the DOI: handle for Digital Object Identifiers. These text strings are a globally unique and permanent reference to the digital form of a published work. Virtually all academic journal publishers with a web presence assign DOIs for each article in their journals.

Following the DOI on the web leads the reader to the web page where the article appears. The page it leads to typically displays the article abstract, with links to the full text of the article as HTML and/or PDF, possibly restricted to subscribers only, and offering non-subscribers a choice to pay-per-view for the single article (at sometimes jaw-dropping prices...)

OLD WAY

The "old way" to resolve a DOI that was not already formatted as an HTTP web link to the abstract page was this:

  • select the DOI string and copy it to the clipboard
  • open a browser and visit dx.doi.org
  • paste in the DOI string and click to get the DOI resolved

That's not so hard, but it does require a trip to a specific site - either memorize and retype its URL, or make it a bookmark among your top picks. I'm finding space for such frequently needed bookmarks has gotten crowded over time.


NEW WAY

This handy Firefox plugin CNRI Handle Extension for Firefox lets Firefox users avoid the need to visit dx.doi.org, and simply paste a DOI: string into the address bar. The plug-in adds a new URI type "DOI:" that Firefox now understands. It does largely the same thing as visiting dx.doi.org and submitting the DOI string there, but saves a trip to that page. The resolving happens in the background.

After adding the plug-in and restarting Firefox, I tried this out and pasted "doi:10.1175/2010JCLI3500.1" into the address bar. It worked! The browser went directly to the J.Clim. page for this paper. It did not even rewrite the address bar to substitute the HTTP:// format URL for the same page. That's a point to beware of: if you start using this, remember that everyone else may not have installed it yet. If you want to post or link to accessible URLs for others to get to an article you're citing or assigning, be sure to find the "permalink" HTTP:// URL for the abstract page, rather than just the DOI string.