Main | License | Installation | FAQ | Screenshots | Contact | Links | Sf.net | Freshmeat.net | KDE-Apps.org
Requirements | Design | Modules | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

Frequently asked questions

General questions

Why should I switch on my computer ...

... every time I want to prepare a meal?

You can export your favorite recipes to HTML and print them out with your favorite browser, if you want to.

However you may find it more easy to use AnyMeal instead of a shelf full of cookbooks, if you want to find the recipes you can do with the ingredients you have.

Who needs a database ...

... with one hundred thousand recipes?

You may think that you don't need so many recipes as you may only be able to use about forty thousand in a lifetime.

Compare it to your phone-book. Of course you'll never need all the phone numbers it contains. But for most entries you cannot rule out that one day you may need that particular one.

The more recipes you have, the less likely you'll fail to find the appropriate recipe for a given occasion.

Installation

Linker can't find function `mealMasterlex()'

If you've an old version of automake (f.e. automake-1.4), you'll get an error-message like this, because flex is called without proper parametrisation:
    mealMasterCompiler.o(.text+0x521):/home/engjw/Documents/AnyMeal/anymeal/mealMasterCompiler.cpp:97: undefined reference to `mealMasterlex()'
    
You'll have to call flex manually for now. When you're in the main source-directory of AnyMeal, do:
    cd anymeal
    flex -PmealMaster -omealMaster.cc mealMaster.ll
    cd ..
    
This should create the lexer without any problem. Call make again, to finish compilation of the program.

File generated with too recent version of Qt Designer (3.3 vs. 3.2.3)

I found, that you can downgrade the version-numbers to a certain extend without corrupting the user-interface files. F.e. changing the version-numbers to 3.2 works under Mandrake 10.0:
    cd anymeal
    for i in *.ui; do sed 1s/3\.3/3.2/ $i > $i.tmp; mv $i.tmp $i; done
    cd ..
    
This is a bit awkward, but you can postpone upgrading your system.

This should only be of concern to you, if you want to modify the .ui-files. Otherwise the built sources will be included in the software-package already.

I've installed Norman Walsh docbook-xsl-scripts, but the configuration still fails to find docbook.xsl.

If you experience this problem, let me know the name of the Linux-distribution, which you are using. On most common distributions, this shouldn't happen any more! However you can solve the problem without having to contacting me:

Find out the common base-directory of the docbook-scripts. If the package-name of the docbook-scripts f.e. was docbook-xsl-stylesheets-1.64.1-71.noarch.rpm, you'll find the location of the docbook-scripts by executing:

    rpm -ql docbook-xsl-stylesheets | grep -w "docbook\.xsl"
    
This will f.e. give the following listing:
    /usr/share/xml/docbook/stylesheet/nwalsh/1.64.1/fo/docbook.xsl
    /usr/share/xml/docbook/stylesheet/nwalsh/1.64.1/html/docbook.xsl
    /usr/share/xml/docbook/stylesheet/nwalsh/1.64.1/manpages/docbook.xsl
    /usr/share/xml/docbook/stylesheet/nwalsh/1.64.1/xhtml/docbook.xsl
    
In this case the base-directory would be: /usr/share/xml/docbook/stylesheet/nwalsh/1.64.1.

Now you should be able to configure AnyMeal by specifying the base-directory. In this example it would work like this:

    ./configure --with-docbook-dir=/usr/share/xml/docbook/stylesheet/nwalsh/1.64.1
    

Set up a MySQL server

If you want to setup a MySQL-server yourself, you need to setup the database-files, set the password of the database-administrator and launch the database-server.

Note that the following steps where tested under SuSE 10.0. It may be a bit different on other distributions of GNU/Linux.

After this you should be able to use the database with AnyMeal.

You can change the password of the database administrator by doing

    su                                          # Log in as super-user.
    mysqladmin -p password mynewpassword        # Change password.
    exit                                        # Terminate super-user session.
    

Usage

Encoding problems

The characters of the recipes are not displaying properly.

Most mealmaster-recipes have been created under DOS (with the old famous Mealmaster-software). You have most probably selected the wrong encoding, when importing the files.

AnyMeal can read Mealmaster files encoded in UTF-8 as well as in ISO-8859-1. You need to specify the proper encoding in the import dialog.

Note, that erroneous recipes are exported in UTF-8. AnyMeal only supports exporting recipes in UTF-8 at the moment.

In case you are not sure about the encoding of your file, you can use the command-line tool file to detect it:

    file <filename>
    

UTF-8 is the recommended encoding on Unix/Linux platforms

Which foreign languages supported by AnyMeal?

AnyMeal is UTF-8-aware software. If you are using MySQL-4.1 or later and if your local character encoding is set to UTF-8, AnyMeal should display the recipes properly.

AnyMeal should be able to display characters of any language supported by KDE/X11/Qt.

Also note, that Qt is able to render AnyMeal in reverse mode:

    ./anymeal --reverse
    

Execute the locale-command, to get information about the country-, language- and encoding-settings of your Linux-system:

    locale
    

FOP terminates with java.lang.OutOfMemoryException.

See http://xml.apache.org/fop/running.html#memory on how to fix this.

You can f.e. add the option

    FOP_OPTS=-Xmx128m
    
to the file $HOME/.foprc to allow java to use more memory.

At the moment fop's memory consumption forbids compiling cookbooks with more than a couple of hundred recipes even on recent computers.

How to unzip a bunch of ZIP-archives.

If you are using bash as command-line-interpreter, you can unzip a bunch of ZIP-archives by doing:
    for i in *.zip; do unzip "$i"; done
    

I want to print out a cookbook

You can already print out recipes. There are two possibilities.

Using HTML export

The first solution is the easy one:

Using Formatted Objects and FOP

Unfortunately the second solution is not very user-friendly. However this solution will give you cookbook with page references in the table of contents.

The message boxes are ignoring my input!

There are odd cases, where a message box asking for yes or no always returns back no to the application.

There is a bug in the Qt/KDE integration patches to Qt in SuSE 9.3 which is causing third-party applications to fail to work properly.

Its easy to duplicate and show and is a problem in the patch to redirect Qt QMessageBox static methods to KDE message boxes.

For more information see here or here.

You have to execute anymeal from the command line after setting an environment variable provided by SuSE to fix this.

    export QT_NO_KDE_INTEGRATION=1
    anymeal

FO-output complains about "The variable 'id' is not defined"

When doing FO-output, you may encounter the following error message:
    Fehler: Error applying XSL-script "/usr/opt/kde3/share/apps/anymeal/scripts/docbookToFo.xsl":
    XSLT Error: The variable 'id' is not defined.
    Source tree node: article.
    (file:///usr/share/xml/docbook/stylesheet/nwalsh/current/fo/component.xsl,
    line 605, column 28.)
    

Simply edit the block starting at line 605 of the file component.xsl and replace

    <fo:block id="{$id}">
    <xsl:call-template name="article.titlepage"/>
    </fo:block>
    
by
    <!-- <fo:block id="{$id}">
    <xsl:call-template name="article.titlepage"/>
    </fo:block> -->
    

KDE-Wallet (kwallet) doesn't memorise passwords any more

This problem has been observed in connection with kat desktop search. kat causes kded to crash during logout so that the data of kwallet is not saved any more.

Technical questions

Why can't I export data in anyMeal's internal XML-format?

AnyMeal's internal XML-format is only to be used as intermediate language. In contrast to a regular file-format there is going to be no support for reading data of an older version of the XML-format!

Why not use printf instead of c++-streams?

C++-streams allow writing to arbitrary sinks (files, memory, stdout, ...). Also the number-output of printf is language dependent! C++-streams are not suffering from this problem.

Doesn't XML slow down your program?

Sure. However it increases the development speed considerably. A user will tolerate an application, which is a bit slower. It is less likely, that a user will be happy to wait for a feature a couple of months more.

Besides: AnyMeal is making use of flex and self-implemented finite-state-machines for fast parsing.

It is also using the advanced XML-libraries of the Apache software-foundation. If you do a comparison, you'll note, that AnyMeal still is faster than most other applications.

My question is not answered

I'm sorry if this web-page didn't help you and I hope you didn't get frustrated.

Please file a support-request or bug-report (as appropriate) on the tracker's-page.

I'll try to answer your request as quickly as possible.



anymeal 0.30 - recipe management software - Make the most of your food! - © Jan Wedekind Wed Sep 26 01:40:00 2007 - GNU Free Documentation License