Friday, April 30, 2010

Latex Installation on Ubuntu

To install the latex on Ubuntu, following packages should be installed:

texlive-latex-base
texlive-latex-extra
texlive-fonts-recommended

Posted via email from Troy's posterous

Monday, April 26, 2010

Linear Dynamic Model for Automatic Speech Recognition

Download now or preview on posterous
Frankel_thesis2003.pdf (2105 KB)

Using Dynamic models for ASR.

Posted via email from Troy's posterous

Printing on Unix/Linux hosts

Printing on Unix/Linux hosts

This is a brief overview of how to print on Unix/Linux systems. For additional information on some of the commands mentioned, see the man page (i.e. run: man program) for that program. Many Unix programs will look for a "PRINTER" environment variable when determining a default printer, and you may wish to set this variable in your .login to a printer that is near you.

Historically, there have been two primary ways to print under Unix/Linux, the BSD and System V printing systems. Some commonly-used commands in each system:

  • BSD printing commands:
    • lpr to print.
    • lpq to check printer status.
    • lprm to remove a job from a print queue.
  • Kerberized equivalents to BSD printing commands:
    • klpr to print.
    • klpq to check printer status.
    • klprm to remove a job from a print queue.
  • System V printing commands:
    • lp to print.
    • lpstat to check printer status.
    • cancel to remove a job from a print queue.

The BSD commands are the default commands on Linux hosts, and are available in the directory /usr/ucb on Solaris hosts and /usr/bsd on IRIX hosts.

The System V commands are the default commands on Solaris and IRIX hosts.

There is also a set of Kerberized BSD printing commands available on every Facilitized Unix host.

Using BSD printing commands

See the Unix man entries for these commands for additional usage information.

To print a file to a printer

lpr -Pprinter file 

To check the status of a printer

lpq -Pprinter 

To remove a print job

lprm -Pprinter job-id 

Using System V printing commands

See the Unix man entries for these commands for additional usage information.

To print a file to a printer

lp -d printer file 

To check the status of a printer

lpstat -p printer 

To remove a print job

cancel job-id 

The cancel command also provides several other options for cancelling print jobs. The job-id is the one printed by lpstat, not the "request id" printed out by the lp command.

Kerberized BSD printing

The commands klprklpq, and klprm provide Kerberized equivalents to the BSD printing commands. These commands also support some additional options. For example, the command:

klpr -Pprinter@host file 

would print the given file to the given printer, where host is that printer's spooler host. This can be useful if the remote printer is not in your /etc/printcap.

Other printing commands

One can use the enscript command to print formatted output of ascii files. See the man page for the extensive argument list.

The psnup command can perform transformations on Postscript files, such as rotating pages and printing multiple pages of a document on a single sheet of paper. pslpr is another program that can perform some transformations on Postscript.

Related documentation

Unix/Linux support
About Unix/Linux support in the SCS environment.

Posted via email from Troy's posterous

Friday, April 16, 2010

Create Bar Charts

For paper writing, Matlab is preferred to create figures for data analysis. However, bar charts in Matlab have limited options and much effort is needed to create a desired one.

Another way found today is that using Open Office Spread Sheets. Put the data there and change the properties of the bar chart. 

Then select the chart only and from the Menu:  File->Export as PDF, save only the chart to pdf file.

Moreover, to convert it to vector graphics, i.e. EPS format,:
1) pdftops, convert the pdf file firstly to ps file;
2) ps2eps, convert the ps file to eps file.

Then it's done,

Posted via email from Troy's posterous

Use OpenOffice to create EPS files with proper font embedding

The process involves:

  1. exporting to PDF from OpenOffice.
  2. converting the PDF to EPS using "pdftops".
  3. fixing the bounding box using "ps2eps".

Posted via email from Troy's posterous

Thursday, April 15, 2010

Install Sun's Java 6 JDK on Ubuntu 10.04 beta2

Sun's Java 6 JDK is now available through the partners repository.  To get it installed use the following steps...
  1. sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
  2. sudo aptitude update
  3. sudo aptitude install sun-java6-jdk sun-java6-plugin

Posted via email from Troy's posterous

Restore Panels In Ubuntu Back To Their Default Settings

Restore Panels In Ubuntu Back To Their Default Settings

Messed up your panels in Gnome? Maybe your new to Ubuntu and accidentally deleted items or the panel itself and now you can't figure out how to get it back.

Sure, you can add a new panel and rebuild it by adding the items back on the panel.

Instead of going through the trouble, there is an easy fix that will restore your panels back to their default settings quickly.

