terça-feira, 13 de outubro de 2015

Reflexão com iluminura sobre o Amor

Estou sentado num café, o "Sol Brasil", em Santa Apolónia, à espera do combóio, ou melhor, o combóio é que espera por mim, ou melhor, não, não esperará, partirá às 11:30, quer eu esteja ou não a bordo. Mas estarei. Já tenho bilhete. São agora 11:15. Encontro-me no interior do referido estabelecimento, apreciando um folhado misto com alface, coisa que, inexplicavelmente, só existe em Lisboa. Acompanho a dita iguaria, evidentemente, com um "fino" de Sagres, coisa que, talvez menos inexplicavelmente, mas ainda assim muito inconvenientemente, também não se encontra ao norte, exceto em McDonalds.

A porta aberta do café é um ecrã, um postal ilustrado "alternativo". Contra a luz do Tejo, entre a proa de monstruoso cruzeiro turístico e outros objetos irrelevantes, destaca-se o grito dum grafiti improvável, aposto num vidrão: "O AMOR CEGA-NOS!"

Penso na minha amada, e em como num só dia sofremos e nos curámos dessa cegueira, e sobreviemos maiores, enormes, e com a própria visão muito melhorada. O amor que cega também cura, tudo é um processo, a superação duma crise exige uma força que fica e nos eleva.

São agora 11:20. Previdente, pago, saio, percorro as poucas dezenas de metros até a linha 3. O combóio parte puntualmente, comigo a bordo.

Lisboa, 13 outubro 2015

terça-feira, 23 de outubro de 2012

A message to the editor at m-w.com

If m-w.com allowed login I would leave this message there, as a comment to the "Me and I" video. Wonderful videos. I particulary like this one and the one about "whom". A propos this one about "Me and I": I note there's a lot of (wrong) "you and me" on pop songs. Of course Yes' song "And You and I" is correctly named. Which brings me to a point I'd love to see you cover: the possessive apostrophe. From what I gather my posts are Marius's posts, or Alves's posts. But my colleagues keep writing Marius' posts (without the additional s); as I understand it this can be done only for famous names like in Jesus' teachings. Or Yes' songs (but here we may have a plural). So, am I famous, or my colleagues are wrong? Thanks.

terça-feira, 9 de outubro de 2012

Robert Fisher copia Cervantes

O best-seller "O Cavaleiro da Armadura Enferrujada", de Robert Fisher, 1990, é simplesmente uma versão compacta do "Don Quijote de La Mancha", de Miguel de Cervantes, 1605.

Isso não é dito em lado algum. Devia ser. Não é incorreto fazer versões—até são úteis—, mas é muito incorreto escondê-lo.

quarta-feira, 12 de setembro de 2012

Installing AWS on Windows

See also Installing on Linux

0. Pre-requisites

Cygwin, with Make. GNAT

1. Download and extract AWS

1.1 Download from libre.adacore.com

1.2 Extract. I have extracted to "C:\GNAT\AWS-2012" On my system I have the tree:

C:\GNAT
  |__2011
  |__2012
  |__AWS-2012 <= extract hereto (for example)

where "GNAT\2011", "GNAT\2012" are GNAT instalations. GNAT\2012 is the active compiler. I will install AWS 2012 in "GNAT\2012"

1.2.1 Change to "C:\GNAT\AWS-2012\x86-windows\2012\aws"

1.2.2 Extract aws-gpl-2.11.0-src.tgz in situ

2. Install

2.1 Change to "C:\GNAT\AWS-2012\x86-windows\2012\aws\aws-gpl-2.11.0-src\aws-gpl-2.11.0-src"

