triptico.com

Angel Ortega's Site
Ángel Ortega is a programmer, writer, composer and illustrator based in El Casar (Guadalajara, Spain). Author of the award-winning Minimum Profit text editor for programmers, main musician of the Ann Hell band and many other things.

2010-09-01

«Terra Incognita», a la venta como libro electrónico en Amazon.com

Además del libro en papel, Amazon también vende mi mininovela Terra Incognita (1997) como libro electrónico para el Kindle:

http://www.amazon.com/dp/B0041D8X5G

ó

http://www.amazon.co.uk/dp/B0041D8X5G

2010-08-25

Minimum Profit 5.1.4 released

I've just released version 5.1.4 of the Minimum Profit Text Editor. It features the following:

  • If a block is selected, any keystroke substitutes it.
  • Support for Alt + keys (ASCII and movement) has been added, and mostly left unbound to be used by the user for his own keybindings.
  • A new tab mode, which uses the previous line as a template for tab columns.
  • Fixed action open_under_cursor.
  • The mp.paste() function returns the clipboard content as a string if called without arguments.
  • New Grutatxt syntax highlighter.
  • Fix F10 in Win32.
  • Fix a bug when calculating the drawing position in the selected block, that were leading to crashes.

Full source code and MS Windows binaries are available as always.

2010-08-19

Reformatting / indenting a Cascade Style Sheet file

If you need to compare two CSS files, the freestyle formatting can drive you crazy. You can use this little Perl script to reformat / reindent them. Or if you just want a tidier file.

 #!/usr/bin/perl
 
 # Formats a CSS file from STDIN
 # Angel Ortega <angel@triptico.com>
 # Public domain
 
 my $css = join('', <STDIN>);
 $css =~ s/\s+/ /g;
 
 my $in = 0;
 
 foreach my $c (split(/(\s*\{\s*)|(\s*\}\s*)/, $css)) {
 	if ($c =~ /\{/) {
 		print " {\n";
 		$in = 1;
 	}
 	elsif ($c =~ /\}/) {
 		print "}\n";
 		$in = 0;
 	}
 	else {
 		if ($in) {
 			foreach my $sc (split(/\s*;\s*/, $c)) {
 				print "\t$sc;\n";
 			}
 		}
 		else {
 			print $c;
 		}
 	}
 }

I agree that, if comparing two CSS files is the aim, sorting the entries alphabetically would also be great; I left that as an exercise for the reader.

2010-08-16

Antichthon Universalis, available for purchase

Finally I became the editor of Antichthon Universalis and made it available to the world. I wrote a foreword and included all data we have about it.

The book can be bought from my shop at Lulu.com. We (Pavel Kolsinski and me) preferred to publish it at a low cost to pay the expenses we had on the investigation of the text.

We still welcome any additional information you could have on the subject, please follow the Antichthon Universalis main page for details on how we can be contacted.

2010-08-09

Distribution rights for Antichthon Universalis

It seems that Pavel has gotten permission from the source to reproduce Antichthon Universalis. He is searching for publishers like crazy, but I'm afraid they won't find the document as interesting as he does (provided that he can find anybody not on holidays these days).

I told him to try self-publishing as I did with Terra Incognita (1997) using services like those provided by Lulu.com. They're cheap and easy, but there is no distribution, other than the possibility to end up in Amazon (but I'm afraid that without a visible promotion...).

He says he doesn't have the technical knowledge to do it; maybe I'll help him. Who knows, it's not impossible that I even become the editor...

There are still no words from the language teacher on the subject.

On my part, I've finished taking a look at the book itself. I'm almost sure it's a forgery like the Oera Linda, but funny to look at anyway.

2010-08-04

More on Antichthon Universalis

Pavel has sent to me some scans of Antichthon Universalis, the recently found encrypted text, and it's a rather curious document. The drawings are certainly strange and hard to understand, but what I find more surprising is the scripting:

All text is equally separated, glyph by glyph, as if it was a Chinese or Japanese text. I'm not sure if it's meant to be read horizontally or vertically.

Pavel is in contact with an old friend of him that is a linguistic scholar and had just sent him the book to have a more experienced opinion on it. It's certainly not a known script; some letters resemble Alchemical symbols, others seem deformations of the Enochian alphabet.

I'm busy these days so I had not time to dive into it yet; as soon as I have more information, I'll publish it here.

2010-07-29

New encrypted document found

My friend Pavel Kolsinki has told me about a newly found document, called Antichthon Universalis, written in a strange, unknown language or code, with glyphs similar to those in the Rohonc Codex or other traditional cryptos. It also contains some very bizarre illustrations about plants, animals and what look like very symbolic maps.

For what he tells me, I think it's more like a Codex Seraphinianus than a Voynich manuscript, but let's see. I'm looking forward to seeing some scannings he's about to send me.

