Tuesday, January 31

Bunch-o-links

Here are some links I came across recently:


Global Guerillas, a blog focused on the intersection of terrorism, infrastructure, and markets. I highly recommend it. I find some posts like this really interesting and it gives clues about the motivations behind some terrorist actions. Sometimes I feel like reading William Gibson there..

PC/Mac Snippets for indie development is an article I co-wrote with Pablo Perez back last summer. It got published 6 months later though. I will probably update it with more tips and code sometime during this month. One of the best things about getting published on GameDev is all of the helpful and constructive feedback you can get.

Introduction to the Japanese writing system(spanish) is an impressive and well put article by popular spanish Blogger Kirai. Quite entertaining even if you don't plan on taking any japanese lessons ;)

100 most essential words in anime. I bet you will be able to understand 50% of anime dialogs if you memorize this list of words. Yosha!

Skate boarding trick videos. Feel like learning some trickz? I left my skateboard in Alicante but I may bring it along with me this month when I fly to Spain... broken wrists anyone? :)

Monday, January 30

They just need a single word

You only need a word to define these anime characters :)

Sukeee! (Luffy from One Piece)

hmm... (Jin from Samurai Champloo)

Pikachuu!(Pikachu from Pokémon)

dattebayo! (Naruto from Naruto)

Please leave any comments about other examples you know :)

Friday, January 27

TU Ball

The TU Ball 2006 was held yesterday in the Wiener Hofburg. There were 4 different dancehalls with Orchestra or live music, where one could dance Waltz, Quadrille, Foxtrot, Polka, Tango and a long etcetera.

Here are some pictures:


Pre-party at the TU Freihaus



Festsaal (main ballroom)

Another dancehall

Finally, a video


And sorry, but I think I will keep the pictures of the girls for myself ;-)

Wednesday, January 25

NYC 2123

NYC 2123 is a free, cyberpunk graphic novel for the PSP, although you can read it online as well. I discovered the site via del.icio.us, and I found it pretty interesting. The authors also have a blog, including comments about the novel's production, such as the illustration process. They also have a video showing the process on what I think is Adobe Illustrator on a Mac :)

Tuesday, January 24

Looking for a bowtie

Although my parents did not believe me at the beginning, I am attending the Ball der Technik on the 26th January. Yes, that means I have to dance. Waltz. Right. And because I need to follow the strict dress code, I had to buy a bowtie today:

- Ladies have to wear a long evening dress.

- Gentlemen have to wear either a dark suite with a bow tie, a uniform, a tuxed or a tailcoat.

So I went shopping with a friend, and we were really surprised(or not) to see how bowties were priced.. most of them ranged 30-70€. If at least they were anime collectables... After checking half the shops of Vienna, we almost felt fortunate to find some simple, folded, black bowties for "only" 15€. Ouch!

Expect some embarrasing pictures of the ball on friday!


Aunque mis padres apenas se lo creían, voy a ir al Ball der Technik el 26 de Enero. Sí, eso significa que tengo que bailar. Vals. Correcto. Y ya que tengo que seguir el estricto código de etiqueta, hoy salí a comprar una pajarita:

- Las damas deben vestir un vestido largo de noche.

- Los caballeros deben vestir bien un traje oscuro con pajarita, un uniforme, un esmoquin o un frac. tailcoat.

Así que me fuí de compras con un amigo, y nos sorprendió bastante(o no) ver el precio de las pajaritas.. la mayoria de ellas estaban entre 30-70€. Si al menos fuesen "merchandising" de algún anime... Despues de mirar en la mitad de las tiendas de Viena, casi nos sentimos afortunados al encontrar unas pajaritas negras simples por "sólo" 15€. Ouch!

¡Estad atentos al blog el viernes para ver algunas fotos del baile!

Saturday, January 21

Winter semmester is coming to its end

That's it. The university in Austria is structured into two semesters: "Wintersemester" (october-january) and "Sommersemester" (march-june). That means we are approaching the end of the first part of the "Erasmus experience".

It's time to say goodbye to the people who only stay for one semester. Some students already parted, most leave at the end of the month. However, everybody agrees the experience has been worth it.

Right now, it's all about examinations and farewell parties...



Eso es. La universidad en Austria se divide en dos semestres: "Wintersemester" (octubre-enero) y "Sommersemester" (marzo-junio). Eso significa que nos acercamos al final de la primera parte de la "experiencia Erasmus".

Es el momento para despedirse de la gente que sólo vino por un semestre. Algunos estudiantes ya se han marchado, aunque la mayoria se van a final de mes. De todas formas, todos aseguran que ha la experiencia ha merecido la pena.

Ahora todo gira alrededor de los exámenes y las fiestas de despedida..