2.2 Edit "makefile.conf" as follows (don't change the rest)

prefix = /cygdrive/c/GNAT/2012/
ENABLE_SHARED = false
DEFAULT_LIBRARY_TYPE = static
XMLADA = false
ASIS = false
ZLIB = false
SOCKET = std

That is, change the shell/make expressions to constants. Note the "prefix" is in Cygwin format. Note ZLIB = false means AWS own library (I think). Note SOCKET = std means no SSL support. I have not been able to install AWS with SSL support on Windows yet.

2.3 Open a Cygwin terminal. Change to "/cygdrive/c/GNAT/AWS-2012/x86-windows/2012/aws/aws-gpl-2.11.0-src".

2.4 Issue the command "make setup" (this step probably can be skipped)
2.4.1 ignore the complaints "cannot generate system tags, the test are disable (sic)"

2.5 Issue the command "make setup build"
2.5.1 ignore the warnings about no compiler for the make language; see also 2.4.1

2.6 Issue the command "make install"

2.7 Edit the file "c:\GNAT\2012\lib\gnat\aws\aws_lib_shared.gpr" as follows (don't change the rest)

   LIBZ_Path := "c:\GNAT\2012\lib\aws\native\static";

That is, change the Cygwin format "/cygdrive/c/GNAT/2012//lib/aws/native/static" to Windows format.

2.7.1 Before GNAT (?) complained about "/cygdrive/c/GNAT/2012//lib/aws/native/static" missing. So I copied the corresponding GNAT\2011 onto it. But this step probably can be skipped.

Done:-)

3. Test

3.1 Build and run the supplied demos "hello_world", "agent"

See also Installing on Linux

quarta-feira, 11 de julho de 2012

Installing G2F on Linux... not

Trying to install G2F, the Ada binding to ImageMagick, on Linux (Ubuntu).

Installed ImageMagick via apt-get.

The G2F install programs "configure", "config_sys", either "cannot find -lMagick" or cannot find the "GetMagickQuantumDepth" object.

Installed ImageMagick from source. The installation triad (./configure, make, make install) doesn't work as documented. They must be prefixed "sudo". Also, the (documented) command must be issued:

sudo ldconfig /usr/local/lib

G2F configure breaks with "cannot find -lMagick".

The following libMagick files exist on my system:

/usr/lib/libMagickCore.so.4
/usr/lib/libMagickWand.so.4.0.1
/usr/lib/libMagickCore.so.4.0.1
/usr/lib/libMagickWand.so.4
/usr/local/lib/libMagick++.la
/usr/local/lib/libMagickWand.so.5.0.0
/usr/local/lib/libMagick++.so
/usr/local/lib/libMagickWand.so
/usr/local/lib/libMagickWand.la
/usr/local/lib/libMagick++.a
/usr/local/lib/libMagickCore.la
/usr/local/lib/libMagickCore.so.5.0.0
/usr/local/lib/libMagickCore.so
/usr/local/lib/libMagickCore.a
/usr/local/lib/libMagickWand.a
/usr/local/lib/libMagickCore.so.5
/usr/local/lib/libMagickWand.so.5
/usr/local/lib/libMagick++.so.5
/usr/local/lib/libMagick++.so.5.0.0

The G2F configure program is a script to build and run the Ada program Config_Sys. (I like this Adaist approach.) So I looked into Config_Sys and changed the line

 pragma Linker_Options ("-lMagick");
to
 pragma Linker_Options ("-lMagick++");
Now the program builds with
 ./configure
but does not run, because it's in windows syntax. So I run it manually
 ./config_sys

It terminates silently. So to verify I added instruments too. It seems terminates normally.

Now make. Error: the process is looking for the wrong path "/opt/Ada/gnat-2006/bin/gnatmake". Edited "Makefile" with the right paths. Same error! Must be other Makefiles. Fixed all Mafekiles. Same error! Looked for occurrences of the wrong path. Oh, there are GNUMakefiles. Fixed. New error: "cannot find -lMagick". We know it should be Magick++. So now we must look for occurrences, change...

/* this process goes on forever and ever and this is why the software crisis is here, not programming, configuration... */

... error "undefined reference to `SetCacheView'"

Seems this ImageMagick function has been deprecated in 2008. New cache view interfaces to correct shortcommings of original ones. New interfaces are AcquireCacheViewPixels(), AcquireOneCacheViewPixel(), AcquireCacheViewIndexes(), GetCacheViewPixels(), SetCacheViewPixels(), and SyncCacheViewPixels(). The deprecated functions are AcquireCacheView(), GetCacheView(), SetCacheView(), and SyncCacheView(). (http://www.graphicsmagick.org/NEWS.html)

I guess it is now my turn to evolve G2F... Good, I'll be programming:-)... sort of...

I've nullified the offending function and now make terminates normally (?) and the tests build, but... they crash with "raised G2F_IMCORE.CORE_ERROR : Initialize_Magick failed"

A Linux installation does not require explicit initialization, so I commented it out. Now I get "cache" errors...

I gave up on G2F. I am going to use Netpbm (or ImageMagick, or GraphicsMagick) via command line.

Also

  • MagickWand is the recommended interface, instead of MagickCore, so why G2F uses core?
  • Magick++ is common to ImageMagick and GraphicsMagick, so maybe this should be the binding (GM is faster).
  • This IM/GM fork...
  • IM/GM semm too much in flux. I need stability.

Going with good old NetPbm for now.

quinta-feira, 28 de junho de 2012

Installing GNAT and AWS 2012 on Linux

In the past I have tried to install AWS on Windows and found it terribly difficult and, most importantly, never succeeded in building an SSL application (which is mission-critical for me). From several sources including the excellent people on the AWS forum I gathered the intuition that I might succeed on Linux. So I installed a Linux and... indeed succeeded building an SSL application!

The installation of GNAT GPL 2012 and, principally, AWS, on Linux, is not without a few difficulties. For myself and others, hereby I try to record the process step-by-step. This instalation is for AWS with SSL, sans any other extras.

1. Install Linux

I wanted to work on my Windows laptop (I need it for other projects), so I installed Linux on a virtual machine on that system.

1.1 Install VirtualBox

IIRC, this free software from Oracle installs out of the box, no difficulties here.

1.2 Install Ubuntu Desktop
Ubuntu is a Linux. The principal trick here is to install the Desktop version, not the Server version.
1.2.1 Download the ISO image of the Ubuntu Desktop installation CD.
1.2.2 Create a virtual machine on VirtualBox. IIRC, I used all default values.
1.2.3 Setup the virtual machine with a virtual CD-drive from the ISO image.
1.2.4 Turn on the virtual machine and install Ubuntu from the virtual CD.
1.3 From this point on, all operations are done on this Ubuntu system.

2. Install GNAT

2.1 Make a download package with GNAT GPL 2012 and AWS, from libre.adacore.com (the AWS part is a preparation for part 3); download, unzip, untar the package.
2.2 Run the installation program as superuser:
2.2.1 sudo ./doinstall
2.2.2 accept all default values.
2.3 Set the paths
2.3.1 export PATH=/usr/gnat/bin:$PATH
2.3.2 export LIBRARY_PATH=/usr/lib/i386-linux-gnu (or similar)
2.4 Test: write, build and run "hello.adb"

3. Install OpenSSL

3.1 Download the latest package and install thus (takes a while):
3.1.1 ./config
3.1.2 make
3.1.3 make test
3.1.4 sudo make install

4. Install AWS

4.1 Unzip and untar the AWS package downloaded in step 2.1

4.2 Change to the directory ending in "-src"

4.3 Edit "makefile.conf" as follows:
4.3.1 prefix = /usr/gnat
4.3.2 SOCKET = openssl

4.4 Edit "config/makefile" as follows:
4.4.1 LPATH = /usr/local/ssl/lib

4.5 Set the path
4.5.1 export C_INCLUDE_PATH=/usr/include/i386-linux-gnu (or similar)

4.6 Issue the commands:
4.6.0 make clean
4.6.0.1 this is absolutely required if previous installations have been attempted and have failed
4.6.1 make SOCKET=openssl setup
4.6.1.1 ignore the error "Can not generate system tags. The test are disabled" (sic)
4.6.2 make
4.6.2.1 ignore the warnings "no compiler specified for language "makefile", ignoring all its sources"; ignore the warnings about ZLib licensing
4.6.3 sudo make install
4.6.3.1 ignore the errors about not being able to stat aws.html/txt/info

4.7 Test AWS
To test AWS I use the provided demos. Make on the "demos" directory does not work; we must go into each demo subdir and try make, or else gnatmake the provided project file
4.7.1 Change to a subdirectory of "demos", e.g. "demos/runme"
4.7.2 Try make
4.7.2.1 Upon success, goto 4.7.4; upon the error "make: Nothing to be done for `all'.", try 4.7.3
4.7.2.2 Probably method 4.7.3 always works i.e. there is always a valid .gpr file, so we can skip 4.7.2 entirely
4.7.3 Build the provided project, e.g.
4.7.3.1 gnatmake -P runme.gpr
4.7.4 Execute the program e.g.
4.7.4.1 ./runme