Open up a Terminal window, by clicking on Applications \ Accessories \ Terminal. Or, if you deleted the top panel and cannot access the menus, just press ALT+F2 and in the run dialog box, type gnome-terminal then click on Run.

You can also browse for applications, such as Terminal from the Run window, by clicking on the arrow icon next to 'Show list of known applications" and browse for Terminal.

Once the Terminal window opens, enter the following command at the prompt:

gconftool-2 – -shutdown

(Note: There should be no spaces between the two dashes before shutdown.)

EDIT – Reader nickrud has suggested a better method instead of shutting down gconfd. Instead use the following command (thanks nickrud!)

gconftool – -recursive-unset /apps/panel

(Remember: There should be no spaces between the two dashes before shutdown.)

Then enter the next command:

rm -rf ~/.gconf/apps/panel

And enter one more command:

pkill gnome-panel

That's it!

Both top and bottom panels will appear (if missing) with their default settings. Now you can customize them to your preference and get on with using Ubuntu.

NOTE: This method will work in Gutsy Gibbon (7.10) and Hardy Heron (8.04) version of Ubuntu.

Posted via email from Troy's posterous

Friday, April 9, 2010

Safely delete Linux files with libtrash

From: 

Takeaway: Deleting files in Linux usually pushes you to the point of no return, with no hope of retrieving any files you may have accidentally deleted. But there is a way to get deleted files back, thanks to the freeware utility libtrash.


Every user, from the most casual user to the most experienced system administrator, has deleted files accidentally. If a Windows user makes such a mistake, most often the files can be recovered from the Recycle Bin. Of course, no self-respecting Linux user would be caught dead using Windows. But just because you’re using Linux, you don’t have to worry about permanently losing data—if you use the freeware utilitylibtrash.

What is libtrash?


Libtrash is more than a simple utility. It’s a shared library that overrides the default actions Linux uses to delete files. Once libtrash is installed, deleted files will be moved into a subdirectory of the user's home directory named Trash. Libtrash allows users to use the normal Linux commands for deleting files, and libtrash will work with any files on the system.

Obtaining libtrash
You can obtain the latest version of libtrash directly from the author’s Web site. The file is only 70 KB in size, so it will download in a flash.

Next, unpack the libtrash archive by going to a command line and typing tar -zxvf libtrash-latest.tgz. When the libtrash archive is unpacked, you’ll find the libtrash-1.8directory in the current directory.

Configuring libtrash
Oddly enough, before you install libtrash, you must configure it. The libtrash-1.8/libtrash.conf file comes preconfigured with default settings. When libtrash is compiled, the /etc/libtrash.conf file is created, but this file only reflects the default configuration of libtrash.

That doesn’t mean you can’t reconfigure libtrash. It just takes a little extra work. There are two configurations available when libtrash is activated:

  • Systemwide configuration: This is used for all users. This configuration is read from the /etc/libtrash.conf file.
  • Personal configurations: Each user may use a separate configuration. Separate configurations are enabled through settings read from the .libtrash file in the home directory of each user.

Systemwide configuration
Systemwide settings are made through the /etc/libtrash.conf file. The required settings must be made prior to compiling libtrash. Changing the /etc/libtrash.conf file after compiling libtrash will not change the default behavior of the program. To enforce the idea that this file should never be edited, no users are given write permission to this file. The /etc/libtrash.conf file is a read-only file for all users, including root. Therefore, you’ll make changes to the libtrash-1.8/libtrash.conf file prior to installation.

There are four entries in the libtrash.conf that are used as environmental variables and cannot be changed by a user's personal configuration settings when libtrash is run. These four settings are:

  • DEBUG
  • PERSONAL_CONF_FILE
  • WARNING_STRING
  • UNCOVER_DIRS

The next four settings allow libtrash to intercept the standard routines Linux uses when files are unlinked or renamed. Your safest bet is to use the defaults for all of these settings:
  • INTERCEPT_UNLINK= YES
  • INTERCEPT_RENAME = YES
  • INTERCEPT_FOPEN
  • INTERCEPT_OPEN

