text:
Legacy Development and Integration Guide
- 1 Linux Application Development
- 2 SDK build system
- 3 Integrating applications in the SDK
- 3.1 Integration with the configuration system
- 3.2 Creating your application Makefile
- 3.3 Handling dependencies: using metainfo
- 4 Porting autotools based applications
Linux Application Development
This section targets software developers with a little background on Linux software development, presenting some basic concepts about Linux applications that may be unfamiliar to developers with experience in real time operating systems (RTOS).
Linux application development is more like standard PC application development and less like RTOS focused development. The main differences is the clear separation between the applications and the operating system and also that applications are stored on a file system.
This section doesn't replace a good book on Linux/Unix software development, but introduces the minimal concepts that will be useful when porting applications.
Kernel and User Space
Linux is a multi-tasking operating system with protection between executing processes.Therefore applications run in their own address-space which is provided by the kernel using the hardware memory management unit (MMU).
Since applications are separate from the kernel, they live on some file system, therefore Linux needs a least one file system holding the initial applications: the root file system.
The File System
Linux file system is based on Unix file system concepts, and therefore it is composed of a tree of files that are located on some physical storage. The physical storage should provide the root of the tree (the root file system) and other devices can be "mounted" at directories in the file system tree.
Following the Unix mindset, most of the computer universe is represented like a file: files are data containers for more than binary executable files or raw data stored on memory devices, files are also used to represent device drivers, interprocess pipes, or system status.
Unix file system layout is also important, as there are standard locations for configuration files, shared libraries, binaries, shared data, etc.
Pseudo file systems
Linux has several pseudo file systems that when mounted doesn't reflect actual stored files on some memory device, but file handlers that can provide information about the system, a process, a driver, etc. This pseudo file systems generate the file entries and contents dynamically, based on the system status.
The two more common pseudo-file systems are procfs, and sysfs. More information on those can be found on the next section.
Linux File System Layout
Understanding the Linux file system layout is important for the porting process. The following table explains what's the propose for most common locations and give you an idea or where to store the contents of your application.
|Intended for executable binaries required for the basic system.
|Intended for executable binaries required for the basic system that should be available only to the super (root) user.
|Shared libraries for the basic system.
|Text configuration files of the basic system.
|Temporary files: on most embedded systems this directory contents are lost between power cycles.
|Intended to store data from system programs: web server pages, log files, mail server data, etc.
|This is the typical mount point of Linux's pseudo file system procfs, which creates a set of files that contain different aspects of the running system, processes, drivers, etc.
|This is the typical mount point of Linux's pseudo file system sysfs, which provides information on, and control of, devices drivers and kernel objects.
|Intended for applications that don't form part of the standard system provided by the vendor. These are usually third-party applications. Most of the applications at this location don't conform to the bin/lib separation of the Unix file systems.
|Intended for executable binaries that are not required for the basic system.
|Intended for executable binaries that are not required for the basic system that should be available only to the super user.
|Shared libraries not required for the basic system.
Embedded Linux File System
The standard Linux file system is designed for use by more than one person at a time. This is rarely the case on an embedded device, so the difference between /bin, /sbin, /usr/bin, /usr/sbin,/opt may seem less useful than for standard desktop computing proposes.
However one of the important uses of this separation is that it simplifies the final layout of the file systems used by the embedded target. RidgeRun applies the following rules to decide where to locate the applications:
- /bin, /sbin: minimal binaries to boot the system
- /usr/bin, /usr/sbin: standard Linux applications that are not required to boot the system
- /opt: customer applications
This layout permits different mount points to be used for the /usr and /opt directories which allows:
- Creating smaller minimal root file system to speed up booting (depends on the file system technology used), or that using a read only file system.
- Simplifying software upgrades
- Security analysis is simplified if suspect activities are limited to a small part of the file system.
Embedded target file system
RidgeRun SDK creates the target file system on the Linux host machine, and processes it to create the proper target file system image to be downloaded (if required) to the embedded system. The file system of the target system is found under the base (referred to as $DEVDIR) of your SDK: $(DEVDIR)/fs/fs.
This directory only exist once you have built the SDK for the first time, and you can copy files to this location to include them in the target file system image.
Since the file system of the target should have a minimal footprint, the SDK only puts the strictly necessary parts of the applications into this directory, leaving out some run-time unnecessary parts of many programs like include files, manual and info pages, unused localizations, etc. However some of this files (like the includes) may be required during the compilation process for other programs. For this propose the SDK provides the directory $DEVDIR/fs/fsdev, which is the typical installation point of most applications (including all the unnecessary run-time files), and later the scripts of the application copy the minimal parts from $(DEVDIR)/fs/fsdev towards $(DEVDIR)/fs/fs . More information on this procedure will be explained later on this document.
SDK build system
Building software for embedded systems is a complex task as it typically involves cross-compiling. Cross compiling presents new challenges to already established procedures for building software. The RidgeRun SDK uses a build system that simplifies the complexities of cross compiling.
The SDK build system was designed by embedded Linux programmers for embedded Linux programmers, therefore it not only simplifies the process of building embedded Linux applications, but the process of integrating, using or developing open source tools or packages with the SDK.
Introduction to RidgeRun SDK build system
Embedded Linux software development differs in various ways from the two environments it mixes: "embedded" and "Linux".
Embedded Linux differs from most embedded environments using an RTOS in that Linux uses a file system outside the kernel, and advanced software tools like dynamic loaded libraries, multiple applications, dynamic modules, powerful networking tools and high modularity are supported.
An often overlook but crucial difference between Linux and other RTOS systems has to do with the dynamics of building and integrating open source software. Open source software is build by different communities around the world, and a typical embedded Linux system will include pieces from hundreds of developers and several different open source projects. This factor impacts various processes: system integration, application building, bug reporting, etc.RidgeRun support services minimizes this complexity by providing a single point to get access to embedded Linux support experts, but also by accounting this factor on the design of the build system.
Embedded Linux also differs from standard Linux distributions in its requirements for custom tailored kernel, drivers, and file system. Embedded limitations on footprint, power consumption and processing power create a big gap between embedded and desktop Linux systems.
All the previously mentioned details need to be taken into account by the development procedures for building and packaging the software for embedded Linux. We found three different approaches from SDK providers to build the system (with RidgeRun using the last option):
Binary software distributions: some embedded Linux providers ship the file system applications pre-compiled for the target hardware. This approach provides the advantage that the overhead and work to recompile the basic system is avoided, however also presents several disadvantages:
- Minimal footprint is not achieved as the system is often compiled with broader-audience by including generic features.
- The packages may have been compiled with or without features required by the customer, therefore requiring the re-compilation of certain packages.
- Incompatibility of binary code with other software provided by third parties (For example if the object files uses different ABIs).
- In some cases getting the proper code that matches the binary files may be challenging for debugging or tracing proposes.
- The binary-oriented design usually lacks proper support to simplify building code from source.
Source software distributions by emulation: some embedded Linux providers use a source building based system that is compiled by running a virtual machine emulating the target hardware and using the compiler natively on the emulated target. This approach has valuable advantages:
- Avoids the complexities of cross compiling: open source tools like autotools are in better position to properly evaluate the environment, and several other tricks required for cross compiling are not required.
- Allows building optimized code for the target hardware.
- Allows creating optimized footprint and features on the compiled software.
- Permits testing on the emulated environment.
The disadvantages of this system are:
- Overhead on setup, maintenance and build time due the simulated environment. On big systems the compilation delays my be noticeable.
- Development files that are not required will be included on the target file system.
- Building and maintaining an accurate emulation environment is complex and time consuming.
Source software distributions by cross compilation: consists on building the applications from source for the target hardware from the host target. The advantages are:
- Allows building optimized code for the target hardware.
- Allows creating optimized footprint and features on the compiled software.
- Compilation and build time are typically fast as the host machine is usually more powerful than the target.
The disadvantages of this system are:
- Requires special procedures and manual tweaking when cross-compiling complex applications; for example open source software using autotools requires special steps, since many run time detections can't be performed while cross compiling.
- Dependency handling between open source packages require special tools.
RidgeRun SDK build system is a source distribution built using cross compilation, and has minimized the complexities of it by defining a centralized system to simplify tool usage, the setting of compilation flags, dependency handling and minimizing host tools requirements.
SDK build tools
The SDK build system is based on a set of technologies commonly found on standard Linux developer machines:
- The GNU Make system (http://www.gnu.org/software/make/), is used for the core build system logic.
- Bash shell scripts are used to automated certain tasks.
- A extended Linux kernel "kconfig" style system, along with custom logic in makefiles, is used to integrate the bootloader, kernel, file sytem and toolchain build and configuration system.
- The SDK detects and installshost tools required to build the bootloader, kernel, and Linux libraries and applications.
The set of tools were selected are generally available on most systems, and can be extended to integrate with more sophisticated IDEs like Eclipse, or can be used standalone.
The SDK requires a Linux host machine for development, RidgeRun recommends Ubuntu. Please consult the SDK User Guide or RidgeRun support for the latest information on supported distributions.
Anatomy of a build system
An embedded Linux build system can be analyzed by how well it supports the requirements and the components used to meet those requirements. The RidgeRun SDK build system is composed by:
Centralized configuration system: a single system where the user can control the features and components of the software to be build.
Centralized build system: a single system that is responsible for building the software according to the configuration files generated by the configuration tool.
Application build tools: a set of tools and guidelines that provided support for target applications build process (as described in this document), such:
- Application locations
- Standard targets for the Makefiles
- How to define dependencies, or provide dependency information
- How to provide global definitions for other the applications
- How to discover global definitions from other applications
- How to define host applications requirements
SDK Build system basics
The SDK build system needs to be understood to easily integrate new applications and port existing applications.
Configuration system
The SDK uses a dynamic configuration utility, called kconfig, which is shared by other important projects of the open source community, for example the Linux Kernel and the busybox set of tools.
The kconfig system used by RidgeRun differs from standard versions:
- Customized for SDK usage (file names and menus).
- The search path for the configuration files has base directories, supporting then integration of the kernel and busybox configurations in a single configuration tool.
- Supports extra logic in the SDK makefiles to permit dynamic additions to the menu based on external conditions. For example, when a new application is added to the system it is include in the menus without any programming effort.
The build system provides a way to add menus to the configuration system and associate that value to a variable that can later be accessed by the Makefiles to effect decisions or translate it as a compile definition. For example the definition:
config FS_APPS_MYAPP bool "myapp"
will create a definition:
if selected as true on the configuration system. Note that the suffix "CONFIG_" was added to the variable name. Those definitions can be used by the Makefiles by including the file $DEVDIR/bsp/mach/Make.conf
For more information on the syntax of the configuration files used by the kconfig system and the different options please consult $DEVDIR/bsp/bspc/kconfig-language.txt.
Build stages
The SDK build system builds difference components and this order may be important when building software that relays on other definitions or libraries. The SDK build order is:
- kernel: compiled and kernel images are generated.
- fs: built and file system images are generated.
- bootloader: built and the bootloader images are generated. In addtion repacking of the fs and kernel images into the native format of the bootloader (for example .rr images for rrload or .uImage for u-boot) is performed.
The applications from the file system are separated in different directories, and are build in the following order:
- fs/apps: consists mostly of architecture independent programs.
- fs/arch: contains programs that are common between all the systems within this hardware family. For example, this directory contains all the generic code for Davinci processors in DM6446 SDK.
- fs/mach: contains the specific code for the target hardware (the "machine" specific code).
- fs/proprietary_src: is an optional build stage, if some third party proprietary binary code is included with the SDK, then this code is built at this point.
- fs/myapps: is the stage where the customer applications stored in the $DEVDIR/myapps directory are built.
The order in which the directories are built inside the specific fs stages defaults to alphabetically sorted directory names. If some application requires a dependent code to be build first, the order can be changed by using the metainfo system explained later on this document.
Makefile integration with the configuration system
The different makefiles of the system can be integrated with the configuration system by including a couple of files providing:
- Definitions matching the selected configuration of the SDK.
- Toolchain definitions and flags.
- Information regarding other applications or libraries of the system that your application may want to use.
All three are described in detail throughout the rest of this document.
Integrating applications in the SDK
Customers are encouraged to create their applications in the $DEVDIR/myapps directory. Use of the other file system build points is not recommended. For example if you want to create a newapp application, you should proceed to create a directory $DEVDIR/myapps/newapp/.
Your application needs some elements in order for the application to be compiled by the SDK:
- Config file: this an file integrating your application with the SDK configuratio system.
- Makefile file: this is a set of rules to build/install your application.
- metainfo file: this is an optional file that may be used to report dependencies of your application on the target machine (some library you require to be installed) or the host machine (if you need certain tool on the host to compile the application).
In this section we will guide you through the process of creating these files for the newapp application. It is recommended that you read the SDK User Guide before reading this section, and also have used and familiarized yourself with the SDK.
Integration with the configuration system
To integrate your application with the configuration system you have to create a file named Config in the application directory. This file contains logic to select if your application should be built within the SDK. A simple example file is:
config USER_APPS_NEWAPP bool "NewApp Customer Application" help Build my NewApp program
In addition, you can use the Config file to force the selection of other configuration options on the SDK (kernel features, libraries, etc). To do this all you need to do is to get the string of the definition you want to enable and add a select statement for it (shown later).
For example, if your application requires zlib (an open source application for compression) then you may use the following code to force incluing of zlib if your application is selected:
config USER_APPS_NEWAPP bool "NewApp Customer Application" select FS_APPS_ZLIB help Build my NewApp program
The name of the zlib configuration variable may be queried using the "help" of the feature in the configuration menu system. For example the help of "File System Configuration -> Select target's file system software -> SDK Applications -> zlib 1.2.3" says CONFIG_FS_APPS_ZLIB (just strip the prefix CONFIG_).
For further information about the syntax of this file check $DEVDIR/bsp/bspc/kconfig-language.txt. You can look at other Config files in the SDK to find one that is similar to your needs and use it as your starting point.
Once the Config file is created, you can run the "make config" target on your system to enable the the new application to be built and installed in the target file system. A screen will appear as follow:
Creating your application Makefile
In order to build your application you need to create a standard Makefile file. The Makefile must be created in your application directory, and it requires the following rules to be integrated with the SDK build system:
- Check the definition of the DEVDIR environment variable. This allows you to issue the 'make' command inside the application directory instead of just from the $(DEVDIR) directory. Building and installing just your application would very well when using NFS root mount as your application executable is then immediately available on the target. See the SDK User's Manual for details on NFS root mount.
- Include the file $(DEVDIR)/bsp/mach/Make.conf.
- Have the following phony targets: build, chkconfig, preconfig, buildfs, install, and clean
- The build and install targets should be active only if the application configuration symbol is equal to 'y'.
For more information on makefiles syntax or usage, please check: http://www.gnu.org/software/make/manual/make.html
Makefile header definitions
Let's look at an standard header section of an application Makefile:
# License Text # ... .PHONY: build chkconfig preconfig buildfs install clean sim ifeq ($(DEVDIR),) $(error ====== DEVDIR variable is empty, invoke this Makefile from the BSP root, or provide the path to it =====) endif include $(DEVDIR)/bsp/mach/Make.conf include $(DEVDIR)/fs/Apps.defs ...
The previous code block shows the primary required headers:
- .PHONY: It is a make directive that explicitly states that the following strings be considered as commands instead of files.
- ifeq ($(DEVDIR),) ... endif: This is a conditional block that checks if the $DEVDIR environment variable is set, if it isn't make will exit with an error status. The $DEVDIR variable is required to be set to the root of the SDK development directory.
- include $(DEVDIR)/bsp/mach/Make.conf: This includes the Make.conf which provides the current values for configuration of the SDK and some other variables (see next sub-section for details).
- include $(DEVDIR)/fs/Apps.defs: This file provides definitions of headers and libraries paths that the target applications can use between them.
Make.conf definitions
As you notice from the previous step, all the makefiles of the system include the Make.conf file, which provides macro definitions that are useful when writing your makefiles and integrating them to build nicely with the SDK build system:
- Make.conf provides the CONFIG_* definitions of the current configuration values.
- Make.conf provides other useful definitions, detailed on the next table.
Use this variable in front of every rule of the makefile to make the rule silent when building the SDK. If make is invoked with VERBOSE=1 then the rule will be verbose on screen. Example:
newapp: newapp.c $(V) $(CC) -o newapp newapp.c
newapp: newapp.c $(V) $(CC) -o newapp newapp.c $(QOUT)
This is the absolute path of a file where the compilation information is redirected when verbose mode is not used. Typically it is /dev/null, but may be overwritten by the command line of the make invocation.
Use this rule to print messages on the SDK build process that are aligned on the build tree of the SDK (instead of the standard "echo"). Example:
newapp: newapp.c $(ECHO) "Building my NewApp" $(V) $(CC) -o newapp newapp.c $(QOUT)
This is used when you need to invoke makefile from other directory. If the verbose mode is enabled it will invoke the other makefile silently. Example:
somelibrary: $(V)$(MAKE) -C somelibrary $(QOUT)
This is the location of the target file system, and can be used to install files on it. Example:
install: $(V) install -m 755 newapp $(FSROOT)/bin
| When compiling autotools based applications (see Porting autotools based applications), this is the standard installation prefix for applications, and is useful for copying the binaries to the final file system $(FSROOT)
Makefile targets
The top makefile of any application needs to define a standard set of targets to respond to. In an application Makefile all the following targets must be defined:
- build: builds the software.
- install: installs the software.
- clean: cleans the built software.
- sim: if this application supports being built for simulated execution on the host target. Simulated execution is a complex way of saying 'not cross compiled'. For example, if your application is graphical and depends on QT, a simulated build would allow the application to run on the desktop PC using the desktop PC's QT library.
- preconfig: this target is called before invoking the configuration system and allows the application to dynamically generate their Config files to be used in the system menu. Is unlikely that any application use this option, so you may leave it empty.
- chkconfig: optional commands that can be run to identify if the system configuration is right for this application. This target is deprecated and it use is not recommended; leave it empty.
- buildfs: This target is deprecated and it use is not recommended; leave it empty.
The following is an example of the previous targets inside an application Makefile:
build: <build commands for your app> install: <install commands for your app> clean: <clean commands for your app> sim: sim commands if your app supports simulation> # Empty but required targets chkconfig: preconfig: buildfs:
Compiler usage
In order to compile the files with the proper cross-compiler you can use the follow environment variables (imported from the Make.conf file):
- CC, CPP, LD, AR, AS, OBJCOPY, OBJDUMP, STRIP, CXX, RANLIB: those variables contains the name of the corresponding application from the toolchain for cross-compiling.
- CFLAGS: contains the flags that must be used when compiling programs in order to work properly with the cross-compiler.
For example if you want to compile your application hello.c for the target machine you may add the following rule to the Makefile:
hello: hello.c $(V)$(CC) $(CFLAGS) -o hello hello.c $(QOUT)
Installing your application
To install your application the rule simply needs to copy the required files into the target file system using the install rule. The target file system may be accessed using the makefile variable FSROOT:
install: $(V) install -m 755 hello $(FSROOT)/opt/hello
In this example we use the install program which copy the programs and set the file permissions at the same time.
Dependency handling in your makefile
Once you were able to write a simple application and are ready to start development of more complex programs, one of the most useful tools is makefile dependency handling (recompilation on demand of changed source files). This eliminates rebuilding object files unnecessarily.
However proper dependency handling is a complex issue and you can find several resources online that explain how to perform dependency handling with Makefiles. RidgeRun recommends using autotools for your applications (see Porting autotools based applications for more information on how to integrate autotools based applications with the SDK). Please consider using autotools – even though it require a higher learning curve. Autotools will help you avoid common mistakes and make your application better portability (and easier to support a simulator build).
Handling dependencies: using metainfo
Most open source application developers create their software in a modular design so it can be reused by other people or projects. This is the reason you can find an endless list of required components to build your applications or components that you need to port to the SDK in order to make the port you are most interested in to work.This job requires the SDK build system be capable of handling dependencies between the different components at compile time, providing the following services to the components:
- Capability to report where header files are installed so other components can use them.
- Capability to report where shared libraries are installed (if they exists) so other components can link against them.
- Capability to report which other components it depends on, so the other components can be built before this component.
- Capability to report required host tools to build, so the SDK may validate the tool is available or report an early error on the missing piece.
The SDK build system provides the above functionality with an optional metainfo file in the application directory. Before the development of the metainfo system, many separated techniques were used to accomplish the same goals, they will be documented along the new procedure, but are considered deprecated.
Exploring the metainfo file
Let's suppose we are adding an application named newapp-1.0 to the SDK. We will assume that newapp-1.0 requires of the library libapp-1.0 to be build, and requires the open source program flex to be executed on the host during the compilation.
This applications will appear in its own directory, under $DEVDIR/myapps/, with the following structure:
- $DEVDIR/fs/myapps/
- libapp-1.0
- Config
- Makefile
- metainfo
- source code...
- newapp-1.0
- Config
- Makefile
- metainfo
- source code...
- libapp-1.0
Previous sections dealt with the Config and Makefile files; in this section the metainfo file will be explored.
Our first step will be to modify the Config file of newapp-1.0 to add a line after the definition of the menu for newapp:
config USER_APPS_NEWAPP select USER_APPS_LIBAPP
in order to notify the SDK configuration system that in case newapp-1.0 is selected, then libapp-1.0 should be enabled too. We will notify that libapp-1.0 needs to be built before newapp-1.0 later on the metainfo file.
Now we will define the metainfo file for libapp-1.0 (and we will elaborate on it during the next sections):
NAME="LIBAPP" DEFS_INCLUDE="$(FSDEVROOT)/usr/include" DEFS_LIB="$(FSDEVROOT)/usr/lib"
And the metainfo file for newapp-1.0:
HOST_REQUIRED="flex" TARGET_REQUIRED="libapp-1.0"
In the next sections you will learn what are those files are defining.
Providing dependency information for other components
When a target package (newapp) uses libraries (libapp) that can be shared with other target packages. It is necessary to provide location information on the libraries and their header files.
There are two procedures to consider:
- How the library provides the information on headers and libraries.
- How the application access the information.
The answer to this questions is the $DEVDIR/fs/Apps.defs file. This file is dynamically generated extracting meta information from each of the application packages metainfo files.
Looking at the libapp1.0 metainfo file we can see the following:
NAME="LIBAPP" DEFS_INCLUDE="$(FSDEVROOT)/usr/include" DEFS_LIB="$(FSDEVROOT)/usr/lib"
In the above lines, the NAME identifier is used to prefix the definitions that will be available in the $DEVDIR/fs/Apps.defs repository file.
Each one of the identifiers prefixed with DEFS_ represents a path to a specific component of the application, and they will appear in the $DEVDIR/fs/Apps.defs repository file when they need to be used by other applications. The DEFS_ prefix will be substituted with the content of the NAME identifier. In this way, each definition will be associated in a unique way with their correspondent application package. It is important that each application holds a unique NAME identifier.
Also, note that the DEFS_ strings includes the $(FSDEVROOT) substring, meaning that the headers and libraries are to be found on the /usr path of the file system for development.
Accordingly, the metainfo script will generate the definitions and the final output will appear in the $DEVDIR/fs/Apps.defs repository file looking like the following code block:
LIBAPP=$(DEVDIR)/myapps/libapp-1.0 LIBAPP_INCLUDE=$(FSDEVROOT)/usr/include LIBAPP_LIB=$(FSDEVROOT)/usr/lib
Now the Makefile of newapp-1.0 can include $(DEVDIR)/fs/Apps.defs and use the definitions to notify the compiler and linker about the proper location of headers and libraries of libapp-1.0.
Note: the previous SDK build system used an Apps.defs file for each application that included the required definitions just like the previous code block. The usage of those individual Apps.defs files are now deprecated. If the metainfo system founds both an Apps.defs and metainfo files in an application directory, the contents of the Apps.defs file will be used and those from the metainfo file will be discarded.
Detailing software dependencies
When a target application requires the availability of another specific target application or library, the dependency must be included in the TARGET_REQUIRED line. In our example, we found this line of the metainfo file of newapp-1.0:
The identifier representing each application is just the name of the required application's directory as found in the upper level directory of the application metainfo file requesting it. This identifier may be a white space separated list of directories.
The SDK build system will build those applications before the application that requires them, in order to comply with the requirement, in turn, if any required library or application holds other dependencies, they will be built before it and so on recursively.
Note: the previous SDK build systems, there was a file named dependencies that included each directory name in its own line. If a dependencies file exists, it will take precedence over the metainfo file.
Detailing Software dependencies on host hardware =
In the metainfo file, the line with the identifier HOST_REQUIRED provides a white space separated list of the host system packages that should be installed. In our example newapp-1.0 requires flex to properly build.
This will instruct the SDK build system to verify if the host Linux distribution has installed the proper software package that provides the requested tool. Since the SDK is designed to run on different Linux distributions, there is a dictionary to translate between the program name and the package that should be queried for the particular distribution.
If you are using the SDK in a supported distribution and machine you can skip this step and just manually go ahead and verify the package is installed on your machine. However if you intend to re-distribute, or re-install the SDK on different machines, you are better adding the host tool check.
The text database files for each distribution are located in $DEVDIR/bsp/oscheck/, and have been named with the format of distribution-version_architecturebits, such as ubuntu-6.06_32.
In those files there are defined a list of pairs, in the format <alias>:<package_name>. Example:
automake:automake1.9 flex:flex glade2:libglade2-dev
That is, each line contains an alias or symbolic identifier, a colon, and the name of the package in the host system distribution according to the package management tool used. The SDK has building support for querying the distribution package management tool.
Other helper functions of the metainfo file
The metainfo files can be used to support other more obscure operations.
- Build detection: the SDK only tries to build applications that are enabled on the configuration system. To determine which applications are enabled, the SDK build system looks for the first config entry on the Config file of the application directory. However if an application has more than one config entry on that file, the heuristic may fail to determinate correctly if the application must be build or not. To solve this problem you can add the following line to the metainfo file:
Where the "USER_APPS_MYAPP" definition corresponds to the config flag that should be used to detect if the application is enabled or not.
Porting autotools based applications
One of the main reasons for using embedded Linux is the vast amount of open source libraries and programs available. RidgeRun has simplified the process of porting open source applications into the SDK.
Most open source applications available use what is known as the GNU build system, also called autotools. For more information on autotools, the following introductory documentation is recommended: http://www.lrde.epita.fr/~adl/dl/autotools.pdf .
Autotools generates scripts that in turn detect if the needed components are available in the build environment. For the SDK, that includes both the host components (toolchain, make, autoconf, shell scripts) and the target components (any library required to be available in the embedded target).
Most open source applications follow a basic three step build process based on autotools using the following order: 1. configure: Checks for required host and target components and the build system capabilities. 2. make: Builds the applications. 3. make install: Install the application in the target path.
Before getting into details of porting autotools based applications, please be sure that you have read and understood the section Integrating applications in the SDK.
Wrapper Makefile
In order to integrate autotools based applications into the SDK, it is necessary to write a wrapper makefile with the standard targets required by the SDK build system. The SDK system already includes a standard template that should work with most autotools based applications if they are properly constructed following the autotools guidelines. The SDK template Makefile that needs to be used is:
# License header... .PHONY: build chkconfig preconfig buildfs install clean ifeq ($(DEVDIR),) $(error ====== DEVDIR variable is empty, invoke this Makefile from the BSP root, or provide the path to it =====) endif include $(DEVDIR)/bsp/mach/Make.conf include $(DEVDIR)/fs/Apps.defs AUTOTOOLS_PARAMS= build: configuration built built: configured $(V) $(MAKE) -C $(AUTOTOOLS_BUILD_DIR) $(QOUT) $(V) touch $@ installed: $(V) $(MAKE) -C $(AUTOTOOLS_BUILD_DIR) install $(QOUT) $(V) touch $@ install: installed $(V) install -Dm 755 $(FSDEVROOT)/usr/bin/PortedApp $(FSROOT)/usr/bin/PortApp uninstall: -$(V) $(MAKE) -C $(AUTOTOOLS_BUILD_DIR) uninstall $(QOUT) -$(V) rm -f $(FSROOT)/usr/bin/PortApp clean: clean_configure $(V) rm -Rf *sim installed built include $(DEVDIR)/bsp/autotools.defs sim: chkconfig: preconfig: buildfs:
NOTE: this is a SDK template and is expected that you change and adjust the minimal definitions regarding the application you are porting (application name and configuration name variable).
This SDK template makefile uses several definitions that are encapsulated on $(DEVDIR)/bsp/autotools.defs and $(DEVDIR)/bsp/config.site. These definitions will take care of invoking autotools to configure it properly for the target hardware.
The SDK makefile will compile and install the application under $(FSDEVROOT) which usually is set to $(DEVDIR)/fs/fsdev. The propose of this directory is to fully install the autotools based application there using the application install target and later to copy the minimal required files to the target file system on $(FSROOT). This is performed in this way since often the install target will add several MB of files that are not required for run-time execution (headers, localizations, manuals, etc), making the target file system bigger.
There are some aspects that you may customize of this scripts:
- AUTOTOOLS_PARAMS: is a variable that can be set to any list of parameters you may want to pass to the invocation of the configure script.
- AUTOTOOLS_SRC_DIR: is the relative path from the makefile location to the directory containing the autotools based application source code. If this variable is not set by default "src" is used.This means that you should put the source code of the application under a directory named src. For example, if you are porting an application like bash, you will put the wrapper makefile at $DEVDIR/myapps/bash/Makefile, and the source code of bash at $DEVDIR/myapps/bash/src.
Please note that not all autotools based applications will compile without problems, and there are certain cases that are know to be specially problematic:
- Applications that use plugins (like DirectFB, gstreamer, tslib, etc): this type of applications often embeds the directory path to look for the plugins in the binaries, and the cross-compilation process will end wiring the path based on the host machine, not the target file system. Solving this problem depends on the specific application. You are advise to contact RidgeRun if you need help in porting an application.
- Applications which support a dependency detection system that is not designed for cross- compilation. In this approach the application dependency detection system typically generates binaries that are expected to run on the target. This kind of problems may be worked around with flags or modifications to the configure script. Contact RidgeRun support if you need help on porting this type of applications.


text:
|Churchill Weavers Collection
|Catalog Number
|2007.45.Box 31-4
|Object Name
|Sample, Sales
|Other number
|17 (520-629)
|Churchill Weavers
|Other Creators
|Churchill Weavers staff
|ca. 1927
|Scope & Content
|Box 31-4 contains 10 textiles representing cloth number 17. Nine textiles are sales sample swatch books that are pinned together or on muslin backing sheets; one sample is an individual swatch. All swatches are in a plain weave structure of blended wool and silk yarns. The swatches have overshot borders in a honeysuckle pattern. Colors are in shades of white, gray, black, pink, red, orange, yellow, brown, green, blue, and purple. Each swatch has a stapled cardboard tag attached with the cloth and pattern numbers and colors.
|System of arrangement
The Sample Collection is organized into various 'series.' The term series may have been applied to this collection when Churchill Weavers hired an archivist in 2002 to process its archive. A copy of the Guide to the Weaving Archive produced by Virginia Daley, project archivist, accompanies the collection. This guide indicates that the bulk of the textile samples are arranged into the following series: Year-Box Series, Cloth Number Series, Early Style Number Series and Master Sample Series. The original arrangement of the boxes was kept during the processing of the weaving samples at the Kentucky Historical Society. The original Churchill Weavers numbers are written on the box labels along with the new box numbers.
The Cloth Number Series was the earliest form of numbering weaving fabrics. Woven fabrics were assigned cloth numbers regardless of the final product (yardage, throws, scarves, etc.) In the early cloth number scheme, different cloth numbers would be assigned to exact fabric that different only in color. Later, single cloth numbers reflect not only a wide range of variant patterns and colors but also variations in the weave caused by different yarns. These Cloth Numbers run from 1 up to 399. The cloth/style number scheme runs from about 400 to 999. These early style numbers reflect a number assigned to a final product and often refer to the cloth number as the type of fabric used.
Around 1933 Churchill Weavers started a coded style number scheme to indicate the type of product, the year created, and the number of products in that line. The coded system is the primary organizing principle behind the Master Sample Series. Churchill Weavers began with four digit style numbers and then later incorporated five digits to clarify the dating on items produced. The first digit in the style number identifies the type of product, 1xxxx refers to scarves, 2xxxx bags, 3xxxx baby blankets, 4xxxx throws, 5xxxx stoles, 6xxxx yardage, 7xxxx cravats, 8xxxx ready-to-wear, and 9xxxx is linens. The date can be determined by the second and third digits. If the number is 35476, the baby blanket was designed in 1954. The last digit identifies the number within that product line, i.e. the baby blanket was 76th in that 1954 line. Experimentals in the collection incorporate a letter as the second digit, for example, 3D59. This can be confusing as experimentals through to 1938, x0xx, have a '0' in the second digit.
The second largest series is the Year-Box Series, which is arranged chronologically by year and there under by box number. The format is like 1932-5. The sequence of boxes within a specific year generally reflects the style numbering sequence, i.e. the scarves (1xxx) will be in the earlier boxes and the cravat yardage (7xxx) will be in the latter boxes of any given year.
In each series, there are boxes labeled as "Outside Purchases" and "Unidentified" objects. Materials of a particular product type, for example, outside purchased scarves, are grouped under the 1xxxxs series of scarves.
Outside Purchases refer to items not made by Churchill Weavers, but were acquired because of their similarity or "potential applicability to Churchill lines." Unidentified items are items that Ms. Daley could not find style numbers for during her archival project.
Bellando, Lila
Bellando, Richard
Churchill, David Carroll
Churchill, Eleanor Franzen
Sample books
Textile art
Textile industry
|Search Terms
Appalachian Region
Berea (Ky.)
Churchill Weavers
Madison County (Ky.)
Sample, Sales
Sample, Sales
Sample, Sales
Sample, Sales
Sample, Sales
Sample, Sales
Sample, Sales
Sample, Sales
Sample, Sales

subset: commoncrawl


text:
Global Profits Review By Mike Silver Is Global Profits System A Scam Or Not? What's Global Profits APP? My Global Profits Review Reveals The Honest Truth About Global Profits System Until Think To Download It
How would you like to make a fortune as the rest of the world loses theirs?
Well Global Profits APP has just gone LIVE today and can make this possible for you.
Go check Global Profits System out now it is totally free and you will discover exactly how to profit while countries like Greece suffer.
Product Name: Global Profits
Global Profits Website: GlobalProfits.co
Global Profits APP CEO: Mike Silver
Global Profits APP Cost: FREE
Global Profits Review
Although the binary options trading began in 2009 only, but it dominated the world of e-commerce on the power of the Internet and spread quickly
Definition of binary options
Binary options are not the same as regular stock trading options. They offer high returns and is perfect for those who want to invest their money for short periods of time. The options are in a strange reality and trading are in the private market.
Binary options are basically trading operations across the counter and they are also available round the clock for all seven days a week. Digital option is the name of another binary options, which is also known as all or nothing option. It is an instrument for trading that provide revenues that are fixed. And this revenue will be determined before the trade actually happens.
Binary options trader in payment of certain predetermined compensation will receive that provided that the option expires in profit. In the case of binary options close out the money then the trader will lose part of their investment once again be in advance.
The wonderful part about getting into binary options trading is that it is inherently a simple way of trading. As long as the trader makes flour and the correct prediction, and will get back their money at risk, as well as a great return on their investment. This can be a return on investment of up to between 71 and 88%.
The spread of binary options trading
Over recent years, binary options have become very popular form of trading. The growth in this type of trade exponential. It is also possible to affect trading in the digital world and this in turn makes it possible to take advantage of more of the underlying assets. In addition, the digital trading also means that you get to enjoy greater flexibility in terms of timing and price, as well as strike options contract.
After 2009, binary options trading has become extremely popular among modern merchant because they now have more control over risks. In addition, traders also have the opportunity to take advantage of strategies that are more dynamic and effective.
The bottom line is that the binary options and make full use of modern technologies that are constantly evolving and that has helped to facilitate more effective digital commerce. This has made it possible for binary options trader to enter into deals that are more lucrative.
Advantages of binary options
Simply – Is the asset will close higher or down?
Binary options are simple to understand and they are clear of trading where rolling only needs to look in the direction of the movement of asset prices, either up or down.
Limited risk and predetermined payments
Binary options contracts for fixed and predetermined payments. Because of this, the risks and the potential gains to be known even before the decision to invest. With the conventional options, there is no listed signs and therefore the profits or potential losses can not be known.
In binary options trading, you will pay you a fixed rate in advance if your trading finished "in the money" – does not matter how I ended up in the money, as long as finished. Even if successful decade only one moment, the contract still offers payments at a constant level.
Simplified to hedge your portfolio
Often using binary options as an effective tool to hedge existing positions. Product trading, Global Profits binary options strategies and compatible with the most common methods of trading. Also, binary options trading provides a wide range of short-term contracts in all markets. These options enable rolling through day of trading more frequently.
Unlike Vanilla Options, when trading binary options, can be traded closure "in the money" and assembly of all rates of return even if there was only a minimum price change only one point.
Issued binary options 24/7 and this allows traders trading in multiple time frames and where are these options served in a variety of underlying assets from various global stock markets, the traders will become capable of trading in a wide range of assets from a single trading platform 24 hours day, 7 days a week.
Is Global Profits A Scam
Global Profits APP is Not A Scam It's legit and Safe Binary Options Trading System. Global Profits is Automated Binary Options Trading Signals APP . Download Global Profits System APP %100 Risk-Free + $1K Bonus Free NOW…


text:
Difference between revisions of "Rocky"
(→Profile: IQ)
m (→References: ref)
|Line 193:
|Line 193:
<ref name="F20090913">{{f|20090913}}</ref>
<ref name="F20090913">{{f|20090913}}</ref>
<ref name="F20090909">{{f|20090909}}</ref>
<ref name="F20090909">{{f|20090909}}</ref>
Revision as of 11:50, 24 December 2012
|Roark "Rocky" Rickaby
|First appearance in comic
"Introduction 3"
|First appearance with dialog
December 19, 1904
|Place of Birth
St. Louis, Missouri
|Age at start of comic
Nina (aunt)
Freckle (cousin)
Roark "Rocky" Rickaby[1] joined Lackadaisy as an addition to Zib's band. After the death of Atlas and the departure of much of Lackadaisy's staff, Rocky begins doing odd jobs for Mitzi. Rocky is Nina's nephew and Freckle's cousin.[2]
Rocky is the first character given dialog in the series, in "Rumrunner", though he appears previously in a photograph in "Introduction 3".
In the comic
Volume 1
In "Rumrunner" Rocky meets with Captain Kehoe, making arrangements to procure liquor at English Cave. Rocky's plans are interrupted by the arrival of the pig farmers, who are displeased to see him negotiating with Kehoe. The farmers and Rocky have had confrontations before, and in "Hydrophoby" they abduct Rocky and place him in the back of their truck with a dead pig that Rocky names "Frothy". In "Crack-Track" the farmers intend to kill Rocky by pinning him to a set of railroad tracks with nails through his tie and having him run-over by The Sunshine Special; he escapes in "Face-plant".
In "Formaldehyde", Rocky returns to Little Daisy, informing Mitzi and Ivy of his agreement with Kehoe and glossing over his confrontation with the pig farmers. Rocky asks whether Viktor can go with him to retrieve the car. Mitzi agrees, but sends Ivy with him so that, according to Mitzi, "Viktor will be less likely to throttle him".
In "Quantentheorie", Rocky discusses Viktor's "glare beam" with Ivy, facetiously suggesting that it is a product of Viktor's "hate energy" being focused through Viktor's single eye. In "Spaghetti", Viktor advises Rocky to quit as they drive to retrieve the car. He does not believe Rocky has a future in the business given his lack of muscles. Viktor (perhaps unintentionally) gives Rocky an idea for how to deal with the pig farmers, though he abruptly drops Rocky off at the car before hearing it.
In "Arithmophobia", Rocky overhears Mitzi talking to the portrait of Atlas she keeps in her office. Mitzi asks Rocky to deliver a letter to the Union Trust Building.
Rocky visits Nina in "Reciprocity", asking her to do his laundry. In return Nina asks that Rocky take Freckle with him when Rocky runs errands, as Freckle is depressed over being rejected from the police academy due to an "incident". In "Coconspirator", Rocky leads Freckle to believe they will be pursuing justice. In "Scathefire" Freckle accompanies Rocky to the pig farm. Freckle confesses to feeling "useless", and Rocky leads Freckle to believe he is a vigilante. In "Blitzwagen" through "Schadenfreude", Rocky attacks the pig farm with the aid of Molotov cocktails, destroying the pig farmers' vehicles and property.
Rocky brings Freckle to Little Daisy in "Surreption", where Freckle meets Ivy for the first time. Though Rocky is atypically protective of Freckle and rejects Ivy's suggestion that he bring Freckle to Lackadaisy, Ivy distracts Rocky and then slips a Lackadaisy pin to Freckle.
"Hallelujah" shows Rocky with Zib and the band in Lackadaisy. Rocky tells Zib that he has to leave to pick up liquor from Captain Kehoe. Zib asks Rocky why he became a moonlighter, but they are distracted by a broken string on Rocky's violin before he answers. Viktor decides to accompany Rocky. Rocky next appears in "Bunny-box", receiving the liquor from Kehoe. Rocky seems to have strong feelings for Mitzi, as he calls her "Lady Dionysus" and waxes poetic about her.
In "Drygulch", Viktor and Rocky return to the Little Daisy garage. Rocky leaves Viktor in the garage while he takes the trapdoor to Lackadaisy to find help bringing in the liquor, and consequently does not realize the pig farmers and Benjy Jessup are approaching with guns.
In "Overture", Rocky interrupts Mitzi while she is trying to convince Wick, Church and their associates to invest in Lackadaisy, bringing some of the liquor he obtained from Captain Kehoe. Mitzi samples Kehoe's liquor, finding it to be sub-par but acceptable, and tells Rocky to have the rest of the band bring in the rest of the liquor from the garage. As opposed to his bandmates, in "Kibitz" Rocky is enthused about helping, though Zib advises him not to get too involved in his work for Mitzi.
Rocky and Zib return to the garage via the trapdoor in "Blindside"; this distraction unfortunately enables the pig farmers to shoot Viktor. Zib, Rocky and the band return to Lackadaisy, with the farmers in pursuit. Rocky and the others practically run over Freckle and Ivy upon their return to Lackadaisy in "Wishy-washy". Rocky is less than pleased to see Freckle, and Ivy explains that she invited him because Rocky would not, and because her last dance partner, "broke his arms and legs in some horrible accident". Freckle is surprised to find out that Rocky plays the violin in a speakeasy, and is not a vigilante. Due to the incoming pig farmers, Rocky begins leading them out of the club. In "Killjoy", after Mitzi asks whether the Treasury Department is really raiding Lackadaisy in response to Zib's excuse while ushering out the patrons, Rocky replies that it is, "something more ornery", and states that he will, "fix it". Upon being asked why the pig farmers are breaking into Lackadaisy in "Malarkey", Rocky feigns amnesia, though Freckle "helpfully" refreshes his memory.
While trying to keep Mitzi from doing so, Rocky accidentally reveals the location of himself, Mitzi, Freckle and Zib while attempting to hide from the pig farmers in "Skedaddle". With the others he flees to the storeroom, which serves as Lackadaisy's armory, only to learn in "Deadlock" that the guns are missing. When the pig farmers locate Rocky and the others, Rocky takes Mitzi's gun despite an apparent ineptitude with firearms, feeling obligated to try to fix things. Freckle in turn takes the gun from Rocky in "Doolally" and shoots Avery before dropping the gun, taking Avery's Tommy gun and charging off, laughing maniacally. Though he initially appears surprised by the turn of events, Rocky proudly calls Freckle, "my cousin".
While retreating from Freckle, Avril and Emery run into Mitzi, Rocky and Zib in "Whizbang". Zib throws Mitzi's handgun at Emery with negligible effect, and Avril in turn opens fire on them, causing Mitzi and Zib to flee in one direction while Rocky retreats in the other direction. Avril pursues Rocky, but is shot in "Rhetoric" shortly after showing a lack of interest in discussing matters with Rocky. "Quicklime" reveals that Freckle was the shooter. In response to Mitzi's questioning whether Freckle behaves in such a manner frequently, Rocky notes that Freckle has done this, "once or twice...though the, uh, unmitigated carnage is a recent development". Rocky proceeds to apologize for his actions that precipitated the farmers' invasion, but Mitzi gently brushes it off and asks Rocky to make sure that Freckle does not, "do something silly...like turn himself in". Rocky pursues the now-sane and fleeing Freckle, who is unmoved by Rocky's offer of a sandwich. Rocky catches up with Freckle on the street outside Little Daisy in "Palaver", but Rocky's words appear to have little impact; when he asks Freckle to consider what Nina would do to both of them Freckle only grows more agitated before departing in his car. Rocky passes out on the street shortly thereafter. He regains consciousness in "Rendezvous" and sees Mitzi and Wick kissing in Little Daisy before departing.
The next morning, in "Daybreak", Rocky drives to Freckle and Nina's house. Nina tells him that Freckle is in bed. After Nina tells him to wake Freckle up so that he can find work, Rocky states that he has found a job for Freckle.
Volume 2
Rocky goes into Freckle's bedroom in "Pinstripes", finding him almost catatonic after the events of the previous evening. Unlike Freckle, Rocky largely brushes off what occurred, though he figures out that Freckle's crazy side is the reason why he was booted from the police academy, and tells Freckle that he can get him a job. Rocky leaves Freckle's bedroom only to encounter Nina in "Somersault". Rocky claims that Freckle will be working as an "errand boy of sorts" at Little Daisy. His glib responses to her questions result in her pushing him down the stairs, after which she tells him that if he really loves Freckle he will keep Freckle out of trouble.
In "Memento", Rocky and Freckle are driving together while Freckle is questioning Rocky about his new job. Rocky initially tells Freckle that he will just be escorting Rocky, though he shortly admits that Freckle will be carrying a gun. When Freckle states that he is not sure that is a good idea, Rocky adds that "in theory" Freckle will never use the gun; he just needs to look intimidating. After Rocky inadvertently reveals that he keeps playing cards in the sleeves of his jacket, he gives Freckle a Three of Clubs, stating that it is Freckle's "lucky number", as it is the number of people Freckle killed the prior evening.
Rocky brings Freckle to meet Mitzi in "Proposition", and Mitzi asks them if they would like lunch. They subsequently accompany Mitzi to her meeting with Asa in "Luncheon". Though she seems to hope that Rocky and Freckle's presence will impress Asa, their conduct proves less than convincing. In "Heartstrings", Rocky greets Mordecai excitedly, referring to him as "Ol'Serious Face" and stating that he has heard stories about Mordecai. Mordecai is less than impressed.
With Mitzi and Freckle, Rocky returns to their car in "Interloper". Mitzi notes en route that they need to start reclaiming their former trade routes rather than doing business with Kehoe, and that she owes someone a visit. Rocky opens the door for Mitzi, not realizing that Mordecai is already sitting in the vehicle. He is less than enthused when Mitzi agrees to speak with Mordecai privately.
In "Haggersnash", Rocky notices that Mitzi has tears in her eyes from her discussion with Mordecai and asks whether he should intervene, but Mitzi tells him to keep his distance. Mitzi asks Rocky to drive her to Wick's, then proceed to Viktor's home in order to learn from him where Lackadaisy can obtain liquor quickly.
Rocky and Freckle escort Mitzi to Wick's home in "Retinue". While Wick is friendly to them, Rocky is less than impressed, and when Wick goes to his garage to retrieve his Roadster, Rocky surprises him, holding up a tire iron, though only to startle Wick. Rocky proceeds to strongly suggest to Wick in "Balderdash" that Mitzi was involved with Atlas's death; if not directly, then through a third party.
While Mitzi and Wick go to Forest Park, Rocky and Freckle go to the college that Ivy is attending in "Academia". Rocky is upset that Wick was not deterred from seeing Mitzi by their encounter, and fears that if Wick becomes involved with Lackadaisy then Rocky will become superfluous. After Freckle asks why they are on the college grounds, Rocky states that he plans to pick up Ivy in order to use her as a shield against Viktor. Upon seeing Rocky, Ivy assaults him in "Bee-line", blaming him for the prior night's events. She is mollified when Rocky explains his reason for coming to her, and tells him that Viktor is "pretty listless"; she visited him earlier, left the radio tuned to "something cheerful" and intends to bring him copies of Vogue and Vanity Fair. Rocky, Ivy and Freckle reach Viktor's apartment in "Deadeye", though Viktor is not happy to see them. In "Dotage", their conversation is interrupted by the arrival of Mrs. Bapka, Viktor's upstairs neighbor, who desires Viktor's assistance with her sink. When he is unable to get to his feet due to a coughing fit related to his injuries, Freckle and Ivy go in his place at Rocky's suggestion. Left alone with Viktor, Rocky asks, in "Defiance", where he can obtain quality alcohol, and Viktor directs him to Defiance.
In "Gallivant", Ivy runs into Rocky and Freckle while she is storming away from Viktor's apartment. Rocky offers her a lift, and after pausing to kiss Freckle and stating that, "we'll do it again", she sits between them. They arrive at Freckle's house in "Homestead", where Ivy horrifies Rocky and Freckle by asking whether she can meet Freckle's mother. Rocky gives Freckle a "friendly reminder" on a piece of paper, and tells him that he will see Freckle before midnight the following day, and that Freckle should bring a long coat, "for the heat". Rocky then asks Ivy whether she would like to go "location scouting" with him, an offer she happily accepts. In "Correspondence", it is revealed that Rocky's "friendly reminder" is a comic depicting Nina killing Rocky after learning the truth of his and Freckle's activities, with the moral, "Remember to always lie".
In "Begorra", Rocky and Ivy travel to a farm located in Defiance, and locate a spring house filled with bottles of liquor. Ivy asks Rocky how she can get Freckle to talk to her. Rocky suggests sports, but when Ivy indicates that she would prefer a more profound conversation, Rocky warns her against it. While they are peering in at the booze a source of illumination comes up from behind them, drawing Ivy's attention. The light is revealed to be from the headlamps of a hearse that is facing them in "Corpse-lights". After Rocky and Ivy provide explanations for their presence at the spring house that apparently fail to satisfy whomever's within the hearse, it moves closer to them. Ivy and Rocky throw a soda bottle and a rock at the front of the hearse, causing little apparent damage. The hearse then charges forward, prompting Ivy and Rocky to run for a nearby cornfield. In "Dead-run" the hearse pursues them through the corn. Rocky and Ivy try to hide in a barn to escape the hearse, only to realize the barn already has a car-sized hole in it. They next place a sickle mower across the barn door opening, expecting it will flatten the hearse's tires, but the sickle mower becomes lodged beneath the hearse as it continues to pursue them. Rocky and Ivy flee into another cornfield in "Haymaker", but trip over an irrigation pipe. The pursuing hearse severs the pipe and hits Rocky. He sustains a head injury shortly before a piece of the pipe lands on him along with the sickle mower. When Ivy finds him he has a visible head wound and is unconscious beneath the pipe and mower. She tries to rouse him in "Predicament", but is unsuccessful, and is forced to abandon him when Abelard and Bobby near their location after emerging from the hearse. Abelard and his associate come upon Rocky's body in "Jellybeans", and believe him to be a high school student who intended to steal their liquor, though Ivy informs them that they meant to purchase alcohol. Ivy, Abelard and Bobby take Rocky's body to the Arbogast Funeral Home in "Undertaker", and Elsa tends to Rocky's head injury. Rocky finally regains some degree of consciousness in "Coercion", though he does not appear to be coherent.
In "Pancakes", Tracy explains that Rocky's obsession with pancakes is due to a congential abnormality affecting his metabolism. As a child Rocky is shown getting an alarming enough sugar buzz that Nina puts him outside and informs Freckle that they will be eating oatmeal for breakfast going forward. Rocky is apparently still on his sugar high that evening, and has been occupying himself digging a large hole and misplacing his clothes. Tracy notes that Rocky may have been bitten by a radioactive pancake or fallen into a vat of toxic pancake batter.
Rocky appears in "Butterfly", in which Freckle's aversion to butterflies is explained; when they were children, Rocky killed a butterfly that had landed on Freckle's face. In "Bee-Glue", set in 1914, Rocky is shown trying to glue flapjacks to Freckle's head to see whether bees will approach him. Rocky's experiment goes awry when he falls and the glue lands on him and he attracts bees.
When Rocky and Freckle were children, Nina spoke to them of the glories of St. Patrick's Day, as shown in "Shenanigans". She then promptly disabused them of such fanciful notions and brought them to church.
Rocky is shown as being willing to hammer a nail into his own head for money in "Tiny Narratives (Q&A)".
In "Tannenbaum", Rocky encounters Viktor wearing a fuzzy green sweater, a red tie, a green-and-yellow hat and a yellow scarf. He launches into an impromptu performance of "O Tannenbaum". Viktor rewards him appropriately.
In "Trouble Boys", Rocky, while trying to impress Mitzi by holding a gun, accidentally shoots the corner of his left ear. In "Tiddlywinks", Mitzi asks Rocky why Calvin is nicknamed "Freckle". Rocky explains that when they were children he shaved the fur off of Freckle's face, and he had a single freckle. This incident is depicted in "Baldface".
Rocky and Freckle bury Sammy Scruggs among Nina's rhodedendrons in "Slipshod". According to Rocky he snitched out Rocky and Freckle hoping to make money.
Rocky appears as a member of Zib's band in a New Year's picture taken in Lackadaisy in 1926, shown in "New Year".
In "Jughands", Rocky approaches Zib for assistance after having gotten both of his hands suck in jugs. In "A Thing For You", Rocky presents Mitzi with a cactus to watch over her while she sleeps. She generously asks Rocky to keep it for himself.
Rocky is depicted in color in "Preview 0019" and "Preview 0026".
Rocky's height is approximately 5'6".[3] He was born on December 19, 1904 in St. Louis, making him 23 years old during the timeframe of the comic.[1] Rocky's left ear is slightly damaged because he inadvertently shot it himself in "Trouble Boys". In "Overtime", Wick's doorman says that Rocky looks like "some scruffy excuse for a hoodlum". Of his appearance, Tracy has noted that the, "upturned points of Rocky's head shape (his ears and cheeks) seemed appropriate for his brand of impudent eagerness. His look is perkier in contrast with, say, the downturned points of Viktor's head shape, and it's no coincidence that his ears make for a devil-horn silhouette".[4] With regards to Rocky's voice, Tracy stated, "I get a lot of comments from readers that he sounds like Nathan Lane when they 'hear' his voice in dialogue. While I don't think his voice would be quite as high in pitch, the wildly varying tonal ranges and delivery rife with inordinate drama would be appropriate. He's something of a thespian at heart, I think...an extremely over-zealous one".[5]
As a child, Nina brought Rocky to church; it is unclear whether he is still religious.[6] Despite his appearance and other less-than-virtuous aspects, Rocky appears to have some sense of chivalry, viewing Mitzi as a damsel-in-distress[7] and referring to her and Ivy by their surnames ("Miss Pepper").[8] To date Rocky has never had a proper romance, though he has had encounters of "various sorts".[5]
Rocky joined Zib's band and consequently Lackadaisy in 1925.[9]
Though Rocky's behavior could oftentimes charitably be described as eccentric, he does appear to have some level of education, as evidenced by his familiarity with Albert Einstein's theories.[10] Tracy has stated that Rocky did not complete his primary education.[11] As shown in "Dithyramb", Rocky is also something of a poet, and is fond of reading, "an eclectic mix of things from poetry to published physics papers, apparently - anything he can get his hands on and reinterpret to coincide with his oftentimes bizarre perspective. H.G. Wells and Twain would almost certainly be among his favorites, he probably enjoys deciphering Joyce more than most, he's evidently read some Shakespeare, and possibly took Don Quixote to heart".[4] Rocky also seems to have some experience as a cheat at cards, as he is shown keeping numerous playing cards up his jacket sleeve in "Memento". Tracy has said that Rocky is very intelligent in a cognitive sense, but it tends to be obscured by his social dysfunctions.[12]
Rocky has exhibited signs that he may not be entirely sane. He was once willing to hammer a nail into his own head for money, and has managed to trap both of his hands in jugs.[13][14] While destroying the pig farm, Rocky laughs in a crazy manner, further evidence that he may not be very well-adjusted.[15] Additionally he has an interest in pancakes that appears to border on the obsessive.[8][16] Tracy theorizes that this may be due to a congential abnormality that affects his metabolism, though she alternately postulates that Rocky perhaps fell into a vat of toxic pancake batter as a child, or perhaps was bitten by a radioactive pancake.[17] Tracy has confirmed that pancakes with maple syrup are Rocky's favorite food. He has consumed alcohol in the past, but it did not go well. He does not drink currently, and to some degree disdains those who do.[11] In "Tiny Narratives (Q&A)", Tracy states that Rocky is, "naturally upbeat, but...there's also a sort of frantic desperation" behind his actions. He is a non-smoker.[18]
Rocky seems less than willing to be entirely honest regarding his misdeeds. In "Malarkey", when Mitzi asks what the pig farmers are so angry about, Rocky feigns amnesia regarding his destruction of their farm. Still, when his mistakes can no longer be ignored Rocky is responsible enough to try to fix them, as evidenced in "Deadlock" when he takes Mitzi's gun, intending to protect the others. He later apologizes to Mitzi for his actions.[19]
"Palaver" establishes that at some point in the past Rocky had to leave St. Louis, and is loathe to leave again because the Lackadaisy crew tolerates him. It is implied that Nina played a role in his needing to leave. Tracy has stated that Rocky's mother was Irish and died in a mundane way, while his father was, according to Nina, "a heathen mongrel scallawag". Their names were Ransom and Sophie. Sophie spent a great deal of her adult life in sanatoriums.[11] Nina did not approve of Sophie's marriage. Nina and Ransom did not get along, which created some distance between Nina and Sophie.[5]
Rocky's mother played classical violin, exposing him to it at a young age. He did not take up fiddling in any serious capacity until he left St. Louis. Tracy has noted that Rocky, "likes the usual cadre of Beethoven, Bach, and Brahms, of course, but Vivaldi, Paganini's unusual solo-violin compositions, and hectic, possibly idiotic Mussorgsky could be counted among his favorites. I'm sure he'd appreciate Kreisler and the modern sounds of Gershwin too".[11]
Rocky is willing to talk about almost anything, though he oftens likens things back to the Romanticists, Shakespeare, or myth and legend.[12]
Rocky's letters to Freckle
As revealed in "Correspondence", between 1921 and 1924 Rocky sent a number of letters to Freckle that Freckle keeps in a box under his bed. Several of them can be seen in part. Information established in the letters is as follows:
- July 1921 - Rocky is writing from his uncle's home in Kankakee. He is earning money by tending the grounds. He anticipates learning to drive a tractor.
- October 21, 1921 - Rocky is riding the Missouri Pacific Railroad, heading further west despite some initial reluctance.
- January 30, 1922 - Rocky is working as a grill cook. He has caught on fire twice.
- Undated (prior to summer) - Rocky is in central Oklahoma. He wishes he could visit St. Louis during the summer. Rocky asks whether Freckle has seen Rocky's father, as Rocky's letters to him have gone unacknowledged.
- Undated - Rocky has joined a circus as a roustabout. While parts of this letter are obscured, it appears that a hostler suggested that Rocky might be able to work as an escape artist. In "Scrapbook" Rocky is shown with the other members of the circus, tied up apparently as part of his act.
- Undated - Rocky sends a letter to Freckle. There is a return address of Custer, South Dakota, though no street information is provided. Freckle's address appears to be 1116 North Benton Avenue, St. Charles, Missouri.
- March 10, 1923 - Much of this letter is obscured. It contains the word "...rthday". There are also the words, "asn't all", "your fault", and, "anyway".
- August, 1923 - The circus "went south" after not quite two years.[11] It appears that Rocky may have received a fiddle from a hobo on a train near the Dakotas, though a number of wasps were inside it. Rocky can play Irish Reel music and Vivaldi. Rocky used to play a fiddle in the parlor of the McMurray House during Christmas.
- April 22, 1924 - Though the date is visible, the bulk of the remainder of this letter is obscured.
Rocky is depicted as a human in "Preview 0009" and "Counterpart". Human Rocky also appears in "Not So Crazy", in which an attempt to be normal results in his eyebrows spontaneously combusting.
Rocky is Freckle's cousin,[20] and the two of them were together a great deal as children prior to Rocky being forced from his home.[21] Rocky is indirectly responsible for Freckle developing acrobatic skill; it was a survival mechanism he was forced to develop.[22] "Correspondence" reveals that Rocky sent a number of letters to Freckle between 1921 and 1924. Freckle has kept them in a box located under his bed. Nina states in "Somersault" that Freckle is, "the only one in all o'creation who'd follow you". Though they seem to have a close relationship, Rocky does not understand Freckle's interest in enforcing the law, and deceives Freckle into believing that he is a vigilante in "Scathefire". Rocky later claims to Freckle that what is lawful is not always what is right, though Freckle does not appear entirely convinced.[23] Though Rocky shows few qualms about deceiving Freckle, he does cut Ivy off when she suggests that he bring Freckle to Lackadaisy, after having earlier deflected Freckle's questions concerning Rocky's involvement with the band.[8] In "Wishy-washy", Rocky is not happy to see that Ivy has brought Freckle to Lackadaisy.
Rocky seems caught off-guard by Freckle's sudden turn into a gun-wielding maniac in "Doolally", though he proudly proclaims Freckle, "my cousin", and Mitzi observes that Freckle has Rocky's laugh. Rocky later notes to Mitzi that Freckle has gone crazy, "once or twice", before, though he adds that the, "unmitigated carnage is a recent development".[19] He figures out that Freckle was dismissed from the police academy because of his behavioral issues in "Pinstripes". When Ivy asks Rocky how she can get Freckle to talk to her, Rocky advises Ivy against prying too deeply into Freckle's psyche.[24]
Rocky appears to consider Mitzi something of a damsel in distress, stating to Viktor in "Spaghetti" that he does not know how she would survive if Rocky quit. This is more pronounced in "Bunny-box", where he refers to her as "Lady Dionysus" and waxes poetic.
Rocky once presented Mitzi with a cactus to watch over her while she slept, but Mitzi insisted that he keep it.[25]
Rocky is familiar with Mordecai from before the latter left Lackadaisy. In "Heartstrings", Mordecai recognizes Rocky as being a member of the band. Rocky calls Mordecai, "Ol'Serious Face" and claims to have heard stories about him. Mordecai is less than impressed.
Rocky asks Mitzi whether he should confront Mordecai after he notices that her conversation with him has brought her to tears in "Haggersnash", but Mitzi tells him to keep his distance.
Nina is Rocky's aunt. While she is willing to do his laundry, there appears to be little love lost between them. In "Somersault", Nina essentially informs Rocky that Freckle is the only person who cares for him; as far as she is concerned Rocky has "already squandered (his) second chances". Nina is the only person to refer to Rocky by his real first name, Roark, though this may be due to other characters not being aware of Rocky's real name.
Rocky has not been fully honest with Nina regarding his occupation; she believes he plays the violin for a living.[2] When Rocky decides to involve Freckle with Lackadaisy, he similarly lies to Nina, claiming he will be working as an errand boy for Little Daisy.[26]
Viktor appears to have some problems tolerating Rocky, likely in part due to Rocky's excitability and verbosity. In "Formaldehyde", Rocky refers to Viktor as a, "surly Slovak", and Mitzi sends Ivy with Rocky to talk to Viktor, believing Viktor will consequently be less inclined to throttle Rocky. Viktor does not believe Rocky has a future in the booze-running business due to Rocky's lack of muscle, though Rocky considers himself Viktor's protégé.[27][28]. Rocky calls Viktor, "Vinegar", in "Defiance", but this appears to be an exception rather than a common occurrence.
As of "Overture", Rocky and Wick are familiar with each other. Rocky appears to enjoy making Wick feel uncomfortable. By "Haggersnash", after Rocky has seen Wick and Mitzi kissing[29], his feelings have escalated to expressing his disdain for Wick in front of Mitzi and Freckle.
Zib seems to have a faintly paternal interest in Rocky, though not necessarily moreso than with regards to the other members of the band. He tries to learn why Rocky has begun working for Mitzi,[30] and later advises him not to become too involved with it.[31]
Rocky is based on a now-deceased real cat, depicted in "Rocky". The earliest depiction of Rocky can be seen in "Protocats" - it bears little resemblance to his current appearance.
Tracy has worked with Damon Bard, a sculptor, to develop a maquette of Rocky. Reference material can be seen in "Preview 0020", while an in-progress version can be seen at "Rocky Sculpt by Damon Bard" and the final can be seen at "Rocky Sculpt Painted".
Tracy stated that she will describe how Rocky became employed with Lackadaisy, and that it involves a "suitably bizarre encounter with Mitzi". She additionally noted that more about Rocky's living arrangements will be revealed in the course of the comic.[32]
"After-party" depicts Freckle sleeping against a couch with empty liquor bottles nearby. Mitzi is resting on Rocky atop the couch. This would seem to be an unlikely development given the course of the comic so far. Similarly, Wick was to be or will be on better terms with Rocky and Freckle, as shown in "Balderdash", in which Rocky teases Wick about associating with Mitzi given the rumors concerning her involvement in Atlas's demise, and "Baby Vamp", in which the three comment upon a passing woman.
In "Preview 0011", Rocky encounters Tracy after she has tried to interview Viktor regarding his missing eye. "Reader Question: Rocky" reveals Rocky's reaction to being told there might be women who like him. "Reader Question: Viktor" suggests that if Rocky was to present a check for a large amount of money to Viktor in an annoying fashion, Viktor would kill Rocky with the check.
- ^ Character Profile Page
- ^ a b "Reciprocity"
- ^ "Preview 0020"
- ^ a b Forum post by Tracy - May 18, 2010
- ^ a b c Forum post by Tracy - October 6, 2009
- ^ "Shenanigans"
- ^ "Spaghetti"
- ^ a b c "Surreption"
- ^ Forum post by Tracy - September 13, 2009
- ^ "Quantentheorie"
- ^ a b c d e Forum post by Tracy - January 27, 2011
- ^ a b Forum post by Tracy - October 20, 2012
- ^ "Tiny Narratives (Q&A)"
- ^ "Jughands"
- ^ "Schadenfreude"
- ^ "Luncheon"
- ^ "Pancakes"
- ^ Forum post by Tracy - September 9, 2009
- ^ a b "Quicklime"
- ^ "Doolally"
- ^ "Pinstripes"
- ^ "Bee-Glue"
- ^ "Brouhaha"
- ^ "Begorra"
- ^ "A Thing For You"
- ^ "Somersault"
- ^ "Spaghetti"
- ^ "Defiance"
- ^ "Rendezvous"
- ^ "Hallelujah"
- ^ "Kibitz"
- ^ Forum post by Tracy - May 20, 2010


text:
This PERSONAL TOP contains ten of the most popular photos published publicly
by Brian Kemper on Google+ between December 7 and December 21, 2012.
2,600,000+ people
follow us on Google+. Join them »
2,600,000+ people
follow us on Google+. Join them »
This PERSONAL TOP contains ten of the most popular photos published publicly
by Brian Kemper on Google+ between December 7 and December 21, 2012.
1) Any photography enthusiast can create a PERSONAL TOP consisting of his/her own Google Plus photographs. This means any existing PERSONAL top has been created by the author of the photographs that are in the TOP; there are no PERSONAL TOPs that were created automatically.
2) Only G+ photographs published by you in one of your Google+ posts should appear in your PERSONAL TOP. This means any posts you have reshared or your own posts without a G+ photo should not appear. No GIFs should be in the TOPs.
3) Contrary to the DAILY TOPs are the PERSONAL TOPs sorted solely on popularity - we use Plus PopRank to sort these. The Plus PopRank formula is: Plus PopRank(of a post) = +1s + (2 x comments) + (4 x reshares)
Example: Let's say that a particular post has 25 +1s, 10 comments and 3 reshares. This means its Plus PopRank is 57 (= 25 + 2x10 + 4*3).
4) 50 Latest PERSONAL TOPs of Google+ Photos »
It's easy.
You can find two kinds of Google Plus TOPs on PhotoExtract.com:
1) Plus Extract TOPs - DAILY sets of TOP G+ photographs, which were chosen by an algorithm that combines automatic steps and manual curation. These DAILY TOPs are NOT based solely on popularity, and users with a small number of followers have a chance to be featured in the TOP.
Learn more about Plus Extract DAILY Google+ TOPs »
2) PERSONAL TOPs, which contain Google+ photos published by photographer who created a TOP. These photographs are sorted solely by their G+ popularity measured by our Plus PopRank.


