Tags : Browse Projects

Select a tag to browse associated projects and drill deeper into the tag cloud.

littler

Compare

  No analysis available

littler - Provides hash-bang (#!) capability for GNU R Copyright (C) 2006 - 2009 Jeffrey Horner and Dirk Eddelbuettel littler is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version ... [More] 2 of the License, or (at your option) any later version. I InstallationLinux and OS X builds are supported. Please see the file INSTALL for installation tips. II Implementationlittler, a C-language program named 'r', is an alternative front end to GNU R for '#!' (hashbang) scripting (see "Embedding R under Unix-alikes" in the "Writing R Extensions" manual from either http://www.r-project.org/, or your R installations / sources). With it's simpler command-line argument set geared toward scripting, littler allows users to create R scripts and popular "one-liners" using the command-line flag --eval. To do this, littler hard-codes certain bits of R's installation and environment using the first R program found in the user's path. For instance, if you installed R in both /usr/bin and /usr/local/bin, and your PATH variable references /usr/bin first, then littler will configure itself with /usr/bin/R. II.1 R_HOME The R_HOME environment variable is written to the header file littler.h so that it can be hard-coded into the r binary. Note that it overrides the user's own R_HOME environment variable when r is executed. II.2 R_DEFAULT_PACKAGES To decrease r's startup time, it sets the environment variable R_DEFAULT_PACKAGES to NULL and then autoloads all of the default package methods. This is done by inspecting the R user option 'defaultPackages' and emitting C code to be statically compiled into r. See autoloads.R for more info. II.3 LD_LIBRARY_PATHTo eliminate the dependency on the LD_LIBRARY_PATH environment variable, at least on linux, r looks to the file R_HOME/etc/ldpaths to set the -rpath linker option (see ldpaths.R for more info). Unfortunately this linker flag is not supported on Mac OS X, so r still depends on DYLD_LIBRARY_PATH. One caveat of working directly with LD_LIBRARY_PATH is that if one ever alters or updates R_HOME/etc/ldpaths (e.g. by running 'R CMD javareconf'), this will not be reflected in r. Thus, a re-compilation of r is necessary. II.4 Last but not leastUpon exit no cleanup is done and .Last() is not run. This behavior is more suitable for a scripting environment as opposed to an interactive one. III. (In-) Frequently asked questionsIII.1 Why the name 'littler' ?We wanted something short, sweet and with sufficient reference to R without trampling over R. The 'little' part implies two things: 1) that the program name is the lower case 'r', and 2) that 'r' provides something less than GNU R, mainly the language interpreter without the R environment. 'littler' is meant to run in an automated, i.e scripted, fashion with little interaction from the user. We also like 'r' in /usr/local/bin/r, /usr/bin/r or on the command-line as it saves keystrokes, and does not harm the Shift key as much. Lastly, you will find a little r in both Jeffrey and Dirk :-) III.2. Wasn't there once a 'rinterp' as well ?There was, but we think littler is cuter. See the previous question. III.3 I run a script through 'littler' but nothing shows. What's up?Add the --verbose flag (or its -p short version). This will print out many relevant expressions, similar to GNU R. However, it won't print the value of expressions like for loops, if/else, or expressions within function calls. In that case you probably need to wrap a print() or cat() around what you want to show. III.4 Data sets are lost!Actually, they aren't. But because 'littler' optimises the startup, they are never loaded. Just add library(datasets)to your script. We have changed this behaviour in release 0.1.0, and datasets are now loaded on startup. III.5 It doesn't build and complains about 'R_SignalHandlers undeclared'You need to upgrade to R 2.3.1 or newer. Our configure ought to check for a minimal R versions and currently does not. III.6 The r binary name clashes with my R binary.Use the configure flag --program-prefix or --program-suffix to transform the binary name. For instance, if you would like the binary name to be 'rsp' run configure like this: ./configure --program-suffix=spand if you'd rather have a prefix to the binary, run: ./configure --program-prefix=littlewhich will name the binary 'littler'. The binary, as well as the manual page, are renamed when 'make install' is run. Should you need it, 'make uninstall' will also remember this setting. III.7 Typing r repeats the last command.You must be a zsh user -- 'r' is a builtin command, so to prefer to littler, you will have to either use an explicit path (/usr/bin/r), create an alias under a different name, and install littler using a suffix or prefix as describe in III.6. III.8 What about Rscript?Good question. Starting with release 2.5.0, R itself will now contain something remarkably similar to littler: Rscript, an alternative front end to R for use in '#!' scripts. Time will tell which features differentiate the two, and which interface proves more useful to the R community. For now, we are simply thrilled to see functionality that we and others deemed important -- yet was missing from R itself -- added to the core R distribution. As they say, 'Imitation is the sincerest form of flattery'. Still, it would have been nice if Rscript had given credit to littler. Here's a look at the most visibly distinguishing feature of each front end: how arguments are passed to a script. Below are two 'hello world' scripts that print out their arguments, one implemented in Rscript and the other littler: Rscript #! /path/to/Rscript args littler #! /path/to/r cat('hello world! ', argv,"\n")Rscript passes all script arguments to R as additional elements to the vector returned from commandArgs(). Thus, the script must use the negative indexing method above to get the script argument into it's own variable. littler provides convenience by assigning the script arguments to an "argv" vector and placing that into the global environemt, a convention followed by other popular scripting languages. littler also tends to start faster as it doesn't need to exec() the main R process due to its embedding of R. III.9 What about getopt-style command-line parsing?Great question! This was asked for a few times. Luckily, Allen Day came forward and wrote getopt (now on CRAN), initially for Rscript. Moreover, he also agreed to add a two-line patch for seamless littler support. See the getopt examples and documentation at http://cran.r-project.org/web/packages/getopt/index.html for usage -- it is really straightforward. III.10 What about temporary files and directories?If nothing else is specified, r defaults to /tmp after having checked the environment variables TMPDIR, TMP and TEMP. Since version 0.1.2, you can also provide the --rtemp option (or its short form -t) to let r behave like R with a unique per-session directory that gets removed at exit: $ r -tpe 'tempdir()' [1] "/tmp/RtmpSbNQBj" $ ls /tmp/RtmpSbNQBj ls: cannot access /tmp/RtmpSbNQBj: No such file or directory $showing that the temporary directory is created and provided while r is running, but removed after r has finished. III.11 What about 'shebang' starts and command-line options?The usual operating systems can parse the so-called 'shebang' line, ie the first line of scripts that starts with the '#!' characters and the path to the executable --- and as much as one argument. That means we can provide short option arguments together in one string as in #!/usr/bin/r -ptwhich enables 'verbose printing' and 'R-alike per-session temp. directories'. What are typically not supported are multiple tokens (as used for an option and its argument, or multiple options). This also means that in the #!/usr/bin/env r`case we cannot supply further arguments to r. IV FeedbackJeffrey Horner Dirk Eddelbuettel [Less]

0 lines of code

4 current contributors

0 since last commit

1 users on Open Hub

Activity Not Available
0.0
 
I Use This
Mostly written in language not available
Licenses: gpl

RProgram

Compare

  Analyzed about 18 hours ago

RProgram is a library for creating wrappers around command-line programs. RProgram provides a Rubyful interface to programs and all their options or non-options. RProgram can also search for programs installed on a system.

1.14K lines of code

0 current contributors

over 1 year since last commit

1 users on Open Hub

Very Low Activity
0.0
 
I Use This

gwt-dispatch

Compare

  No analysis available

WelcomeInspired by Ray Ryan's Best Practices For Architecting Your GWT App session at Google I/O 2009, this is an implementation of the 'command pattern' discussed at the beginning of the video. You may also be interested in the gwt-presenter library, which is an implementation of the 'Presenter' ... [More] API mentioned in Ray's presentation. LinksDevelopment Guide - Useful information for developers. Getting Started - A quick intro to the API. API Discussions - The Google Group for this library. Post any questions you have here! ConfigurationCurrently Guice and GIN helpers are bundled in, but they are optional - the API can be initialised directly or via any other DI or other scheme you wish. [Less]

0 lines of code

0 current contributors

0 since last commit

1 users on Open Hub

Activity Not Available
0.0
 
I Use This
Mostly written in language not available
Licenses: bsd

C++ command line parameters parser

Compare

  No analysis available

Command line parameters parser with callback correspond functions and, if necessary, type/semantic checking of values of inputed parameters. Uses ISO C++ and Boost C++ libraries only. Header-only (not need to build) and cross-platform. It's really simple to use!

0 lines of code

0 current contributors

0 since last commit

1 users on Open Hub

Activity Not Available
0.0
 
I Use This
Mostly written in language not available
Licenses: mit

Schema Dump

Compare

  Analyzed about 4 hours ago

A Ruby script that dumps all data from all accessible tables in a database/schema to the output stream in a format suitable for diffing.

111 lines of code

0 current contributors

over 12 years since last commit

1 users on Open Hub

Inactive
0.0
 
I Use This

Ruby Pipe Run

Compare

  Analyzed about 5 hours ago

Runs command and returns its standard output in single call. Both synchronous and asynchronous (with eventmachine) running is supported.

172 lines of code

0 current contributors

over 12 years since last commit

1 users on Open Hub

Inactive
4.0
   
I Use This

Ruby Jpegoptim

Compare

  Analyzed about 14 hours ago

Ruby interface to 'jpegoptim' tool.

148 lines of code

0 current contributors

over 8 years since last commit

1 users on Open Hub

Inactive
5.0
 
I Use This

Ruby Optipng

Compare

  Analyzed about 10 hours ago

Ruby interface to 'optipng' tool.

148 lines of code

0 current contributors

over 12 years since last commit

1 users on Open Hub

Inactive
5.0
 
I Use This

Ruby Unix Whereis

Compare

  Analyzed about 10 hours ago

Ruby interface to UNIX 'whereis' command.

148 lines of code

0 current contributors

over 12 years since last commit

1 users on Open Hub

Inactive
5.0
 
I Use This

Ruby Jpegtran

Compare

  Analyzed about 4 hours ago

Ruby interface to 'jpegtran' tool.

175 lines of code

0 current contributors

over 8 years since last commit

1 users on Open Hub

Inactive
5.0
 
I Use This