Posts in Category: Technology

Anki 2.022/Latex/Mavericks Problems and Solutions

For the last few days, I’ve been working through an unexpected problem with lovely, dependable Anki, which is a flashcard program that I use to memorize everything from my students’ names (it’s genius for this) to tricky integral and derivative formulas.

It turns out that all previous versions of Anki (so far as I can tell) worked with whatever TeX distribution you install on your Mac, as long as

  1. You had dvipng.
  2. latex and dvipng were on your default path.

This is not true with Anki 2.022 (presumably it will continue to fail for higher versions of Anki), which won’t find latex at all unless you’ve installed MacTeX (which installs in /usr/texbin) or BasicTeX (which I guess installs either in the same place, or someplace else that Anki can find it).

If, like me, you have a TeXLive distribution, you’re in trouble until you discover the “Edit_LaTeX_and_dvipng_calls” add-on for Anki (tip of the hat to one Soren Bjornstad for this one– you, sir, have saved my bacon royally with this one). The trick is to open the add-on, which gives you a piece of Python code containing the line

newLatex = [“latex”, “-interaction=nonstopmode”]

which you need to edit to insert the complete path to latex, as in

newLatex = [“/usr/local/texlive/2013/bin/x86_64-darwin/latex”, “-interaction=nonstopmode”]

If you don’t know the path, you can get it by opening terminal and typing “which latex”. This should show you the entire path on your machine. 

Repeat the process with the line

newDviPng = [“dvipng”, “-D”, “200”, “-T”, “tight”]

which, again, needs the entire path to dvipng, as in

newDviPng = [“/usr/local/texlive/2013/bin/x86_64-darwin/dvipng”, “-D”, “200”, “-T”, “tight”]

As before, you can get the path (if you don’t know it) by typing “which dvipng” in terminal.

It’s likely that if you have TeXShop (or TeXWorks) or something similar, then you have either TeTeX or TeXLive as the underlying TeX distribution, and you’ll have to do this. Or, I guess, install MacTeX on top of your existing distribution.

Happy memorizing! And many thanks to Damien Elmes of Anki, who helped me work through all this.

The vale of tears that is Mavericks

So I thought to myself: sure, it’s an Apple update, why not change my machines to 10.9 (“Mavericks”)? This was my entry into the system-administration-hell that is OSX Mavericks. The appeal of OSX for science users was always that it’s a supported hardware platform with the few paid applications that you really need (mainly Mathematica and Papers, and every so often something weird like Final Cut or Photoshop) running on top of a functional and programmable Linux box. Nobody ever thought Darwin was a particularly good linux distribution. But it basically worked, and you could get work done.

And then along came Mavericks. In which everything that you learned to live with in the previous Darwins has simply been savagely trashed and gratuitously broken.

Where to start with this? They removed the debugger. The debugger. Yes, Apple, many of us still use the gcc/gdb toolchain because XCode (while it’s great for making gee-whiz windowing applications in Objective-C) offers essentially nothing to the scientific programmer except a complete lack of portability. And icons. Lots and lots of icons. And menus. But don’t worry! They replaced gdb with the (experimental) lldb. A debugger which doesn’t even have an emacs mode associated with it.

Polymake doesn’t work. I have an entire extra system that I’m keeping alive just because it runs polymake.

Valgrind support is “experimental and mostly broken”. Valgrind!

It’s taken me weeks just to port my old research code over to the new machines, and the job is still not really done. I don’t even want to go into the various graphics issues. Does CUDA work? OpenCL? Color management? This thing is the Windows Vista of Mac operating systems. I’m seriously thinking about scrapping the whole enterprise and going to Ubuntu.






Unity! (And something amazing from the DoD)

I’ve now spent a few days rebuilding my web game TaylorTurret in the public game engine Unity. As always, when you finally find the right tool for something, you spend a lot of time wondering why you didn’t do it this way in the first place. This thing is really amazing! It does all the lighting, rendering, model management, sound, level building and so forth from what’s really a pretty decent GUI. And then you can code the parts that actually need to be coded in a few different languages, including the (evil) JavaScript, but more promisingly C# and a weird python derivative called Boo.

Plus, I found something truly great, which is the ADL 3D repository. This is a repo of really good 3d models for simulation environments collected across government (seems like mostly DoD) projects and available to YOU for FREE. This is run by the Advanced DIstributed Learning labs, which is a DoD project that I wasn’t aware of before, but seems to be quietly making a serious run at the kind of computer-enabled education tech which I’m completely fascinated by and is being done with infinitely more PR heat (but I seriously doubt better actual results) by the MOOC community.

So I’ve got a game design, some models, and I’m following along happily with the Space Shooter tutorial series at Unity. Seems like a good day to me!