text:
|Not sure I got the halves right. The meat half could be on the right...
|Get on it. This is your last opportunity!
If you already own a copy, you could always gift one away, or, hold onto a second copy as a backup, since I'm not sure there will be another edition once I sell through my current inventory.
Anyone else veganversary-ing this month? If so, I'm sharing this diddy with you, sung to me by my dearest bub, Dave $, on my 18th year. I could watch this over and over and over again X 948,048,904,809.


text:
Caldwell Community College Native American scholarships
Think about what career is best suited for you, and where you want to study. Request more information now.
Think about what career is best suited for you, and where you want to study. Request more information now.
Think about what career is best suited for you, and where you want to study. Request more information now.
Get the facts about Caldwell Community College Native American scholarships, submitting required application forms, and accessing historical award data online. Which colleges give you the best chances of meeting your educational expenses? Concentrating on Caldwell Community College Native American scholarships, for example, may give you additional focus in the financial assistance selection and award process. Check with the scholarship office for assistance with filling out FAFSA forms, registration deadlines, and academic scholarship program requirements. Please use the form above to request application info for Caldwell Community College.
Grants and scholarships are highly sought-after, because they don't have to be repaid. Grants are often need-based, while scholarships are usually merit-based. The US Department of Education offers a variety of federal grants, such as Federal Pell Grants and Supplemental Educational Opportunity Grants (FSEOG grants). However, there are some cases in which you may have to repay certain grants. For example, if you withdrew early from the program for which the grant was given to you, or if your enrollment status changed in a way that reduced your eligibility for a given grant.
There are thousands of scholarships, from all kinds of organizations, and they're not hard apply for online. You may find that you're eligible for an academic scholarship if you're an outstanding student, or an athletic scholarship if you stand out on the playing field. Digging deeper, there are niche scholarships awarded for a variety or reasons, such as because your parents work for a particular company, or you are a member of a civic organization such as the Rotary Club.
Admissions Recruiter I
Florida International University
Collaborates and assist the Admissions staff. College fairs) of assigned territories, including targeted international territories..
5 days ago Administrative Coordinator
Occidental College
About Occidental College. Founded in 1887, Occidental is a small, highly selective and diverse liberal arts college in a big city.
5 days ago Senior Office Assistant - Admissions & Registrar
Tarrant County College
Experience in fast-paced, high volume college admissions office. Associate's degree or 60 college hours. Supports the values of the College.
4 days ago Admissions Counseling
Stanbridge College
About Stanbridge College. Reporting to the Director of Admissions, the Admissions Representative is responsible for enrolling qualified students into the..
5 days ago Admissions Rep
Education Corporation of America
Then consider joining us at Brightwood College as an Admissions Representative. Knowledge of and commitment to regulatory and college admission policies.
7 hours ago


