Saturday, June 20, 2009


The work on the shader compiler has slowed down as I've been busy with some stuff related to work, but the kind of things that I can do at home too 8)

I have to prepare some sort of report of some of the things that I've worked on in my current project. It's not very clear what is going to happen with this document. It's supposedly first for internal publication on the company's web site and then possibly to present somewhere to some convention.

A few reports were already produced by some of my coworkers.. and much of the focus there was to write something easy to understand and in Japanese (directly or translated). Which is pretty much what you want to do to publish on the company site, but not at all if you want to release the report to the world.

I've instead shifted towards the more academic style publication even though I don't think I'm going to be able to write any killer paper.. especially not in a week by myself and with no proper academic background.

I read an interesting article from Mr. Jim Kajiya titled "How To Get Your SIGGRAPH Paper Rejected".
It's from 1993, but supposedly still very valid. I liked the spirit of it. I especially liked the comment on papers getting so technical and the need to propose something different. For example, some papers are about a whole system rather than a very specific technique, but at the same time there is perhaps a tendency to prefer those papers that are intensely focused on a subject.

Well, I like the idea of giving more room to less academic writing because what I'm writing about is more about a system, a series of practices and not really focusing on any specific technological or mathematical advance 8)
Regardless, any serious paper should be keeping a few people busy for months.. while right now it's just me busy for a week or so.

The big problem however now is what to write. Who is the reader ? Some things are going to be dead obvious to a whole group of readers: "child play !". Some other things are going to be complete gibberish to others.
Opportunities to piss people off are countless 8)

Now, about getting the job done.. I have to admit that much of the time is being spent to actually getting used to the tools. Forget MS Word.
Sometimes you need more than "What You See Is What You Get". When writing a paper, there are references to keep track of, constantly changing layout, formulas, figures.. this is a job for LaTeX !

..I must admit that when hearing LaTeX I immediately think for a broken student swearing in front of some Unix machine and dreaming of some capitalistic Microsoft software.
I have MS Word at work and so I tried that route first. I however quickly gave up, because it becomes a lot of manual labor to deal with all layout details, references, figures.. ehhh !

This is what I currently use:

- The PDF way
- WinEdt
- MikTex
- Microsoft Visio
- GhostScript
- GNU Octave
- ImageMagick
- Notepad++'s worth it, but it wasn't easy !
There is tons of documentation here and there on these.. but a few important things have to be noted.

The PDF way

- Go for the direct PDF usage instead of DVI+EPS, saves pain because:
-- Any app that can print can output PDF directly (see PDFCreator or PrimoPDF)
--- For PDFCreator, set better JPEG quality !! 75% is a crime.
-- PDF to EPS conversion seems shaky: ImageMagick creates ugly bitmap fonts
-- You are most likely to want all in PDF in the end anyway !
-- Specify \usepackage[pdftex]{graphicx} in the tex file

- aka Latex Editor
- I used WinEdt for a while, until the trial period ran out.. This editor will do just fine, Thank you 8)


Works pretty well. I actually tried LEd first. But left it as I thought it may have created DLL instability (turned out to be a MikTex problem actually !).
- Bibliography may become invalid, press the "Bib" button on the tool bar 8)
- Have Acrobat Reader installed to show PDF files (no need for Ghost View)
- Install MikTex first, just in case
- To compile and show a the final PDF use F9
- Edit: I eventually went back to LEd, as WinEdt stopped working after 30 days..


- Depending on the packages needed, it will request to go online. At work I needed to set a proxy, that worked and I'm happy. But it may be slow the first times one compiles the LaTeX document, because of all the downloading.
- BIG DEAL ! : It puts some QtGUI4.DLL in its own binaries folder and puts that folder in the global path. Result: facks up the Perforce integration plugin for Visual Studio.
I have no idea on why MikTex has those Qt DLLs but I renamed them out of the way and things just work fine. This was pretty frustrating.

Microsoft Visio (also: why not Inkscape and OO Draw)

- Use the macro from this link to export to PDF the diagrams with fit bounding boxes ..instead of whole, mostly white, pages.
- Inkscape pissed me off right away with its GTK madness: defaulted to Japanese because I have my system locale set to Japanese (locale but not UI damn it !!)
To get GTK straight I had to set some system variable.. bha that's the saddest thing.
Also, Inkscape crashed fairly easily..
- OpenOffice Draw is also fairly sad. I tried to make it open PDF, or even SVG files.. which it can export. And it constantly opened them as text and showed me text in the page !! The SVG was actually displayed in all its XML code beauty.. very sad indeed.

..OpenOffice and Inkscape are free, and I appreciate that.. but it wasn't worth the time.


- This is necessary to have Octave output PDF files
- Install it and put the binary folder (example: C:\Program Files\gs\gs8.64\bin) in the PATH environment variable.

GNU Octave

- When installing, do select the Octave Forge option. This adds a bunch of useful libraries, including the image processing one..
- For image processing also install GraphicsMagick. Pick the Q16 one. Don't be cheap !!
-- It wouldn't be fun without a good dose of manual setup ! Add an environment variable called MAGICK_CONFIGURE_PATH and make it point to the GraphicsMagick\config folder (for default installs on Vista 64 is: C:\Program Files (x86)\GraphicsMagick-1.3.5-Q16\config\ )


- I think one has to manually share the binary folder to the PATH. Not doing it isn't very useful as ImageMagick is pretty much a set of command line tools.
- Very annoying how the main command is called "convert.exe".. Windows tends to pick up it's own "convert.exe" first (some file system thing). I personally use mogrify instead. Which converts using a wildcard (more useful anyway).


- Finally supporting themes ! ..or rather, an easy way to have some white text on black background without having to fiddle with a thousand different settings.
- I suggest to install Aspell and relative dictionaries for language spelling (has to be done by hand).
- Octave actually comes with its own older version (without themes 8( ) of Notepad++, which is invoked for example when typing "edit filename". It kind of relies on having its own Notepad++ exe in the right place, but if the newer Notepad++ is already opened, it will use that instance instead. Which is fine since Notepad++ is a tabbed application that closes only when the last document is closed (something I wish MacOS would learn to do 8)

..soo.. back to work now ! 8)

Updated on: 2009/06/23