2010-07-08

Space Plumber 1.1.0-rc3 released

I've released a new version of the vintage game Space Plumber. In itself it just includes a new command line argument to execute in a 3x window size, but the main purpose of this release is that it includes last version of the QDGDF support library, which main new feature is that it includes a new windowed mode for Windows. A new Windows binary has been released as well.

QDGDF 0.9.2 released

Version 0.9.2 of QDGDF (the Quick and Dirty Game Development Framework) has been released. It features the following:

  • A new windowed mode for Win32.
  • A new library libqdgdf.a is created (historical libqdgdfv.a and libqdgdfa.a are also still created).
  • KTL fonts are now automatically converted to proportional width if the new _qdgdfv_convert_ktl_to_proportional variable is set.
  • New variable _qdgdfv_full_screen, settable before startup to suggest the desired behaviour (full screen or windowed). Also filled after startup.
  • New array _qdgdfv_extended_palette, filled with RGB values for each palette entry.
  • New functions qdgdfv_path_find() and qdgdfa_path_find(), to return the full path to a file search in the configured paths.
  • A new (very basic) information program (qdgdf_i) is included.
  • New functions qdgdfv_scale2x_p() and qdgdfv_scale3x_p(), implementing the scale2x and scale3x algorithms.
  • Shadows in fonts are painted in black color, not just color 0.

2010-06-27

Youtube videos of Space Plumber's last level

Someone called StormSpirit86, armed with infinite patience, has finished last level of Space Plumber and recorded it on video. This proves that, unlike what many people thought in 1998, this level can be solved.

Space Plumber (1998) Last level (1st part)

Space Plumber (1998) Last level + Ending (2d Part)

2010-06-25

Ángel Ortega Rodríguez, in memoriam (1939-2009)

Carl Sagan, El Mundo y sus Demonios:

"Mis padres murieron hace años. Yo estaba muy unido a ellos. Todavía los echo terriblemente de menos. Sé que siempre será así. Anhelo creer que su esencia, sus personalidades, lo que tanto amé de ellos, existe –real y verdaderamente- en alguna otra parte. No pediría mucho, sólo cinco o diez minutos al año, por ejemplo, para hablarles de sus nietos, para ponerlos al día de las últimas novedades, para recordarles que los quiero. Hay una parte de mí –por muy infantil que suene- que se pregunta dónde estarán. «¿Os va todo bien?», me gustaría preguntarles. La última palabra que se me ocurrió decirle a mi padre en el momento de su muerte fue: «Cuídate».

"A veces sueño que hablo con mis padres y, de pronto, inmerso todavía en el funcionamiento del sueño, se apodera de mí la abrumadora constatación de que en realidad no murieron, que todo ha sido una especie de error horrible. En fin, están aquí, sanos y salvos, mi padre contando chistes malos, mi madre aconsejándome con total seriedad que me ponga una bufanda porque hace mucho frío. Cuando me despierto emprendo un breve proceso de lamentación. Sencillamente, algo dentro de mí se afan por creer en la vida después de la muerte. Y no tiene el más mínimo interés en saber si hay alguna prueba consistente de que exista."

Sé que no estás en ningún sitio, papá. Pero te echo de menos igual.

2010-06-22

Gruta version 2.3.0 released

Version 2.3.0 of Gruta (the Web Content Management System), codenamed "Lucca", has been released. The following changes were made:

  • Stories can now include comments from visitors. Comments are disabled by default (it can be enabled by setting cfg_disable_comments in the config template to 0) and can also be enabled or disabled on a per story basis. Comments are never automatically published: they require approval one by one, unless it's posted by an identified user that also has section editor capabilities.
  • Support for the new 5.x version of Artemus has been added. This version is now the recommended one and upgrading of existing installations to it is encouraged, as new features are only implemented on 5.x (as, for example, the new "comments from visitors" feature).
  • If a story pseudo-url points to a non-existent story, it shows a link to create it (ala Wikis).
  • Date formatting is done using strftime(), so its full set of percent-prefixed commands is available.
  • A new field in stories allow a Table of Contents to be created for each story.
  • A new template status has been added to set the HTTP status.
  • A security bug that allowed to bypass a story's publication date by using the STORY_PRINTABLE template has been fixed.
  • Improved cookie parsing.
  • The gruta_mksite helper scripts has been renamed to gruta-mksite and it's also installed in /usr/local/bin.
  • Many new commands to the gruta command line tool.
  • All image pseudo-urls include the image's width and height in the img tag if the Image::Size Perl module is detected and installed.
  • A timeout watchdog now exists to avoid the CGI hanging for too much with a default of 20 seconds. It can be changed in the creation of the Gruta::CGI object by setting the query_timeout argument.