text:
Wiggle uses cookies to improve your experience. Continue browsing to accept our
use of cookies
Bicycle wheels come in a wide range of sizes from 12" wheels found on smaller Kids Bikes to larger 29" Mountain Bike and 700c Road Bike wheels. Larger wheels are normally faster and more stable at speed and their larger contact patch improves grip too. Smaller wheels are normally lighter, more manoeuvrable and have quicker acceleration.
Wheel sizes are defined by the country that first popularised the style of bike that used them - so you'll see some imperial and some metric measurements listed. Wiggle includes the ISO standard in brackets after each for ease of comparison.
An inner tube pressurises the area beneath the bike tyre. The edges of the tire wrap over the edges of the rim with the inner tube nestled inside the tyre. It is an essential component in making a bicycle wheel function. The inner tube keeps your bike tyres hard and helps them roll smoothly.
Inner tubes are good because there are a wide variety of inner tubes available in different sizes, valves and materials for you to choose from. All you have to do is find a tube that is fit for the purpose of your style of riding and budget.
Choose an inner tube that matches your tyre size and diameter to ensure the tube fits correctly. Presta or Shrader valves are most common valve types used to inflate the tube. Latex inner tubes offer significant weight savings over butyl rubber inner tubes. The latter also hold air more effectively and are cheaper in price.
Only 4 products can be compared at once. Adding this product will remove the product you added to the list first.
Do you want to continue?
We ship to over 70 countries!
And offer local delivery and payment options
© Wiggle Ltd. 2018
Terms & conditions
Privacy Policy
Wiggle Ltd. 1000 Lakeside, Suite 310, Third Floor N E Wing, Portsmouth, Hampshire, PO6 3EN, United Kingdom /
Company No: 2667809 /
VAT No: 884 2571 94
There are no facilities for customer collections or returns at this address. Please ensure any returns are processed as instructed on the Help page - Returns.Executive Director: Will Kernan.