Making noise about noise

Recently I've been meaning to update the blog, but when I think of what I'd like to write I'm probably in the shower, or walking to or from work.

In the office I generally don't have time to update the blog.
But, more than time, it really comes down to environment.. if one can find those 10-20 minutes to sit down without any interferences and write something down.
..speaking of which.. there is an internal R&D blog in my company and today I dediced to post there a message/complain about the frequent noisy meetings at the open-space meeting room. Place that happens to be near my desk and that today was extremely active with some meeting-happy individuals that seem to have little actual work to do.

I decided to write on the blog about the noise level.. because when I reported the issue to my superiors, nothing really happened, and it seems to me that to really change things sometimes one just has to make something public.. and then people have to take notice.

The R&D blog is usually about general factoids, quick reports from people going to conventions, news.. but to me it's more like a place to get real about the work situation.

..notice that up until now I actually tried several things to reduce the noise. Including earphone + noise cancelling headphones, ear muffs and ear plugs meant for F1 racing.. but some meetings are just too noisy !
You can tone down the volume, but voices and laughters will not be removed. I think at some level noise just gets in from the cheek bones, nostrils, anything. And then a person talking becomes a whisper, which is not very pleasant 8)

I think that concentration is a very important factor for people that use their brain in a certain way (that use it for real ;). Not all jobs require the same degree of concentration.. and I guess, some programmers can afford to spend several hours in meetings, cracking up about anything that smells like a joke.. and I suspect that they aren't really doing their job. But that's another topic..

One thing that bugs me is how some Japanese themselves can be so insensitive.. I mean, there is this unwritten rule about not speaking out loud in almost any occasion, the train, the elevator, etc.
People are constantly reminded with posters in the subways that there are other people around to mind about. I remember one of my first Japanese language comic book was actually a manners book for kids !

I suppose that all this education can't work for 100% of the people and perhaps we may need a poster with some cute animals that reminds people in the open-space meeting room that there are other people around that are trying to do their work.
It's possible that people that laugh out loud during meetings just have no idea that they are bringing discomfort to those that are around. I have to give the benefit of the doubt.

Kindness however is a double edged sword as it also prevents some from complaining.. so, while many are bothered by the noise, I end up being the one that speaks out.. the complainer, the unkind ! This is expecially true for the Japanese coworkers, as they are very resilient and afraid to bring out negative sentiments. But also the non-Jpanaese coworkers either don't care too much or just don't want to make a fuzz about it.

Well, I think it should be pretty basic that a programmer or a graphic designer (musicians surely already have their own room already) should be able to work in a place that is relatively quiet.. it's a human thing !

zzzzzzzzzzzzzzzzzzzz

Terminate your TV

For a while now, my Super Drama (actual name) cable channel has been pushing "Terminator: The Sarah Connor Chronicles". Whole 30 minutes of promotion at the time.. relentlessly.
Eventually the show started and I was already tired of it. Here are a few things that turned me off:


- The main guy is annoying. Supposedly, some teenager but with the face of a small adult.

- The main woman (Lena Headey mother of the main guy) was a sexy beauty in the movie "300".. here she looks aged and with all sort of facial asymmetries showing up (not her fault, but what a shame).

- Extra added yucky effect by the fact that the small-adult-looking guy, in an interview, says he's best buddies with the Lena Headey and how they talk long hours on the phone and go shopping together.. ewww !!

- The terminator gal has been wearing thigh highs. I'm a fan of that type of stockings, but in Tokyo where they actually happen. In a serial TV based in LA it looks very unrealistic and very much as a device to get younger audience to jerk off over the show (better off downloading more explicit material..).

- The episode where mom-woman goes to buy a cell phone, and magically meets a store dude that happens to be some computer genius that has built some revolutionary AI hooking up together a few XBoxes and Playstations... ..store clerks revenge ! ..and she burns down his house to save the world: "intelligent computers baaaddd !" ..bitch !

In general. I think of TV shows as the tap water of fiction. "Terminator: The Sarah.. etc etc" is very much tap water.. though Terminator 4 didn't seem like pure mineral water either !

Whatever the critical reception, I call BS on this one.. but then again, the last serial TV that was worth watching for me was Miami Vice (on Wikipedia and IMDB). Much of the rest can be entertaining, but ultimately, pretty sad.

P.S. I included pictures form the HUD display of the first Terminator movie, because they seem more inspired and are actually fun.. the last one has some sort of assembly instructions showing.. very robot-like.. much more meaningful than those gay TV shows made by hundreds of people, none of which has any idea of what machine language is ! Java generation !!!

Guardie e Ladri

Cops and criminals !

It's amazing how social heirarchies get people to do terrible things to each other.

Some time ago I saw a TED Talk from Philip Zimbardo ..where my take was that people can be basically manipulated to do anything.

This is happening in Iran these days. I wouldn't say that best friends are pitted against each other, but more like two extremes have the opportunity to confront each other (though one side is clearly more extreme).

Funny also how people that are the police will just do something wrong even if it's so obviously wrong.
I guess rules are important.. and if one starts disobeying orders, then who's going to hold things together ? But more often than not, police turns evil at the first chance.

It shouldn't come as a surprise.. to be a military person or a policeman, one does have to have some tendency to be barked on from above and to follow orders.. even if they are bad..
Maybe sometimes people would like to rebel, but they are afraid that others won't follow and just make normality out of something messy. Many journalists are willing to spin some impossible propaganda.. and one doesn't even have to go to Iran for that, Italy is a good example too 8)