Thursday, January 12

MacBook Pro

Today I will simply write about about how much I love the new laptop introduced by Steve Jobs at his opening keynote in MWSF. Apple-bashers, you may leave this blog now.

Lets compare the MacBook Pro with the current PowerBook 15" offered by Apple:
  • PowerPC G4 1.67 Ghz, 512KB L2 caché, 166 Mhz bus, Radeon 9700 128MB SDRAM

  • Intel Core Duo 2x 1.83 Ghz, 2MB L2 caché, 667 Mhz bus, Radeon X1600 256MB GDDR3

This is no ordinary update. I don't care whether it is actually 4x faster in synthetic benchmarks or not, as claimed by Apple's marketing machine. Arguing about that is simply pointless.


I just added the MacBook Pro to my wishlist :). PC users will probably opt to similar hardware configurations in the near future, and cracked versions of Mac OS X x86 will surface. These surely are interesting times..

PD: Post dedicado a Flint

Wednesday, January 11

Google Earth, Adobe Lightroom Beta

Good news for Mac users. Recently, two beta applications have been released for Mac OS X:

Google Earth

Adobe Lightroom

Adobe Lightroom is Adobe's answer to Apple Aperture, with lower hardware requirements. Lightroom will also run on Windows, but only the Mac beta version is available right now. It has been a long time since Adobe released an application exclusively for the Mac, meaning that OS X should be considered now as the platform of choice for professional photographers.

PD: I will post about the new Intel Macs soon..

Sunday, January 8

BreakPoint '06

I just completed my registration for the BreakPoint '06 demoscene party. However, I forgot to select the spanish nationality, so my name does not appear next to the other spaniards in the attendance list :(. From the official site:


Welcome to Breakpoint 2006, world's biggest pure demoscene event. Up to 1000 visitors from more than 30 nations are expected to once again gather in the beautiful town of Bingen am Rhein, Germany, from the 14th to the 17th of April 2006 (Easter weekend).

I would like to enter the 96K game competition, but time will tell. I should start thinking of something...

Playing memory-mapped files with QuickTime

For my current development, I needed the ability to play a memory-mapped media file(mp3,mid,etc..) with the QuickTime API in Mac OS X. I already knew how to play regular files from disk, but had no clue how to do it from memory.

After spending two days diving into tutorials, documentation and technical notes(!) from Apple, I finally came up with some working code. The code looks pretty straight-forward but it took me ages to find any document covering the topic. Here is a code snippet some people might find useful in the future:

Handle MyCreatePointerReferenceHandle(void *data, Size dataSize)
{
PointerDataRefRecord ptrDataRefRec;
Handle dataRef = NULL;
OSErr err = noErr;


ptrDataRefRec.data = data;
ptrDataRefRec.dataLength = dataSize;

// create a data reference handle for our data
err = PtrToHand( &ptrDataRefRec, &dataRef, sizeof(PointerDataRefRecord));

return dataRef;
}

OSErr AddMIMETypeDataRefExtension ( Handle theDataRef, StringPtr theMIMEType )
{
unsigned long myAtomHeader[2];
OSErr myErr = noErr;

if (theMIMEType == NULL)
return(paramErr);

myAtomHeader[0] = EndianU32_NtoB(sizeof(myAtomHeader) +
theMIMEType[0] + 1);
myAtomHeader[1] =
EndianU32_NtoB(kDataRefExtensionMIMEType);

myErr = PtrAndHand(myAtomHeader, theDataRef,
sizeof(myAtomHeader));
if (myErr == noErr)
myErr = PtrAndHand(theMIMEType, theDataRef,
theMIMEType[0] + 1);

return(myErr);
}

void CToPascal (StringPtr outString, const char *inString)
{
unsigned char x = 0;
do {
*(((char*)outString) + x + 1) = *(inString + x); x++;
} while ((*(inString + x) != 0));
*((char*)outString) = (char) x;
}

play_mp3()
{

char* data = something(); // pointer to memory-mapped file
int dataSize = whatever(); // size of the file in memory

Handle dataRef;
Movie movie;
Str255 mimeType;

dataRef = MyCreatePointerReferenceHandle((char*)data, dataSize);

// Assuming the memory-mapped file is mp3
CToPascal ( mimeType, "audio/x-mp3" );

AddMIMETypeDataRefExtension( dataRef, mimeType );

NewMovieFromDataRef( &movie, 0, 0, dataRef, 'ptr ');

DisposeHandle( dataRef );

// Now we are ready to play the mp3

GoToBeginningOfMovie( movie );
StartMovie( movie );

}

Sunday, January 1

Frohes neues Jahr!

Happy new year!!

¡¡Feliz año nuevo!!