More options, more control
The rest of options give you more control over libtrash. These options are:
  • TRASH_CAN = Trash
    This entry sets the name for the subdirectory where deleted files will be stored. The default name for this directory is Trash. Any name may be used. To change the directory name, enter the new name without any slashes.
  • IN_CASE_OF- FAILURE =
    This setting determines how libtrash reacts when there is a failure. Setting this value to PROTECT prevents files from being deleted by the standard Linux function. Setting the value to ALLOW_DESTRUCTION overrides libtrash.
  • SHOULD-WARN = YES
    This setting enables a warning message for libtrash. It's normally a good idea to remind users that their files will be permanently deleted when libtrash is disabled. This is especially true if users on the system are new to Linux or for users who assume libtrash is always running.
  • PROTECT_TRASH = YES
    This setting protects files in the trash from being deleted. Files placed in the user's trash represent a special case. Libtrash functions by sending deleted files to a trashcan in the user's home directory. When the user wants to delete files in the trashcan, the default libtrash doesn't work.
  • IGNORE_ENTENSIONS =
    This setting allows you to specify files with specific extensions that may be deleted without being copied to the trashcan. To specify which types may be ignored by libtrash, create a semicolon delimited separated list of the file extensions to be ignored. Do not include a dot (.) before the extension. For example, to allow .o, .c, and log files to be deleted without being moved to the trashcan, use this entry: IGNORE_ENTENSIONS = o; c; log
  • IGNORE_HIDDEN = YES
    Hidden files and files inside hidden directories may be sent to the trash. Setting this entry to YES allows Linux to delete hidden files without moving them to the trash. Stick with the default value of YES and override it if you must on a per-user basis.
  • IGNORE_EDITOR_BACKUP = NO
    This entry will ensure that backups of important files are always sent to the trash. These are files that end with a tilde (~). The default is yes. Changing this setting might be a good idea.
  • IGNORE-EDITOR-TEMPORARY = YES
    This entry concerns temporary files created by editors. Setting this entry to YES allows these temporary files to be removed without moving them to the trash. Set the entry to NO to allow libtrash to move these files to the user's trash. Stick with the default and change this setting on a per-user basis.
  • LIBTRASH_CONFIG_FILE_UNREMOVEABLE = YES
    This entry provides protection for the user's personal libtrash configuration file. Removing your own configuration file will cause unexpected actions fromlibtrash. Leave this setting alone.
  • TRASH_SYSTEM_ROOT
    The TRASH_SYSTEM_ROOT variable specifies the location of the directory under the trash that will function as the root (/) of the file system whenever the GLOBAL_PROTECTION variable is set to YES. If global protection is not used, this variable is ignored. This variable always uses a directory name with no slashes. The default setting is TRASH_SYSTEM-ROOT = SYSTEM_ROOT.
  • UNREMOVEABLE_DIRS=/bin;/boot;/dev;/etc;/lib;/sbin;/usr
    Any directory on the system can be marked as an unremoveable directory. All files in these directories are protected from deletion by any user runninglibtrash. This may be the most important step in the entire libtrash configuration process. By carefully establishing a list of protected directories, the administrator can prevent users from either accidentally or intentionally removing critical directories and files. The default list is a commented line in the/libtrash.conf file. To activate this list, remove the comment (#) from the beginning of the line. To add additional directories, add a semicolon to the end of the line, and then add the path to the directory you want protected. In the example, the directory /usr/local/users has been added to the default entry to protected programs.
  • UNCOVER_DIRS =
    Any directories listed as unremoveable may be temporarily removed from the above list by adding the directory to the UNCOVER_DIRS list. The default list is empty. Leave it empty. Any files that need to be uncovered should be added to an UNCOVER_DIRS list in the user's personal configuration file. This prevents all users from being able to remove specified directories.
  • USER_TEMPORATY_DIRS = temp
    The USER_TEMPORARY_DIRS entry specifies a directory or list of directories under the user's home directory where temporary files are created. Files in these directories are always permanently deleted. Leave this setting if you don't require this feature.
  • REMOVEABLE_MEDIA_NMOUNT_POINTS
    This setting prevents copies of removeable media from being copied to the trashcan when global protection is used. The REMOVEABLE_MEDIA_NMOUNT_POINTS setting is activated by default. This setting is ignored when global protection is disabled.
  • EXCEPTIONS
    The EXCEPTIONS setting is used to remove protection from files normally considered unremoveable. This allows essential actions by programs, such as creating or deleting a lock file or mounting/unmounting a drive, and may require some files in the UNREMOVEABLE_DIRS setting to be created and deleted. The default entry is EXCEPTIONS = /etc/mtab; /etc/resolv.conf; /etc/adjtime; /etc/upsstatus

Study these entries, and consider your system requirements. Once the configuration settings are entered, the next step is to compile and install libtrash.

Creating a personal configuration file
Personal configurations are created in each user's home directory. These settings are identical to the ones in the libtrash.conf file mentioned above, and, unless stated above, you should override the settings. For example, you could create the file~/.libtrash in your home directory with these entries:

  • GLOBAL_PROTECTION = NO
  • IGNORE EXTENSIONS = bat; exe;com

These entries disable global protection, and allow any files with the extension bat, exe, or com to be permanently deleted without moving them to the trash.

On multiuser systems, the administrator will probably want all users or groups of users to be able to use libtrash. On these systems, the root user should create a standard libtrash configuration for each group of users requiring a predefined configuration.

Installing libtrash
Libtrash requires ldconfig to compile properly. If the ldconfig executable is located in your /sbin/directory, Linux won’t automatically find Idconfig during the compilation process. To correct this, run the cp /sbin/ldconfig /usr/bin/ldconfig command as root to copy ldconfig to the /usr/bin directory.

Libtrash is installed by running these two commands as root:

  • make
  • make install

Activating libtrash
Because libtrash is a shared library and not an executable program or script, there is no libtrash command to run. To activate the libraries associated with libtrash so that it is activated automatically when any user logs into the system, add this to the/etc/profile file:
 
export LD_PRELOAD=/usr/local/lib/libtrash.so.1.8

Next, add these two aliases to the /etc/profile file. These aliases allow easy activation and deactivation.
 
alias trashon=”export TRASH_OFF=NO”
alias trashoff=”export TRASH_OFF=YES”

After these aliases are created, libtrash can be activated or disabled with these commands:
 
trashon
trashoff

Testing the installation
To test your libtrash installation, simply create a file and delete. The file should then be moved into the Trash directory under your home directory. To run the test, use this series of commands:
 
touch trashtest
vi trashtest
rm trashtest
cd Trash
ls

When I first created the trashtest file using the touch command, I did not add any text to the file. Accordingly, when I deleted the trashtest file, libtrash did not move it to the Trash directory. To avoid making this mistake, simply add some text to the trashtestfile to ensure libtrash moves it to the Trash directory.

Libtrash can save your files from your own mistakes
The libtrash library is not limited to command line operations. Libtrash will work with graphical file managers, e-mail applications, and other applications where files are deleted. All Linux users should have insurance against accidentally deleting files from the system, and libtrash does a good job of providing that insurance. If you want some protection against losing files, libtrash should be in your toolkit.

Posted via email from Troy's posterous

Permission denied Problem with RSYNC && SSH

The macosxhints Forums > OS X Help Requests > UNIX - General > Launchd, rsync ssh problem

View Full Version : Launchd, rsync ssh problem

Novajo
11-22-2005, 07:52 PM
My SSH keychain is not sourced... or what?

I have a script that archives a HD onto a RAID over the network with rsync via SSH. It works perfectly well when I start it manually, but it fails when launchd attempts to run it. Here is the launchd XML:

[...]

<key>ProgramArguments</key>
<array>
<string>/Users/me/bin/synchronizeComputers.sh</string>
<string>user</string>
<string>machine</string>
</array>
<key>UserName</key>
<string>me</string>
<key>WorkingDirectory</key>
<string>$HOME</string>
[...]

and synchronizeComputers.sh is this:

USER=$1
MACHINE=$2

sh /Users/me/.keychain/fileserver.local-sh
rsync -aEz -e ssh --progress $USER@$MACHINE.edu:/Users/Shared/Images /Volumes/Tera/Machines-Archives/$MACHINE/ 

exit 0

I keep the .plist in /Library/LaunchDaemons/com.mylaunchd.plist

If I do:
% sudo launchctl load /Library/LaunchDaemons/com.mylaunchd.plist
% sudo launchctl start syncmic

The stderr gets this:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (gssapi-with-mic,publickey,gssapi,password,keyboard-interactive).

I have set UserName to "me", so what is going on?

If I do (without sudo)
% launchctl load /Library/LaunchDaemons/com.mylaunchd.plist
% launchctl start syncmic

It works fine BUT since my launchctl quits when I leave, it won't run unattended.

It's only the system's launchd that fails.

What is going on?

sykong
06-19-2008, 11:20 AM
Hi there,

Did you manage to find a solution to this problem in the end? I'm also trying to get launchd to perform my rsync. My plist is under my user directory and I get the same error of permission denied.

However, if I running the script directly (same user), it works fine.

I tried using "ssh -vvv" and compared the difference between the 2. There are some differences in the bits set. I'm not sure how to proceed from here. Appreciate any advice.

(Via launchd)
...
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug2: dh_gen_key: priv key bits set: 127/256
debug2: bits set: 502/1024
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug3: check_host_in_hostfile: filename /Users/xxx/.ssh/known_hosts
debug3: check_host_in_hostfile: match line 1
debug3: check_host_in_hostfile: filename /Users/xxx/.ssh/known_hosts
debug3: check_host_in_hostfile: match line 4
debug1: Host 'domain.com' is known and matches the RSA host key.
debug1: Found key in /Users/xxx/.ssh/known_hosts:1
debug2: bits set: 517/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /Users/xxx/.ssh/id_rsa (0x103400)
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/xxx/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
debug3: sign_and_send_pubkey
debug1: PEM_read_PrivateKey failed
...

(Via shell)
...
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug2: dh_gen_key: priv key bits set: 119/256
debug2: bits set: 539/1024
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug3: check_host_in_hostfile: filename /Users/xxx/.ssh/known_hosts
debug3: check_host_in_hostfile: match line 1
debug3: check_host_in_hostfile: filename /Users/xxx/.ssh/known_hosts
debug3: check_host_in_hostfile: match line 4
debug1: Host 'domain.com' is known and matches the RSA host key.
debug1: Found key in /Users/xxx/.ssh/known_hosts:1
debug2: bits set: 493/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /Users/xxx/.ssh/id_rsa (0x101a80)
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/xxx/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
debug3: sign_and_send_pubkey
debug1: Authentication succeeded (publickey).
...

dr chris jones
06-20-2008, 04:21 AM
I've also found some anomalies with using Launchd to run a bash script that in turn launches rsync. When I back up my user account onto a USB drive, rsync the back up stops after just the Documents and Desktop folders. However, when I launch the bash script manually, the back up includes all my user folders. :confused:

Never managed to get to the bottom of it!

simham_uk
06-23-2008, 03:13 PM
I too am having this issue. I've made sure that my private key is stored in my keychain and interactively it works, but for some reason when launching form launchd it basically tries to find a tty to output the passphrase request (as it does interactively) but doesnt find one. I guess this is because it doesnt appear to have an awareness of ssh-agent. It should, it's running and the env variable $SSH_AUTH_SOCK.

Looking at the script in the post above, ssh is wrapped in rsync as I have. I wonder if rsync was piped or tunnelled through ssh, moving it into the forefront, rather than being launched/wrapped by rsync (or how ever it does it) would that make a difference? I'll try this as soon as I get a chance. If anyone else gets this cracked before then, please let us know.

Thanks.

guslid
09-18-2008, 03:55 PM
Hi, found this thread while googling to solve the same problem you have. I think I finally found a solution. When launchd starts the script, the environment is not prepared in the same way that as when starting a terminal, e.g. regarding SSH-keys. What needs to be done in the shell-script before calling ssh or rsync is:

eval `/usr/bin/ssh-agent -s`
/usr/bin/ssh-add

This will start an ssh-agent and add your private key to the agent so that it can handle the authentication challenge correctly (avoid the "debug1: PEM_read_PrivateKey failed"). If your private/public keys are not stored in ~/.ssh/ you need to point them out in the ssh-add call. See the respective man pages for more info.

Hopes this helps you, it works for me now!

sykong
11-01-2009, 09:04 AM
I added this line to my script

setenv SSH_AUTH_SOCK `find /tmp/launch-*/Listeners -user [username] -type s | head -1`


replace [username] with your username

vBulletin® v3.8.4, Copyright ©2000-2010, Jelsoft Enterprises Ltd.

Posted via email from Troy's posterous

Monday, April 5, 2010

Learn from Reviewers

Every paper must state (checklist):

   1. the problem addressed (novelty)
   2. the solution proposed (correctness)
   3. an example that shows how it works
   4. an evaluation, ideally a comparison with existing techniques (completeness of experiments)


Title (cover the most important information):
   1. New problem (new perspective)
   2. New findings
   3. New methodology

Abstract:
   1. Problem
   2. Solution or methodology
   3. Results

Introduction:
   1. Why this problem is significant
   2. Recent solutions
   3. What inspires this idea

Methodology:
  1. Theory 
  2. Mathematical formulation
  3. Algorithms
  4. Computational Issues
  5. Implementation issues

Try to package your method within a good theoretic framework ("why to do" is more important than "how to do").

Results & Discussion:
  1. Data sets and performance measures
  2. Experimental settings.
  3. Comparison with state-of-the-art methods
  4. When your method is better and when your method does not work

Posted via email from Troy's posterous

Google+