I would like to see myself in those kind of situations. Would I turn evil ? I think anything is possible ! But for the way I am, I would really have to go through some artful brainwash.. to sell whatever integrity for some money, for a pat on the back from someone that is powerful.

I remember a documentary about Rwanda where a Tutsi woman meets a Hutu man that in 1994 was her neighbor and that at the time he supposedly killed her family (the documentary was a bit vague, I'm assuming he really didn't specifically kill her family, though some other Hutu clearly did). They were not angry at each other.. he was very much like "sorrryy.. you know..".


When it comes down to people.. really anything goes.. humanity isn't even in beta..

zzzzzzzzzzzzzzzzz

Paperboy

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++

..it'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

WinEdt

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

MikTex

- 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.

GhostScript

- 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\ )

ImageMagick

- 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).

Notepad++

- 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

18 and life

Recently, much noise has been made about Italy's prime minister Mr. Silvio Berlusconi.

Among other things (like mafia connections and belonging to a secret masonic lodge whose goal was to take over Italy) he's also now consistently known for being some sort of pimp that can fast track startlets' TV career or even get them into politics. One day on a calendar hanging in the cabin of a truck driver, next day a position as a minister 8)

One recent scandal is about some girl whose 18th birthday Mr. Berlusconi showed up for. He claims to be a friend of the family, but at the same time she's an aspiring lingerie model and she calls him "daddy".
Digging below, more news surfaced and apparently she's been visiting him at his main villa, along with several more women, etc etc.

Now, what really interests me in all this is how in the news she's constantly being defined as a 18 years old girl.. thought it's obvious that they knew each other before her 18th birthday.

So, it's not really about this 72 years old media tycoon and a minor, but him and a young adult..

It would be cool if in fact this was some sort of defensive move, where the brains behind Berlusconi knew that something had to come out, and had him go to the girl's 18th birthday, knowingly that this would have gotten  attention from the press. In the form of him being connected to her and, most importantly, her being 18.

Now that some older pictures are coming out (not in Italy, because of the lack of freedom of the press), this girl is named, but constantly associated to her adult age: 18, 18, 18.

It's very interesting how all this works.. and if it's some sort of damage control, then it's impressive. But I doubt it, it's probably just a coincidence.. but I'll have to remember someday how these things work. Who knows, maybe 30-40 years from now I'll have to worry about being picked on because I'm filthy rich and involved with a teenager 8)

..as long as I will not be pretending to be a politician !

wooooo

Advances in Compiler Writing

..or rather, my baby steps towards writing a very basic compiler (^^;>

Having to parse the RenderMan Shading Language (RSL) is so far the most difficult problem in RibTools/RibRender because it's something I just haven't done before in any remote form.

I've got to a decent point so far, where a function like:


vector func2( vector a )
{
 float b = 1 + 2 * 3;
 float c = 1 + 2 + 3;
 c += 14;
 return vector( 1, 2, 3 );
}

..becomes..


function func2
 * $t0 2 3
 + $t1 1 $t0
 mov _9@_b $t1

 + $t0 1 2
 + $t1 $t0 3
 mov _9@_c $t1

 += _9@_c _9@_c 14

 ret

What's working here is:
- Variables being interpreted and getting unique names (mangled with some "block of code" identifier)
- Expressions are evaluated following the proper operator's order: multiplication before addition
- Temporary registers are utilized for the basic operations into which the original expression is decomposed

..the return value is however completely ignored (!), and the operators are not really replaced by the actual assembly instructions such as add and mul.
But, those are details.. ..actually, getting the return value is not such a detail ! And I'm working on that right now but, before that, I need to get function calls and pseudo-constructors such as vector( x, y, z ) working.

The thing is that I've been indiscriminately interpreting all commas as comma operators and been wondering how that fits with the order by which parameters are passed to function calls ..being those also separated by commas.
The answer is that those commas are really just a different kind of commas 8)
Perhaps it's obvious, but reading about all this formalism and language parsing, one kind of hopes that things like that have a certain degree of consistency that goes beyond the common sense acquired in 20 years of C programming 8)
This is not to say that there are any formal ambiguities.. it's just that the context is necessary to resolve the usage of such a basic symbol, and that complicates things a bit.

I guess that if I had to design C (C-like languages) from scratch, I'd probably choose different symbols for the comma operator and the comma separator. But would that be good for the human programmer or just for me to make compiler writing a simpler task ? ummmummm !

By the way, I also added loading of immediate values a compare and jump operator in the virtual machine !! Which required me also to handle labels in the assembly compiler.. which by the way, it's so much nicer to write than a high-level compiler 8) No trees, no deductions !!

See the before and after (I suggest maximizing the browser) the immediate load and compare & jump.

Another thing I added is uniform registers. Shaders work on N samples at once, but to effectively use SIMD, jumps have to happen all at once, so, looping variables ought to be uniform (or equal for all samples).

The if then conditional stuff needs to be handled differently, and that's where the masked SIMD stuff like in the LRB opcodes come in handy... but that's a whole different topic for another time !

woooooo

The Build

The data build in games is such a dreaded topic !!

It's even worse when people involved deeply leave and The Build ends up in other people's hands. Not an enviable situation.

Granted that our build was meant from the start as an experiment.. but.. the whole thing has never been very reliable. Many things have changed.. and still reliability isn't there.

I'm occasionally involved with the build phase as I develop a compression scheme or support something on the 3D side, but otherwise, I'd just like to get the latest data build as quickly as possible.

Not being able to get a working set of built data is got to be one of the biggest frustrations during development.
I can't point a finger on anyone specifically, because it's not just one person or a couple of people's fault.. but still.. I just want the built data !!

ummmmmm
zzzzzzzz