text:
In this article by Sylvain Ratabouil, author of Android NDK Beginner's Guide we are going to do the following:
- Compile and deploy official sample applications from the Android NDK with Ant build tool and native code compiler ndk-build
- Learn in more detail about ADB, the Android Debug Bridge, to control a development device
- Discover additional tools like AM to manage activities and AAPT to package applications
- Create our first own hybrid multi-language project using Eclipse
- Interface Java to C/C++ through Java Native Interfaces (in short JNI)
Android NDK Beginner's Guide
(Discover the native side of Android and inject the power of C/C++ in your applications with this book and ebook)
By the end of this article, you should know how to start up a new Android native project on your own.
A man with the most powerful tools in hand is unarmed without the knowledge of their usage. Eclipse, GCC, Ant, Bash, Shell, Linux—any new Android programmer needs to deal with this technologic ecosystem. Depending on your background, some of these names may sound familiar to your ears. Indeed, that is a real strength; Android is based on open source bricks which have matured for years. Theses bricks are cemented by the Android Development Kits (SDK and NDK) and their set of new tools: Android Debug Bridge (ADB), Android Asset Packaging Tool (AAPT), Activity Manager (AM), ndk-build, and so on. So, since our development environment is set up, we can now get our hands dirty and start manipulating all these utilities to create, compile, and deploy projects which include native code.
Compiling and deploying NDK sample applications I guess you cannot wait anymore to test your new development environment. So why not compile and deploy elementary samples provided by the Android NDK first to see it in action? To get started, I propose to run HelloJni, a sample application which retrieves a character string defined inside a native C library into a Java activity (an activity in Android being more or less equivalent to an application screen).
Time for action – compiling and deploying hellojni sample
Let's compile and deploy HelloJni project from command line using Ant:
- Open a command-line prompt (or Cygwin prompt on Windows).
- Go to hello-jni sample directory inside the Android NDK. All the following steps have to performed from this directory:
$ cd $ANDROID_NDK/samples/hello-jni
- Create Ant build file and all related configuration files automatically using android command (android.bat on Windows). These files describe how to compile and package an Android application:
android update project –p .
- Build libhello-jni native library with ndk-build, which is a wrapper Bash script around Make. Command ndk-build sets up the compilation toolchain for native C/ C++ code and calls automatically GCC version featured with the NDK.
$ ndk-build
- Make sure your Android development device or emulator is connected and running.
- Compile, package, and install the final HelloJni APK (an Android application package). All these steps can be performed in one command, thanks to Ant build automation tool. Among other things, Ant runs javac to compile Java code, AAPT to package the application with its resources, and finally ADB to deploy it on the development device. Following is only a partial extract of the output:
$ ant install
- Launch a shell session using adb (or adb.exe on Windows). ADB shell is similar to shells that can be found on the Linux systems:
$ adb shell
- From this shell, launch HelloJni application on your device or emulator. To do so, use am, the Android Activity Manager. Command am allows to start Android activities, services or sending intents (that is, inter-activity messages) from command line. Command parameters come from the Android manifest:
# am start -a android.intent.action.MAIN -n com.example.hellojni/com.example.hellojni.HelloJni
- Finally, look at your development device. HelloJni appears on the screen!
(Move the mouse over the image to enlarge.)
The result should look like the following extract:
What just happened?
We have compiled, packaged, and deployed an official NDK sample application with Ant and SDK command-line tools. We will explore them more in later part. We have also compiled our first native C library (also called module) using the ndk-build command. This library simply returns a character string to the Java part of the application on request. Both sides of the application, the native and the Java one, communicate through Java Native Interface. JNI is a standard framework that allows Java code to explicitly call native C/C++ code with a dedicated API.
Finally, we have launched HelloJni on our device from an Android shell (adb shell) with the am Activity Manager command. Command parameters passed in step 8 come from the Android manifest: com.example.hellojni is the package name and com.example.hellojni. HelloJni is the main Activity class name concatenated to the main package.
<!--?xml version="1.0" encoding="utf-8"?-->
Automated build
Because Android SDK, NDK, and their open source bricks are not bound to Eclipse or any specific IDE, creating an automated build chain or setting up a continuous integration server becomes possible. A simple bash script with Ant is enough to make it work!
HelloJni sample is a little bit... let's say rustic! So what about trying something fancier? Android NDK provides a sample named San Angeles. San Angeles is a coding demo created in 2004 for the Assembly 2004 competition. It has been later ported to OpenGL ES and reused as a sample demonstration in several languages and systems, including Android. You can find more information by visiting one of the author's page: Jet.ro.
Have a go hero – compiling san angeles OpenGL demo
To test this demo, you need to follow the same steps:
- Go to the San Angeles sample directory.
- Generate project files.
- Compile and install the final San Angeles application.
- Finally run it.
As this application uses OpenGL ES 1, AVD emulation will work, but may be somewhat slow!
You may encounter some errors while compiling the application with Ant:
The reason is simple: in res/layout/ directory, main.xml file is defined. This file usually defines the main screen layout in Java application—displayed components and how they are organized. However, when Android 2.2 (API Level 8) was released, the layout_width and layout_height enumerations, which describe the way UI components should be sized, were modified: FILL_PARENT became MATCH_PARENT. But San Angeles uses API Level 4.
There are basically two ways to overcome this problem. The first one is selecting the right Android version as the target. To do so, specify the target when creating Ant project files:
$ android update project –p . -–target android-8
This way, build target is set to API Level 8 and MATCH_PARENT is recognized. You can also change the build target manually by editing default.properties at the project root and replacing:
with the following line:
The second way is more straightforward: erase the main.xml file! Indeed, this file is in fact not used by San Angeles demo, as only an OpenGL screen created programmatically is displayed, without any UI components.
Target right!
When compiling an Android application, always check carefully if you are using the right target platform, as some features are added or updated between Android versions. A target can also dramatically change your audience wideness because of the multiple versions of Android in the wild... Indeed, targets are moving a lot and fast on Android!.
All these efforts are not in vain: it is just a pleasure to see this old-school 3D environment full of flat-shaded polygons running for the first time. So just stop reading and run it!
Exploring android SDK tools Android SDK includes tools which are quite useful for developers and integrators. We have already overlooked some of them including the Android Debug Bridge and android command. Let's explore them deeper.
Android debug bridge
You may have not noticed it specifically since the beginning but it has always been there, over your shoulder. The Android Debug Bridge is a multifaceted tool used as an intermediary between development environment and emulators/devices. More specifically, ADB is:
- A background process running on emulators and devices to receive orders or requests from an external computer.
- A background server on your development computer communicating with connected devices and emulators. When listing devices, ADB server is involved. When debugging, ADB server is involved. When any communication with a device happens, ADB server is involved!
- A client running on your development computer and communicating with devices through ADB server. That is what we have done to launch HelloJni: we got connected to our device using adb shell before issuing the required commands.
ADB shell is a real Linux shell embedded in ADB client. Although not all standard commands are available, classical commands, such as ls, cd, pwd, cat, chmod, ps, and so on are executable. A few specific commands are also provided such as:
To display device log messages
To dump system state
To dump kernel messages
ADB shell is a real Swiss Army knife. It also allows manipulating your device in a flexible way, especially with root access. For example, it becomes possible to observe applications deployed in their "sandbox" (see directory /data/data) or to a list and kill currently running processes.
ADB also offers other interesting options; some of them are as follows:
To transfer a file to your computer
To transfer a file to your device or emulator
To install an application package
install -r
To reinstall an application, if already deployed
To list all Android devices currently connected, including emulators
To restart an Android device programmatically
To sleep, until a device or emulator is connected to your computer (for example,. in a script)
To launch the ADB server communicating with devices and emulators
To terminate the ADB server
To print the whole device state (like dumpsys)
To get an exhaustive help with all options and flags available
To ease the writing of issued command, ADB provides facultative flags to specify before options:
-s To target a specific device
-d To target current physical device, if only one is connected (or an error message is raised)
-e To target currently running emulator, if only one is connected (or an error message is raised)
ADB client and its shell can be used for advanced manipulation on the system, but most of the time, it will not be necessary. ADB itself is generally used transparently. In addition, without root access to your phone, possible actions are limited. For more information, see Developer.android.com.
Root or not root.
If you know the Android ecosystem a bit, you may have heard about rooted phones and non-rooted phones. Rooting a phone means getting root access to it, either "officially" while using development phones or using hacks with an end user phone. The main interest is to upgrade your system before the manufacturer provides updates (if any!) or to use a custom version (optimized or modified, for example, CyanogenMod). You can also do any possible (especially dangerous) manipulations that an Administrator can do (for example, deploying a custom kernel). Rooting is not an illegal operation, as you are modifying YOUR device. But not all manufacturers appreciate this practice and usually void the warranty.
Have a go hero – transferring a file to SD card from command line
Using the information provided, you should be able to connect to your phone like in the good old days of computers (I mean a few years ago!) and execute some basic manipulation using a shell prompt. I propose you to transfer a resource file by hand, like a music clip or a resource that you will be reading from a future program of yours.
To do so, you need to open a command-line prompt and perform the following steps:
- Check if your device is available using adb from command line.
- Connect to your device using the Android Debug Bridge shell prompt.
- Check the content of your SD card using standard Unix ls command. Please note that ls on Android has a specific behavior as it differentiates ls mydir from ls mydir/, when mydir is a symbolic link.
- Create a new directory on your SD card using the classic command mkdir
- Finally, transfer your file by issuing the appropriate adb command.
Project configuration tool
The command named android is the main entry point when manipulating not only projects but also AVDs and SDK updates. There are few options available, which are as follows:
- create project: This option is used to create a new Android project through command line. A few additional options must be specified to allow proper generation:
-p The project path
-n The project name
-t The Android API target
-k The Java package, which contains application's main class
-a The application's main class name (Activity in Android terms)
For example:
$ android create project –p ./MyProjectDir –n MyProject –t
android-8 –k com.mypackage –a MyActivity
- update project: This is what we use to create Ant project files from an existing source. It can also be used to upgrade an existing project to a new version. Main parameters are as follows:
-p The project path
-n To change the project name
-l To include an Android library project (that is, reusable code). The path must be relative to the project directory).
-t To change the Android API target
There are also options to create library projects (create lib-project, update lib- project) and test projects (create test-project, update test-project). I will not go into details here as this is more related to the Java world.
As for ADB, android command is your friend and can give you some help:
$ android create project –help
Command android is a crucial tool to implement a continuous integration toolchain in order to compile, package, deploy, and test a project automatically entirely from command line.
Have a go hero – towards continuous integration
With adb, android, and ant commands, you have enough knowledge to build a minimal automatic compilation and deployment script to perform some continuous integration. I assume here that you have a versioning software available and you know how to use it. Subversion (also known as SVN) is a good candidate and can work in local (without a server).
Perform the following operations:
- Create a new project by hand using android command.
- Then, create a Unix or Cygwin shell script and assign it the necessary execution rights (chmod command). All the following steps have to be scribbled in it.
- In the script, check out sources from your versioning system (for example, using a svn checkout command) on disk. If you do not have a versioning system, you can still copy your own project directory using Unix commands.
- Build the application using ant.
- If needed, you can deploy resources files using adb
- Install it on your device or on the emulator (which you can launch from the script) using ant as shown previously.
- You can even try to launch your application automatically and check Android logs (see logcat option in adb). Of course, your application needs to make use of logs!
Do not forget to check command results using $?. If the returned value is different from 0, it means an error occurred. Additionally, you can use grep or some custom tools to check potential error messages.
A free monkey to test your App!
In order to automate UI testing on an Android application, an interesting utility that is provided with the Android SDK is MonkeyRunner, which can simulate user actions on a device to perform some automated UI testing. Have a look at Developer.android.com .
To favor automation, a single Android shell statement can be executed from command-line as follows:
adb shell ls /sdcard/
To execute a command on an Android device and retrieve its result back on your host shell, execute the following command: adb shell "ls / notexistingdir/ 1> /dev/null 2> &1; echo \$?" Redirection is necessary to avoid polluting the standard output. The escape character before $? is required to avoid early interpretation by the host shell.
Now you are fully prepared to automate your own build toolchain!
Creating your first android project using eclipse In the first part of the article, we have seen how to use Android command-line tools. But developing with Notepad or VI is not really attractive. Coding should be fun! And to make it so, we need our preferred IDE to perform boring or unpractical tasks. So let's see now how to create an Android project using Eclipse.
Eclipse views and perspectives
Several times in this book, I have asked you to look at an Eclipse View like the Package Explorer View, the Debug View, and so on. Usually, most of them are already visible, but sometimes they are not. In that case, open them through main menu: Window | Show View | Other…. Views in Eclipse are grouped in perspectives, which basically store your workspace layout. They can be opened through main menu: Window | Open Perspective | Other…. Note that some contextual menus are available only in some perspectives.
Time for action – initiating a Java project
- Launch Eclipse.
- In the main menu, select File | New | Project…
- In the project wizard, select Android | Android Project and then Next.
- In the next screen, enter project properties:
- In Project name, enter MyProject.
- Select Create a new project in workspace.
- Specify a new location if you want to, or keep the default location (that is, your eclipse workspace location).
- Set Build Target to Android 2.3.3.
- In Application name, enter (which can contain spaces): MyProject.
- In Package name, enter com.myproject.
- Create a new activity with the name MyActivity.
- Set Min SDK Version to 10.
- Click on Finish. The project is created. Select it in Package Explorer view.
- In the main menu, select Run | Debug As | Android Application or click on the Debug button in the toolbar.
- Select application type Android Application and click OK:
- Your application is launched, as shown in the following screenshot:
What just happened?
We have created our first Android project using Eclipse. In a few screens and clicks, we have been able to launch the application instead of writing long and verbose commands. Working with an IDE like Eclipse really gives a huge productivity boost and makes programming much more comfortable!
ADT plugin has an annoying bug that you may have already encountered: Eclipse complains that your Android project is missing the required source folder gen whereas this folder is clearly present. Most of the time, just recompiling the project makes this error disappear. But sometimes, Eclipse is recalcitrant and refuses to recompile projects. In that case, a little-known trick, which can be applied in many other cases, is to simply open the Problems view, select these irritating messages, delete them without mercy (Delete key or right-click and Delete) and finally recompile the incriminated project.
Android projects created with ADT are always Java projects. But thanks to Eclipse flexibility, we can turn them into C/C++ projects too; we are going to see this at the end of this article.
Avoiding space in file paths
When creating a new project, avoid leaving a space in the path where your project is located. Although Android SDK can handle that without any problem, Android NDK and more specifically GNU Make may not really like it.
Introducing Dalvik
It is not possible to talk about Android without touching a word about Dalvik. Dalvik, which is also the name of an Icelandic village, is a Virtual Machine on which Android bytecode is interpreted (not native code!). It is at the core of any applications running on Android. Dalvik is conceived to fit the constrained requirements of mobile devices. It is specifically optimized to use less memory and CPU. It sits on top of the Android kernel which provides the first layer of abstraction over hardware (process management, memory management, and so on).
Android has been designed with speed in mind. Because most users do not want to wait for their application to be loaded while others are still running, the system is able to instantiate multple Dalvik VMs quickly, thanks to the Zygote process. Zygote, whose name comes from the very first biologic cell of an organism from which daughter cells are reproduced, starts when the system boots up. It preloads (or "warms up") all core libraries shared among applications as well as a Dalvik instance. To launch a new application, Zygote is simply forked and the initial Dalvik instance is copied. Memory consumption is lowered by sharing as many libraries as possible between processes.
Dalvik operates on Android bytecode, which is different from Java bytecode. Bytecode is stored in an optimized format called Dex generated by an Android SDK tool named dx. Dex files are archived in the final APK with the application manifest and any native libraries or additional resources needed. Note that applications can get further optimized during installation on end user's device.
Interfacing Java with C/C++ Keep your Eclipse IDE opened as we are not done with it yet. We have a working project indeed. But wait, that is just a Java project, whereas we want to unleash the power of Android with native code! In this part, we are going to create C/C++ source files, compile them into a native library named mylib and let Java run this code.
Time for action – calling C code from Java
The native library mylib that we are going to create will contain one simple native method getMyData() that returns a basic character string. First, let's write the Java code to declare and run this method.
- Open MyActivity.java. Inside main class, declare the native method with the native keyword and no method body:
public class MyActivity extends Activity {
public native String getMyData();
- Then, load the native library that contains this method within a static initialization block. This block will be called before Activity instance gets initialized:
static {
- Finally, when Activity instance is created, call the native method and update the screen content with its return value. You can refer to the source code provided with this book for the final listing:
public void onCreate(Bundle savedInstanceState) {
Now, let's prepare the project files required to build the native code.
- In Eclipse, create a new directory named jni at the project's root using menu File | New | Folder.
- Inside the jni directory, create a new file named Android.mk using menu File | New | File. If CDT is properly installed, the file should have the following specific icon in the Package Explorer view:
- Write the following content into this file. Basically, this describes how to compile our native library named mylib which is composed of one source file the com_ myproject_MyActivity.c:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := com_myproject_MyActivity.c
include $(BUILD_SHARED_LIBRARY)
As project files for native compilation are ready, we can write the expected native source code. Although the C implementation file must be written by hand, the corresponding header file can be generated with a helper tool provided by the JDK: javah.
- In Eclipse, open Run | External Tools | External Tools Configurations….
- Create a new program configuration with the following parameters:
- Name: MyProject javah.
- Location refers to javah absolute path, which is OS-specific. In Windows, you can enter ${env_var:JAVA_HOME}\bin\javah.exe. In Mac OS X and Linux, it is is usually /usr/bin/javah.
- Working directory: ${workspace_loc:/MyProject/bin}.
- Arguments: –d ${workspace_loc:/MyProject/jni} com.myproject. MyActivity}.
In Mac OS X, Linux, and Cygwin, you can easily find the location of an executable available in $PATH, by using the which command.
For example,
$ which javah
- On the Refresh tab, check Refresh resources upon completion and select Specific resources. Using the Specify Resources… button, select the jni folder.
- Finally, click on Run to save and execute javah. A new file com_myproject_ MyActivity.h is generated in the jni folder. It contains a prototype for the method getMyData() expected on the Java side:
/* DO NOT EDIT THIS FILE - it is machine generated */
JNIEXPORT jstring JNICALL Java_com_myproject_MyActivity_getMyData
(JNIEnv *, jobject);
- We can now create com_myproject_MyActivity.c implementation inside the jni directory to return a raw character string. Method signature originates from the generated header file:
#include "com_myproject_MyActivity.h"
JNIEXPORT jstring Java_com_myproject_MyActivity_getMyData
(JNIEnv* pEnv, jobject pThis)
return (*pEnv)->NewStringUTF(pEnv,
"My native project talks C++");
Eclipse is not yet configured to compile native code, only Java code. Until we do that in the last part of this article, we can try to build native code by hand.
- Open a terminal prompt and go inside the MyProject directory. Launch compilation of the native library with the command ndk-build:
$ cd /MyProject
$ ndk-build
The native library is compiled in the libs/armeabi directory and is named libmylib.so. Temporary files generated during compilation are located in the obj/local directory.
- From Eclipse, launch MyProject again. You should obtain following result:
What just happened?
In the previous part, we created an Android Java project. In this second part, we have interfaced Java code to a native library compiled with the Android NDK from a C file. This binding from Java to C allows retrieving through Java Native Interfaces a simple Java string allocated in the native code. The example application shows how Java and C/C++ can cooperate together:
- By creating UI components and code on the Java side and defining native calls.
- Using javah to generate header file with corresponding C/C++ prototypes.
- Writing native code to perform the expected operation.
Native methods are declared on the Java side with the native keyword. These methods have no body (like an abstract method) as they are implemented on the native side. Only their prototype needs to be defined. Native methods can have parameters, a return value, any visibility (private, protected, package protected or public) and can be static, like classic Java methods. Of course, they require the native library with method implementations to be loaded before they are called. A way to do that is to invoke System.loadLibrary() in a static initialization block, which is initialized when the containing class is loaded. Failure to do so results in an exception of type java.lang.UnsatisfiedLinkError, which is raised when the native method is invoked for the first time.
Although it is not compulsory, javah tool provided by the JDK is extremely useful to generate native prototypes. Indeed, JNI convention is tedious and error-prone. With generated headers, you immediately know if a native method expected by the Java side is missing or has an incorrect signature. I encourage you to use javah systematically in your projects, more specifically, each time native method's signature is changed. JNI code is generated from .class files, which means that your Java code must be first compiled before going through javah conversion. Implementation needs to be provided in a separate C/C++ source file.
Remember that a very specific naming convention, which is summarized by the following pattern, must be followed by native side methods:
Java___ (JNIEnv* pEnv,
Native method name is prefixed with Java_ and the packages/class name (separated by _) containing it separated. First argument is always of type JNIEnv and the preceding arguments are the actual parameters given to the Java method.
More on makefiles
Native library building process is orchestrated by a Makefile named Android.mk. By convention, Android.mk is in folder jni, which is located inside the project's root. That way, ndk-build command can find this file automatically when the command is invoked. Therefore, C/C++ code is by convention also located in jni directory (but this can be changed by configuration).
Android Makefiles are an essential piece of the NDK building process. Thus, it is important to understand the way they work to manage a project properly. An Android.mk file is basically a "baking" file, which defines what to compile and how to compile. Configuration is performed using predefined variables, among which are: LOCAL_PATH, LOCAL_MODULE and LOCAL_SRC_FILES.
The Android.mk file presented in MyProject is a very simple Makefile example. Each instruction serves a specific purpose:
LOCAL_PATH := $(call my-dir)
The preceding code indicates native source files location. Instruction $(call < function> ) allows evaluating a function and function my-dir returns the directory path of the last executed Makefile. Thus, as Makefiles usually share their directory with source files, this line is systematically written at the beginning of each Android.mk file to find their location.
include $(CLEAR_VARS)
Makes sure no "parasite" configuration disrupts compilation. When compiling an application, a few LOCAL_XXX variables need to be defined. The problem is that one module may define additional configuration settings (like a compilation MACRO or a flag) through these variables, which may not be needed by another module.
Keep your modules clean
To avoid any disruption, all necessary LOCAL_XXX variables should be cleared before any module is configured and compiled. Note that LOCAL_PATH is an exception to that rule and is never cleared out.
LOCAL_MODULE := mylib
The preceding line of code defines your module name. After compilation, the output library is named according to the LOCAL_MODULE variable flanked by a lib prefix and a .so suffix. This LOCAL_MODULE name is also used when a module depends on another module.
LOCAL_SRC_FILES := com_myproject_MyActivity.c
The preceding line of code indicates which source files to compile. File path is expressed relative to the LOCAL_PATH directory.
nclude $(BUILD_SHARED_LIBRARY)
This last instruction finally launches the compilation process and indicates which type of library to generate.
With Android NDK, it is possible to produce shared libraries (also called dynamic libraries, like DLL on Windows) as well as static libraries:
- Shared libraries are a piece of executable loaded on demand. These are stored on disk and loaded to memory as a whole. Only shared libraries can be loaded directly from Java code.
- Static libraries are embedded in a shared library during compilation. Binary code is copied into a final library, without regards to code duplication (if embedded by several different modules).
In contrast with shared libraries, static libraries can be stripped, which means that unnecessary symbols (like a function which is never called from the embedding library) are removed from the final binary. They make shared libraries bigger but "all-inclusive", without dependencies. This avoids the "DLL not found" syndrome well known on Window.
Shared vs. Static modules
Whether you should use a static or shared library depends on the context:
- If a library is embedded in several other libraries
- If almost all pieces of code are required to run
- If a library needs to be selected dynamically at runtime
- If it is used in one or only a few places
- If only part of its code is necessary to run
- If loading it at the beginning of your application is not a concern
then consider turning it into a static library instead. It can be reduced in size at compilation-time at the price of some possible duplication.
then consider turning it into a shared library because they avoid memory duplication (which is a very sensible issue on mobile devices). On the other hand:
Compiling native code from eclipse You probably agree with me, writing code in Eclipse but compiling it by hand is not very satisfying. Although the ADT plugin does not provide any C/C++ support, Eclipse does this through CDT. Let's use it to turn our Android project into a hybrid Java-C/C++ project.
Time for action – creating a hybrid Java/C/C++ project
To check whether Eclipse compilation works fine, let's introduce surreptitiously an error inside the com_myproject_MyActivity.c file. For example:
#include "com_myproject_MyActivity.h"
private static final String = "An error here!";
JNIEXPORT jstring Java_com_myproject_MyActivity_getMyData
Now, let's compile MyProject with Eclipse:
- Open menu File | New | Other....
- Under C/C++, select Convert to a C/C++ Project and click on Next.
- Check MyProject, choose MakeFile project and Other Toolchain and finally click on Finish.
- Open C/C++ perspective when requested.
- Right-click on MyProject in Project explorer view and select Properties.
- In the C/C++ Build section, uncheck Use default build command and enter ndk- build as a Build command. Validate by clicking on OK:
And... oops! An error got insidiously inside the code. An error? No we are not dreaming! Our Android project is compiling C/C++ code and parsing errors:
- Let's fix it by removing the incriminated line (underlined in red) and saving the file.
- Sadly, the error is not gone. This is because auto-build mode does not work. Go back to project properties, inside C/C++ Settings and then the Behaviour tab. Check Build on resource save and leave the value to all.
- Go to the Builders section and place CDT Builder right above Android Package Builder. Validate.
- Great! Error is gone. If you go to the Console view, you will see the result of ndk- build execution like if it was in command line. But now, we notice that the include statement of jni.h file is underlined in yellow. This is because it was not found by the CDT Indexer for code completion. Note that the compiler itself resolves them since there is no compilation error. Indeed, the indexer is not aware of NDK include paths, contrary to the NDK compiler.
- Let's go back to project properties one last time. Go to section C/C++ General/Paths and Symbols and then in Includes tab.
- Click on Add... and enter the path to the directory containing this include file which is located inside NDK's platforms directory. In our case, we use Android 2.3.3 (API level 9), so the path is ${env_var:ANDROID_NDK}/platforms/android-9/ arch-arm/usr/include. Environment variables are authorized and encouraged! Check Add to all languages and validate:
- Because jni.h includes some "core" include files (for example, stdarg.h), also add ${env_var:ANDROID_NDK}/toolchains/arm-linux- androideabi-4.4.3/prebuilt//lib/gcc/arm-linux- androideabi/4.4.3/include path and close the Properties window. When Eclipse proposes to rebuild its index, say Yes.
- Yellow lines are now gone. If you press Ctrl and click simultaneously on string.h, the file gets automatically opened. Your project is now fully integrated in Eclipse.
If warnings about the include file which the CDT Indexer could not find do not appear, go to C/C++ perspective, then right-click on the project name in the Project Explorer view and select Index/Search for Unresolved Includes item. The Search view appears with all unresolved inclusions.
What just happened?
We managed to integrate Eclipse CDT plugin with an Android project using CDT conversion wizard. In a few clicks, we have turned a Java project into a hybrid Java/C/C++ project! By tweaking CDT project properties, we managed to launch ndk-build command to produce the library mylib defined in Android.mk. After getting compiled, this native library is packaged automatically into the final Android application by ADT.
Running javah automatically while building
If you do not want to bother executing manually javah each time native methods changes, you can create an Eclipse builder:
- Open your project Properties window and go to the Builder section.
- Click on New… and create a new builder of type Program.
- Enter configuration like done at step 8 with the External tool configuration.
- Validate and position it after Java Builder in the list (because JNI files are generated from Java .class files).
- Finally, move CDT Builder right after this new builder (and before Android Package Builder).
JNI header files will now be generated automatically each a time project is compiled.
In step 8 and 9, we enabled Building on resource save option. This allows automatic compilation to occur without human intervention, for example, when a save operation is triggered. This feature is really nice but can sometimes cause a build cycle: Eclipse keeps compiling code so we moved CDT Builder just before Android Package Builder, in step 9, to avoid Android Pre Compiler and Java Builder to triggering CDT uselessly. But this is not always enough and you should be prepared to deactivate it temporarily or definitely as soon as you are fed up!>
Automatic building
Build command invocation is performed automatically when a file is saved. This is practical but can be resource and time consuming and can cause some build cycle. That is why it is sometimes appropriate to deactivate the Build automatically option from main menu through Project. A new button: appears in the toolbar to trigger a build manually. You can then re-enable automatic building.
Summary Although setting up, packaging, and deploying an application project are not the most exciting tasks, but they cannot be avoided. Mastering them will allow being productive and focused on the real objective: producing code.
In this artilce, we have seen how to use NDK command tools to compile and deploy Android projects manually. This experience will be useful to make use of continuous integration in your project. We have also seen how to make both Java and C/C++ talk together in a single application using JNI. Finally we have created a hybrid Java/C/C++ project using Eclipse to develop more efficiently.
With this first experiment in mind, you got a good overview of how the NDK works.
Android NDK Beginner's Guide
Discover the native side of Android and inject the power of C/C++ in your applications with this book and ebook


text:
By Benjamin Kellogg Apr 03, 2013 1
In my last column, I said I was preparing to give a speech at a meeting of a local special education group about my life with autism in order to advocate for other people with autism and other special needs in my community. I have since begun gathering my thoughts, and I am working toward making the best 20-minute speech that I can. I feel incredibly nervous about this because this is the first time I will be speaking at considerable length about my personal life in front of an audience. For me, this isn't the same thing as writing about my life for this column or for my blog; what I write here is basically small snapshots of specific parts of my life. I am going to have to address a large portion of my life and experiences in one speech, and while I have a rough outline of how I want to organize the material, doing so is a bit intimidating for me. I read something recently, though, which has caused me to think of this project in a new light. I now think this is a chance for me to learn how to not just advocate for others but to advocate for myself as well, an endeavor which has largely been taken up by my parents my whole life.
I logged on to the Autism After 16 website not too long ago, and I came across a column written by the mother of a child with Asperger's Syndrome almost a year ago. I found myself focusing intently on the section where she wrote about her son taking on more college classes than he probably should have. She surmised that if he had mentioned his condition to his advisor, he could have arranged for a more accommodating number of classes and would not have become potentially overburdened. She said that her son was afraid of what people would think of him if they knew he had Asperger's.
As I read this, I remembered that when I went with my mother to see an advisor about scheduling my upcoming college classes, my mother was the one who mentioned my autism and helped me to figure out what classes might best serve me and my interests. In fact, there have been many instances when my parents have represented me in discussions because my autism would have made doing my own negotiations difficult. With them on my side, my concerns and needs were properly addressed so I could get the opportunities and resources I needed to excel. After reading the article, I now recognize, however, that I will need to represent myself when I "leave the nest" and see to my own affairs more independently. The student in the column I read had not self-advocated on his own behalf which produced less desirable results. I am at a point in my life where I need to learn how to self-advocate for my own benefit, and with my parents' help, I know I will succeed in finding my own style of personal advocacy. I have learned how to do a lot of things on my own. The content for this column, my blog, and the other material I have written professionally along with the many life skills that I have mastered are proof of that. Although I have learned to do all these things and more, I see now that the speech I will deliver at the special education group meeting will be one of the most important things I will have ever done for myself and others on my own. It will be the culmination of a whole life of others standing up for me.

subset: commoncrawl


text:
I would like to request the return of the option to see what others users are playing in the right hand panel like in Madsonic 5. I thought it was a great feature to see what others were listening to without having to navigate to a new screen or checking any logs. The Broadcast screen is nice but I don't like switching back and forth to see what is currently being played.
Also sorry if this is already a feature and I am just blind and can't see it.
Thank you for including this in 6.1.8220!! I think you can move this post to the Solved Request. Mission Accomplished!


text:
I recently posted two Guest Posts by one of the students in our dojo. I cannot tell you how happy it makes me when students start to think and write about Karate.
When I write something, it is like a 1 or a 2 to me. When a student writes something, it is a 10!
Writing makes a student think and organize his thoughts. Sometimes a student perform a movement pretty well, but does not understand what he is doing. When a student can do it and understands it and can express it, then he can teach it!
Writing is a funny thing. I took a class once about dreams. Our assignment was to write down our dreams as soon as we woke up. At first, I did not have much to write. But within a few day, I had so much to write down that I had to stop -- it would simply take too long.
Once a student starts to think and write about his Karate experiences, it is like that -- there is just too much to write down. But it is a useful process and makes for a much better teacher.
In the next issue of Classical Fighting Arts, the second part of my article about Shozen Sunabe (student of Chotoku Kyan) will appear. I have also written the editorial for that issue. It will be about Mitsugi Kobayashi, a Hawaii man who lived in Okinawa and studied Goju-Ryu under Seko Higa. Kobayashi Sensei passed away in June at the age of 88.
I would like to encourage Karate students around the world to write about the art, especially about seniors like Sunabe Sensei and Kobayashi Sensei. Get published! Once you get one article published it will be easy. One article, then ten, then 100! Let's spread positive information about Karate.
And to my student, Peter, who wrote the last two Guest Posts, good job! Please keep them coming.
Charles C. Goodin
My Posts, My Student's Posts
I recently posted two Guest Posts by one of the students in our dojo. I cannot tell you how happy it makes me when students start to think and write about Karate.
Posted by Charles C. Goodin on Thursday, August 02, 2012


text:
Mass. lottery to hold huge simulated poker tournament at TD Garden
The Massachusetts State Lottery says it will hold a huge simulated poker tournament in the TD Garden in April that will end up with people getting more than $15 million in prizes.
In the $10,000,000 Hold'Em Poker Tournament, slated for the evening of April 6, 560 "players,''' along with their guests, will go to the Garden.
The elaborate and unusual event, which officials said has not been tried by any other state, will be the grand finale of one of the Lottery's instant ticket games.
Two cards will be preassigned to each player, officials said. Three more cards, which all the players will share, will be drawn in each of three rounds. Whoever has the best hand advances to the next round. Sixty-four people will win in the first elimination round, 12 of them will advance in the second, and four of them in the third.
Lottery officials said there will be no skill involved. Spokeswoman Beth Bresnahan said the Lottery has designed the drawing so there will be a set number of winners, though the Lottery does not know who will win what.
Still, for dramatic effect, in the second and third rounds, participants will sit at poker tables, as if they were playing.
The 560 have already won a $2,000 prize; the 64 who advance in the first round will receive $10,000; the 12 who advance in the second round win $50,000. In the final round, three people will win $1 million and one will win $10 million.
So how did people get picked to be part of the lucky 560?
The 560 are among those who played the Lottery's long-running $10,000,000 Hold'Em Poker scratch ticket game. Instead of cash prizes, they won World Poker Tour merchandise packs and claimed them. That qualified them for a drawing to become a participant in the tournament. One in 123 of those who claimed the packs were selected, Bresnahan said.
The game ran for nearly 7 ½ years before reaching the sales target that triggered the end of the game – and the simulated tournament. Sales of the tickets exceeded $800 million, and the Lottery raised more than $97.8 million for Massachusetts cities and towns from the game, officials said.
Some of those who qualified for the tournament have died because the game has taken so long to conclude, but any winnings will be paid to their estates, said Bresnahan.
In addition to the big prizes, those who don't make it to the final round will also be eligible for consolation prizes, she said. People will also get allowances for travel and for food during the event.
Bresnahan said the Lottery launched the game in 2005 when a poker craze was sweeping the nation.
"It really was fitting for the time. And we were capitalizing on the popularity of poker tournaments and hold'em tournaments,'' she said.
"I think it will be a pretty spectacular event,'' she said.


text:
Lipscomb tennis oach Lynn Griffith in elite company earning him his 300th and 301st career victories at the university.
"I've been very lucky because we have been able to get players who are also good people," Griffith said. "We have been successful, but I don't attribute it to anything special except that we just go to work at getting better.
"I would have to give credit for that attribute to my mother and father. They both grew up on farms during the depression. From the very beginning of my life I always heard, `Griffiths do things right' and it stuck."
The Lady Bisons won their first match of the season beating host Tennessee State University 6-1 Tuesday afternoon. The men won their fourth match of the season blanking TSU 7-0. In addition to the victories, the players also doused Griffith with cold water shower as part of the celebration.
"Coach Griffith is so deserving of our congratulations for his 300th tennis victory," said Dr. Steve Potts, director of athletics at Lipscomb. "It is a true testament to his dedication and commitment to the Lipscomb tennis program. This institution and all of our tennis student-athletes benefit greatly from his guidance and leadership."
Griffith, who also teaches in the Kinesiology department, has coached tennis for 17 of his 23 years at Lipscomb. He took some time off from coaching to watch his sons Matthew and Cole play sports. Matthew is a starting pitcher for the Bisons baseball team.
"The first 100 took five years and then it took seven years for the next 100," Griffith said. "I guess it is slowing down a little."
Griffith is proud of what his players have accomplished in their lives. He counts accountants, three medical doctors and two attorneys among his former players.
Griffith is beginning to feel the weight of time but wants to coach long enough to at least reach 400 victories.
"I guess this is the first year when I really began to feel old from a coaching standpoint," Griffith said. "I recruited Colten Jones and signed him and his father Brad was the first player I ever signed to play here at Lipscomb. I guess having an ex-player's child on the team makes you feel that way."
Like the other sports at Lipscomb tennis has had to make the transition from NAIA to NCAA Division I. The Bisons are in their first season in the Atlantic Sun Conference.
"Ability-wise it has been a transition because there are no bad schools," Griffith said. "There are typically no bad schools. But when we were in the NAIA and playing teams like Berry, Union and Birmingham Southern were always in the top 10 or 15. I see the Ohio Valley Conference and the A-Sun at the level. But the difference now is that we have to play at a top level everyday. That's the biggest thing we have had to learn."


text:
BOWIE -- Facing hitters for the first time in more than a month, Orioles right-hander Jason Hammel threw 2 2/3 scoreless innings Thursday night in his first minor league rehabilitation start for Double-A Bowie.
Hammel allowed three hits against the Binghamton Mets -- two of which came in a 20-pitch first inning before escapaing a bases-loaded jam -- and he struck out three and walked none. He also hit two batters.
The Orioles' Opening Day starter, who has been on the disabled list with a right forearm strain since July 29, threw 47 pitches (32 strikes). He was scheduled to throw between 45 and 50 pitches.
"Really what I wanted to feel tonight was the slider," Hammel said. "I had much better feel for the slider, so that will be a big difference-maker when I'm back. Other than that, I did pretty well. A lot of ground balls ... and I got the pitches in and I got the work in."
Hammel was able to throw all of his pitches for strikes, including a fastball that sat at 93-94 mph on the liberal radar gun at Prince George's Stadium and peaked at 96.
"Much better feel for everything, the extension, being able to finish my breaking balls, even the curveball was better," Hammel said. "I was able to finish it in the dirt. I'm pretty happy with the first one."
After starting the season 7-2, Hammel is winless in his past 10 big league starts, and the Orioles were 1-9 in those games. Hammel said the injury definitely affected his pitching.
"One-hundred percent," he said. "I'm not a guy who makes excuses, but it is what it is. When you can't actually finish and get extension on your pitches, you're going to leave balls up and you're going to get hit. I tried to battle through it and I still think we had chances to win the games I was pitching in, but I didn't feel like myself."
Hammel said he believes he will make at least one more minor league rehab appearance, but he said he wasn't sure where that will be. If he remains on a starter's schedule, his next likely stop will be Class-A Aberdeen.
The Orioles could, however, have a more immediate need for Hammel in the bullpen.
"I'm game for anything. Obviously, I'm more comfortable as a starter and I think I'd be more help as a starter, but it's the playoffs," Hammel said. "All hands on deck. Everybody should be ready to go no matter what. September is a month where adrenaline carries you through. We're right there again and that's where we want to be."
Hammel loaded the bases in the first inning Thursday despite a pair of hits that likely would have been outs at the major league level. With runners at the corners and two outs, he hit Binghamton left fielder Cory Vaughn on an inside fastball that got away.
"They were supposed to be fastballs in, and I didn't quite get on top of them," Hammel said. "It was just barely missed execution there. I'd rather miss way in than over the plate."
Hammel retired six of the final eight batters he faced before he was removed after retiring the first two hitters he faced in the third.
"For the first time being on the mound, it doesn't matter what league you're in, it takes a little bit to get settled in," Hammel said. "I hadn't seen a hitter in a month. It felt pretty good to have a catcher behind the plate and get a hitter and umpire out there and see everything and still be able to execute."


text:
NEW YORK ( TheStreet) -- U.S. stocks fell, reversing gains, on concern the holiday-shopping season will fail to provide a boost to the economy as President Obama attempts to tackle the so-called fiscal cliff. Retailers declined as sales rose 0.7% in the month through Dec. 24, compared with 2% growth a year earlier, MasterCard Advisors SpendingPulse said, without providing dollar figures. A combination of the possibility of higher taxes and spending cuts, and the twin tragedies of Hurricane Sandy and the Newtown, Conn., massacre put a damper on shopping. The president will need to make progress over the next five days. Failure to do so would trigger tax increases and spending cuts, a combination that could put the economy into a recession. Congress will return Dec. 27, while Obama travels to Washington from a vacation in Hawaii today. Obama, even with a decisive re-election victory last month, has had a tough time dealing with the Republican-controlled House of Representatives. Speaker John Boehner's "Plan B," a compromise on raising taxes for the wealthy, was throttled by his own party, raising concerns Democrats and Republicans will be locked in battle as they have been in the past four years. Obama, before going on vacation, sought from both parties a plan that would avert tax increases before a larger deal could be hammered out. The Dow Jones Industrial Average fell 24.5 points, or 0.2%, to 13,114.59. Losers outweighed winners 17 to 13. The biggest decliners were Wal-Mart ( WMT), Coca-Cola ( KO) and United Health ( UNH) The largest gainers were Bank of America ( BAC), Alcoa ( AA) and Hewlett-Packard ( HPQ). The S&P 500 fell 6.8 points, or 0.5%, to 1,419.83. The Nasdaq dropped 22.4 points, or 0.7%, to 2,990.16. The economic calendar in the U.S. included the so-called Redbook, a measure of sales at chain stores, discounters, and department stores, as well as the S&P/Case-Shiller 20-city home price index. National chain-store sales were little changed in the first four weeks of December from November, according to Redbook Research's latest indicator. Economists had expected a 0.2% gain. The S&P/Case-Shiller index of real estate values in 20 cities climbed 4.3% in October from a year earlier, the largest leap since May 2010. Gold for February delivery was up $1.40 at $1,660 an ounce at the Comex division of the New York Mercantile Exchange, while February crude oil contracts were up $2.56 to $91.17 a barrel. The benchmark 10-year Treasury was trading at 1.75%, down 2 basis points. The U.S. dollar index was at 79.63. In corporate news, Nike ( NKE) dropped $1.47, or 2.8%, to $51.33, as stocks tied to holiday shopping suffered. Apparel maker Michael Kors ( KORS) tumbled $3.54, or 6.6%, to $50.03. Luxury-handbag company Coach ( COH) slid $3.39, or 5.9%, to $$54.13. Chipmakers got a boost earlier in the day after IDC's Semiconductor Applications Forecaster said chip revenue will increase 4.9% to $319 billion in 2013, jumping to $368 billion in 2016. Intel ( INTC) pared gains, closing up 1 cent to $20.65. Among other tech shares, Research In Motion ( RIMM) jumped $1.22, or 11%, to $11.82. Internet-search firm Baidu ( BIDU) climbed $4.68, or 4.8%, to $101.45. Netflix ( NFLX) rose 42 cents, or 0.5%, to $90.65. The company's video-streaming service suffered a Christmas Eve outage that continued into Christmas morning for some customers. In Twitter posts, Netflix said problems at Amazon.com ( AMZN) were the cause. Amazon, which provides Internet services to Netflix and other corporate customers, was down $9.99, or 3.9%, to $248.63. Facebook ( FB) had been the most active stock in pre-market trading. Options traders turned bullish on the stock after investment bank Needham & Co. raised its price target on its belief that mobile-revenue growth will be stronger than expected. Still, Facebook shares dropped 42 cents, or 1.6%, to $26.51 after rising as much as 0.7% earlier in the day. Apple's ( AAPL) stores were packed in the days leading up to Christmas, boding well for the holiday-shopping quarter. The stock dropped $7.17, or 1.4%, to $513. Less fortunate was Microsoft ( MSFT), whose stores were mostly empty. The shares decreased 20 cents, or 0.7%, to $26.86. -- Written by Parris Kellermann >To submit a news tip, send an email to: firstname.lastname@example.com.
Get the Investing Edge.
Join Jim Cramer's Members-Only Investing Club
Become an Action Alerts PLUS member to learn from the pros how to invest wisely and build a customized portolio of blue chip stocks.
Uncover New Investment Opportunities With Our Team of Experts
Jim Cramer and his army of Wall Street pros serve up new trading ideas and in-depth market analysis every day.
More from Markets
Consumers Remain Confident as Economists Fret Over Quality of U.S. Data
The University of Michigan's index of consumer sentiment rises to a reading of 95.5 in February from 91.2 the prior month, contrasting with a separate report earlier this week from the Census Bureau that showed retail sales fell in December by the most in nine years.
Trading Strategies: The Banks Earnings Aren't Impressive
Here's why you shouldn't be too impressed with the banks earnings.
Ellevest CEO Sallie Krawcheck Has a Message for Wall Street
Sallie Krawcheck sits down with TheStreet to discuss the investing gap, the pay gap and her thoughts on diversity.
Investing Is a 'Constant Learning Game' According to M1 Finance CEO
The CEO M1 Finance says that investing means that you're constantly learning. Here's why.


text:
Feb. 14, 2006
For the Bisons the difference between a win and a loss was the long ball.Bisons pitchers combined to give up three home runs Tuesday afternoon in a 6-3 loss to Evansville.
It was the first game of the season for Lipscomb which opened up a nine-game home stand. Evansville came into the game with a record of 2-0.
Junior transfer Matt Schnelly got the start for the Bisons and gave up 2 earned runs in 4.2 innings of work. He allowed only four hits and struck out two. Both runs scored on a home run to Pat Tumilty in the second inning.
"I thought that Matt did great," head coach Wynn Fletcher said. "He gave up that one long ball but other than that he kept us in the game."
The Bisons got on the board in the third. Tadd Brewer reached on an error and promptly stole second and third. Nathan Sensing singled him in for his first RBI of the season.
Lipscomb tied the game an inning later. Zac Miller led off the inning with a single to right. Two outs later Ryan Price singled through the left side to advance Miller to second. Whit Reed then singled to right scoring Miller for the Bisons second run.
Right hander Chandler Ganick replaced Schnelly in the fifth inning with the score tied. Ganick made it through the fifth but ran into some trouble in the sixth. With one out Ganick gave up a home run to Jeff Fontaine. One out later, Tumilty hit his second homer of the game.
After the next two batters reached base, freshman Brandon McClurg was called upon to replace Ganick. Ganick gave up three hits and four earned runs in an inning of work. He struck out one and received the loss to bring his record to 0-1.
After giving up a two run double to the first batter that he faced, McClurg settled in for the rest of the game. McClurg gave up just two hits in 3.1 innings of work while striking out three. He allowed no earned runs.
"I was very happy with the way Brandon pitched," Fletcher said. "He did a great job getting out of some jams."
The Bisons attempted to get back into the game in the eighth. Patrick O'Rourke reached on an error to lead off the inning. The next batter, Caleb Joseph drilled a double to center field that just barely missed clearing the wall, advancing O'Rourke to third. Whit Reed followed with a sacrifice fly to center bringing the score to 6-3. One out later Brewer walked bringing the tying run to the plate for the Bisons, but Sensing struck out to end the inning.
The Bisons committed only one error in the loss and out hit Evansville 10-9. O'Rourke and Price led the offense with two hits a piece.
"We stayed with them from the first pitch to the last," Fletcher said. "We had several chances to go up in the last three innings, but we just weren't able to take advantage of those.
"Overall I am very pleased. I would have liked to come away with the win, but you have to look at the big picture. We played a good ball game."


text:
VATICAN CITY (Reuters) - Vatican administrators need a "change of mentality" and must ensure that the Holy See's finances are efficient, transparent and primarily aimed at helping the most needy, Pope Francis said on Friday.
The pope made his comments in an address to the members of a newly formed body called the Council for the Economy, a 15-member group of prelates and lay people from around the world which will be setting economic policy for the Holy See and exercising oversight.
"A new mentality of service to the gospel should take root in the various administrations of the Holy See," Francis said. The new council will have "a significant role in this process of reform", he said.
Francis' appointment of the outside council of experts, whose members were named last month, was his latest attempt to come to grips with what he has called a hidebound and self-centered Vatican administration.
The 15 council members come from 12 countries. None is a Vatican bureaucrat. They will give economic policy guidance to a new department called the Secretariat for the Economy, headed by Australian Cardinal George Pell. Pell is also an outsider who has held no previous job in the Vatican.
The establishment in February of both the secretariat and the council as well as the position of an auditor-general revolutionized the Vatican's scandal-plagued finances by inviting outside experts into a world often seen as murky and secretive.
Francis, who was elected in March 2013 with a mandate for reform, told the council members that the Church's finances had to be in the service of "its evangelical mission with particular concern for the needy."
"We must not stray from the path - transparency, efficiency. It is all for this aim," he said.
In another sign that he wants to rid the Church of the clerical self-centeredness held responsible for some of its past scandals, Francis said the cardinals and bishops on the body would have no privileges.
He told the lay financial experts that they were "not second-class members ... everyone is on the same level".
Two Vatican departments, its bank, whose official name is Institute for Works of Religion (IOR), and the Administration of the Patrimony of the Apostolic See (APSA) have been at the center of scandals in recent years.
Italian magistrates are investigating the bank on charges of violating anti-money laundering procedures. The Vatican dismisses the charges.
Monsignor Nunzio Scarano, who worked as a senior accountant
at APSA for 22 years and who had close ties to the IOR, is
currently on trial, accused of plotting to smuggle millions of
dollars into Italy from Switzerland to help rich friends avoid
Scarano has also been indicted on charges of laundering millions of euros through the IOR. He says the money in his accounts at the IOR were donations, which Italian magistrates dispute. The IOR carried out its own investigation of Scarano and shared its findings with the Italians.
In the 14 months under the leadership of its German president, Ernst von Freyberg, the IOR has closed hundreds of accounts, instituted strict anti-money laundering regulations and launched several investigations into suspicious activities.
Francis considered closing the bank. He has decided to keep it operative but with a program of continuing reforms.
Reporting By Philip Pullella; Editing by Larry King


text:
8x11 Spring Blossom PhotoBook
By MagicalReality Designs
More By This Designer
|(0 Total Votes) | Rate It
Please sign in to rate this product! Log In
Product Categories
Family Fantasy Girls Holidays - Easter Holidays - Mother's Day Seasons
Product Information
- Type: Photobook Template
- Designer: MagicalReality Designs
- Download Size: 203.1 MB (approximate)
Design Elements
- Digital Papers: 10
- Page Elements: 13
Designer Notes
20 page photo book and front and back cover-Photo book covers are one of the most important design elements to consider when creating your own photo book.... You can add what ever title your heart desires! You can also personalize it any way you like by adding some WordArt, or some other decorations
Image Quality
High-resolution (print quality) JPG and PNG files (with transparency).
Download Options
Easy install directly into My Memories Suite software. Purchase My Memories Suite
General use installer for other software applications (i.e., Adobe Photoshop & Photoshop Elements, Paint Shop Pro, etc.).
Album and Photobook templates are intended for installation in the MyMemories Suite software only.
The General download will still contain all of the digital paper and page element files and template pages in a flat jpeg format so that you can recreate the template.
The layered pre-built pages are not available in the general download.
Download Access
All download options are available after checkout by clicking the "Access Your Downloads" provided on the order confirmation page. You may also access your downloads after logging into the My Account section located at the top right of the website.


text:
All Food Truck Businesses that
use a trade business
name, need
& a Payne County
Assumed Business Name
Retailers /
Wholesalers, Need a
Sales Tax ID Number (A.K.A
state id, wholesale,
resale, reseller
Need a
Federal Tax Id
and a(n)
State Employer Tax ID Number
Instead of filing a
fictitious business
name in
Get Incorporated in
create a
You can choose to be a(n) Food Truck :
Stillwater Business Tax Registration (
Business License)
All businesses including home, online or mobile BUSINESS need a BUSINESS license because they are BUSINESSES.
Mobile Food Vendor
The national restaurant association reports that $799 billion: Restaurant industry sales. (Source: 2017 State of the Industry) 1 million+: Restaurant locations in the United States. 14.7 million: Restaurant industry employees. 1.6 million: New restaurant jobs created by the year 2027.
(Food Cart, Food Truck, Catering Truck, Ice Cream Truck, Concession Food Trailer etc. )
Whether selling on the Mobile or from a fixed outdoor location such as a sidewalk, the following applies to you.
Question: I am a mobile food vendor. I.e., I am selling food/ice cream/snow cones etc from a food trailer/ food truck/ food cart/ food catering truck?
I will sell prepared food/ice cream/snow cones etc to people on the street.
Step 1
To sell food on the Mobile s, you will need a general business license a DBA and a sellers permit.
Step 2
First, prepare your truck or food cart, and obtain the general business license, a DBA registration if you use a trade name such as " Mobile Food is Good Food," and also obtain a sellers permit.
Step 4
Most Mobile vendors do not have employees, but if you do, you will need both a federal EIN and a State EIN employer tax ID number.
Step 5
After you apply here online for a general business license, we will give you all the information and the government may also call you and set up an appointment that you will have to meet to pass health inspection.
You will have to go through a program that most government have implemented called a Mobile Vending Compliance Program due to many complaints received for unsanitary food.
That program may include a food handler certification program that you get after taking a short class and a quiz. Note that your cart or truck will also have to go through and pass health inspection.
More information about Mobile Food Vendor License (for truck catering, cart, trailer, food truck, ice cream truck or snow ball, snow cones etc. included)
A Mobile Food Vendor is a person who offers food for sale or sells food items by means of vehicle (truck, cart, or trailer).
Cart, Truck, Trailer must have a vehicle state registration certificate. (NAICS Code): 722330
Business License for EACH vehicle (i.e., each truck, cart, or trailer)
General Requirements:
Health cards are required for all employees (Online: you can take an online class for a health card).
For example, NV has an online class:
Online health card for food handler.
Health permit (included in business license application) .
After business license application, a cart, truck or trailer inspection MAY be required.
After you apply for the licenses here, apply for mobile food vendor insurance ( truck, trailer or cart ) at this insurance online
More information about Mobile Food Vendor License (for truck catering, cart, trailer, food truck, ice cream truck or snow ball, snow cones etc. included)
Cart, Truck, Trailer must have a vehicle state registration certificate. (NAICS Code): 722330
You can apply online for truck, cart or trailer insurance.
Home Food Business


text:
Website Design
Presupuesto ₹1500-12500 INR
create a website for my new opening company.
It is a consulting firm with solutions to ICT, Software, Education & Academics, Pvt. Coaching, ERP Implementation, Data center design, etc.etc....
16 freelancers están ofertando el promedio de ₹7854 para este trabajo
hi sir, i have gone through your project description and iam very much interested in doing your project. iam sure i'll exceed your expectation... thank you.
Dear Hiring Manager, My name is Suryansh Agarwal and I have read your Project Description carefully but I have some questions regarding the project which I would like to ask you before we begin with your project. I am Más
Hello Sir, I was just going through your job posting and I believe that I have the drive, energy and knowledge to be perfect for this job. My experience as a web Developer includes working with web applications by in Más
Respected Sir/Madam, We are team of vast experienced developers, designers, server admin i.e Amazon web service, cloud computing Our main aim is to provide top notch quality of work Feel Free to contact for any quer Más
Hi, I am Amit Singhania, Business Development Manager. We are ISO 9001:2008 & ISO: 27001 Certified Web Designing and Development Company based in India with our offices in USA and Canada. We are a leading Web Más
Dear Sir. I claim to get it done perfectly for you EXACTLY in the way you want it - Kindly give me a chance and I will prove myself - Ready to prove my words, let's get it done right away and I mean RIGHT AWAY !! Looki Más
Hello sir i read your project description and glad to say that our team has great experience in web designing and development. to discuss detail kindly inbox me Thank You
hello My name kalpesh Jain , working as Sr business Development executive with Vishwa technologies (P) Ltd We are nagpur, based well established and registered under Indian company act IT service firm having str Más
My expertise in web programming, Mobile application and development spans over 4+ years, covering the following technologies, all of which I am proficient in: Wordpress, PHP, MySQL, Web Designing, SQL Server, MS Más
Hi, I can create website for your company,it is easy for me,i have a experience in web designing,,i can deliver your work in 1 or 2 days.i can work from now, message me if you want to ask any question.
I am a web developer and have designed many webpages including app landing pages ,social website,code player, weather forecasting site etc.I assure you that if you hire I can showcase my skills to you,just give a try


text:
Just when you thought it was safe to go back on the streets of Dublin – the Bailout Boys are Back in Town.
And this time they've decided the leave the monetary hitman known as The Hammer at home.
Agents from the International Monetary Fund, the European Commission and the European Central Bank are back to check on Ireland's finances.
The regulatory hit squad arrived in town on Tuesday for the latest three month check on Ireland's €85billion bail-out.
But the infamous IMF chief Ajai Chopra – now known across Ireland as The Hammer – isn't scheduled to travel with the group this time as his skills are needed to sort out the latest Greek mess.
We're broke and we don't need blarney
New survey shows over 50 percent of young Irish fear emigration
Former US economic envoy Declan Kelly launches merchant bank and private equity and consulting company
The Irish Independent reports that the bailout team will be in the Department of Finance and the Central Bank until Thursday of next week checking on the progress of the package.
Among the items on their agenda are spending cuts, including reductions in the public sector wage bill in the event of a shortfall in the saving from reform of the public sector.
Government Ministers have already warned that if those savings from efficiencies and reductions in staff numbers are not achieved this year, there will be more cuts.
On the eve of the visit, Department of Finance officials were adamant that the Government has met the targets set as part of the bailout programme for the first half of the year.
The department's assistant secretary general Michael McGrath said government officials will work with the IMF-EU team when the review begins.
"We will engage with them and afterwards they will have to go through their own process," he said.


text:
Kidnapped Louisiana woman found stabbed but alive
The woman had been granted a protective order in June 2013. The (Lafayette, La.) Daily Advertiser
Family members stormed house where woman was held hostage, injured kidnapper to the extent that he died hours later.
DUSON, La. — A woman, kidnapped two days ago from a child-care center parking lot, was found Friday with multiple stab wounds inside a vacant house about a dozen miles away.
Bethany Arceneaux, 29, was taken to an area hospital where she is talking to investigators about what happened, said family members who found her. She is in stable condition.
STORY: Cleveland kidnap victim model of resilience
STORY: Calif. teen texted future kidnapper
"We went and got her in that house. We kicked doors down. It was like a movie unfolding," said Arceneaux's brother, Ryan Arceneaux. "If we wouldn't have done what we did, she would have been dead."
Ryan Arceneaux; a second brother, Kaylyn Alfred; and other family members stormed the house, about 10 miles west of Lafayette, La., and 65 miles west of Baton Rouge, La., grabbed Bethany Arceneaux and left the man accused of kidnapping her, Scott Thomas, 29, of Leonville, La. Thomas is the father of her son.
"I'm so happy. God is good," said Bethany and Ryan Arceneaux's aunt, Monica Arceneaux-Henry, after the rescue.
Thomas died later Friday, said Cmdr. Kip Judice of the Lafayette Parish Sheriff's Office after police deployed a SWAT team to the scene. Thomas succumbed to injuries he sustained during the confrontation with Bethany Arceneaux's family members.
Judice said family members injured Thomas as they were defending Bethany Arceneaux.
Witnesses told police that Thomas arrived at the day-care center Wednesday evening as Arceneaux was picking up their 2-year-old. He forced her into his car and drove away, leaving their son inside Arceneaux's vehicle unharmed.
His car was found later that evening unoccupied in a spot near where Arceneaux was found Friday.
Arceneaux had a protective order issued June 17 against Thomas, court records show. Thomas was arrested Aug. 8 for violating the order and also was charged with aggravated assault and aggravated flight from an officer then.
"He keeps threatening to kill us," Arceneaux wrote in her June 15 complaint to police that resulted in the protective order. "He put a knife to my neck countless times," choked her, dragged her by the hair and held herself and her son hostage.
A cousin, Dawnetta Roy, described Arceneaux as a down-to-earth mother always willing to help others and said Thomas was very abusive.
"She was very afraid of him," Roy said.
Contributing: Amanda McElfresh and Jessica Goff, The (Lafayette, La.) Daily Advertiser


text:
Ardit needed a new logo design and created a contest on 99designs.
A winner was selected from 41 designs submitted by 13 freelance designers.
StoryFun is a children illustrated book club. It will be both a website, and an iphone/ipad app. It is meant as a place where kids can come and read illustrated stories, which are narrated and have music and effects.
Parents can read the stories to their kids, or let the story read itself.
Little kids between 1.5 and 6, and off course their parents.
The logo has to be appealing to kids, so bright, cheery and colorful is better.
It has to look good behind a white background, and blue (dark or light) background as well.
You may use something like 3d letter play cubes, or animals, or a smiling sun/moon, or whatever your imagination works. Just keep in mind that when a 3 year old looks at it, the child should smile :)
Here are some inspirational images:
You can use either, storyfun, Storyfun, or StoryFun in your logo. You can also add a small .com after StoryFun
Find out how a design contest works or learn more about our logo design services.


text:
Alfresco Enterprise Support
Our core offering, Alfresco Enterprise Support allows you to leverage the innovation of our open source community and includes all upgrades and maintenance required to keep your platform running at an optimal level.
We ensure that our solutions are ready for enterprise environments with the highest stability demands and provide a customer support portal where you can quickly access an Alfresco expert who understands your business environment. Learn more
Alfresco Premier Services
Our new "white glove" Premier Services program takes document management support to the next level with two unique packages that provide instant expertise and support, faster response times, and the absolute highest level of customer service. These include:
- The Alfresco Service Engineer Program, which provides you with a service engineer dedicated to the planning, deployment and day-to-day maintenance of your Alfresco solution. This engineer works 40 hours a week for you, either physically onsite at your office or remotely from ours.
- The Alfresco Technical Account Management Program, which provides you with a highly skilled, proactive technical account manager who acts as a single point of contact into Alfresco's global support organization and as an advocate on your behalf, ensuring that support issues and technical requests are addressed quickly. Learn more
Our experts come to you, working within your environment. We'll help you integrate your platform, establish best practices and diagnose problems so they can be effectively solved in support. Learn more
At Alfresco, no matter what your role in an organization, we have a learning pathway for you. Our Alfresco University training curriculum is structured around you and how you use Alfresco.
Courses are delivered in a variety of mediums – from self-paced e-learning to full onsite instructor-led classes – and are specifically designed to help you maximize your Alfresco investment. Each pathway provides a hand-selected course schedule that we guarantee will quickly put you on the road to success. Learn more


text:
Filling out back end of rotation is key for Rangers
SURPRISE, Ariz. -- The Rangers are at about the halfway point of Spring Training. They have not reached that mark at full gallop.
They might be closer to that pace if pitcher Derek Holland had not fallen over his dog in January and suffered torn cartilage in his left knee. But that unfortunate and unforeseen injury remains the biggest reason why the Rangers still have much work left to do in the desert before they are ready to start the season.
SURPRISE, Ariz. -- The Rangers are at about the halfway point of Spring Training. They have not reached that mark at full gallop.
They might be closer to that pace if pitcher Derek Holland had not fallen over his dog in January and suffered torn cartilage in his left knee. But that unfortunate and unforeseen injury remains the biggest reason why the Rangers still have much work left to do in the desert before they are ready to start the season.
Holland's injury, plus Matt Harrison's delayed return from back surgery, has thrown wide open the competition for the back two spots in the starting rotation. A team that spent the winter focusing on improving its offense has had to abruptly shift focus back toward the pitching staff.
The uncertain rotation, and the potential impact on the bullpen, is hardly the only reason why the Rangers have not sprinted out from the Spring Training starting gate. Jurickson Profar is swinging the bat well but has yet to play second base because of the tendinitis in his right shoulder. Catcher Geovany Soto is not expected to play in a game until at least March 15 while recovering from left ankle surgery. Shortstop Elvis Andrus has been dealing with a sore shoulder, and Alex Rios has been sidelined briefly by first a sore big toe and now a strained muscle in his right rib cage.
"We're making real good progress," Rangers manager Ron Washington said on Friday before a 2-1 loss to the Dodgers left his team 2-6-1 in the Cactus League. "Every day we're getting better. Once again, not looking at wins and loss results, but every day these guys' game is getting better, and pretty soon we're going to get consistent.
"My assessment is that we get consistent going down the stretch into the season. I'm not so concerned about consistent right now because, like you said, we have a lot of moving parts, a lot of people we're looking at, there's a lot of people that are vying for jobs and competing."
The Rangers still assume the lineup will be fine and the early spring aches will fade as Opening Day approaches. Right now, full attention is on the rotation, an area the Rangers have been scrambling to reinforce since Holland's injury. Tommy Hanson was signed just before the beginning of Spring Training, but that did not alleviate the Rangers' gnawing concerns, so veteran left-hander Joe Saunders was added three days ago.
Saunders pitched two scoreless innings in a "B" game on Friday, marking his official entrance into the rotation sweepstakes. The list of candidates grew even longer when Washington said Jose Contreras is now a candidate for the rotation after pitching three scoreless innings against the Padres on Thursday. Contreras, 42, has 175 Major League starts but none since 2009.
For those scoring at home, the list of candidates for the rotation now includes Hanson, Saunders, Contreras, Nick Tepesch, Colby Lewis and Michael Kirkman, plus relievers Tanner Scheppers and Robbie Ross. Scheppers, superb as a setup reliever last season, will make his first start of the spring on Saturday against the Dodgers.
That's eight pitchers competing for two spots behind Yu Darvish, Alexi Ogando and Martin Perez. Presumably one of those spots is temporary as the Rangers expect Harrison to join the rotation sometime in April. Kirkman and Tepesch have both impressed early in spring, but that was the same way last year as this time.
"I'm going to keep an open mind," Washington said.
Washington said the off-day on March 19 is a key date. Washington said the Rangers would like to have the rotation competition narrowed down by then. Those who have fallen behind will likely be sent to the bullpen to win a job there. The Rangers still have to put a bullpen together as well before they leave camp.
The closer's job remains open between Neftali Feliz, Joakim Soria and Scheppers. The Rangers were hoping Feliz would come in and seize the job, but that hasn't been the case. He is still trying to get his velocity back and smooth out his mechanics. The Rangers have been able to get Feliz to come over the top again with his delivery, but the velocity is still well below his pre-surgery years.
"The most important things are his arm and the slot were high," Washington said. "He kept it up there, and that's what we're trying to do. The velocity will take care of itself as we move along."
Soria has thrown well but is the least over-powering of the three on a team smitten by power arms above all. Scheppers will get his audition for the rotation, but moving there would be a huge hit to the bullpen. The Rangers were hoping to build enough depth behind Scheppers if he needed to go to the rotation, but early spring injuries to Shawn Tolleson (shoulder) and Miles Mikolas (elbow) have added to the pitching concerns. Both have had some success pitching in relief in the Majors prior to being acquired by the Rangers this winter.
Both are expected to pitch in the game by early next week, and there is time for them to get in the bullpen race before spring is over. There is time for the Rangers to sort through a growing list of utility-infield and fourth-outfield candidates. There is also time for Mitch Moreland and Leonys Martin -- a combined 5-for-25 between them -- to get hot, and catching will only become a concern if Soto isn't ready by March 15 or shortly thereafter. The same goes for Profar at second base.
The only really pressing matter right now is the rotation, and starting to identify the top candidates would be the best way for the Rangers to accelerate a slow start to the spring.
T.R. Sullivan is a reporter for MLB.com. Read his blog, Postcards from Elysian Fields, and follow him on Twitter @Sullivan_Ranger.


text:
STERLINGTON - Curtis Williams, a 28-year-old fugitive from Iowa with a $500,000 bond, was arrested by the Sterlington Police Department on Tuesday evening.
Barry Bonner, Sterlington police chief, said he received an anonymous call pertaining to Williams' whereabouts
"I gathered the HEAT (Highway Enforcement Apprehension Team), a team of three of our finest officers, to perform the capture," Bonner said.
The HEAT, a team of three Sterlington police officers (Matt Schulte, Daniel Smith and David Elahi), made the arrest at a house on Davis Street in Sterlington.
There they found Williams crouched in the bathroom closet, where he was arrested without incident.
Bonner said, "The charges against him will most likely be increased from first degree kidnapping to attempted murder, but that's just my opinion."
According to The Gazette, a newspaper in Cedar Rapids, Iowa, Williams was involved in the assault of Allen M. Denni, 29, in November 2012.
Bonner said Williams kidnapped his ex-girlfriend's boyfriend, Denni, and took him to a deserted and extremely cold part of the woods in West Union, Iowa.
Bonner said he was told that Williams then stripped Denni naked and beat him nearly to death. Bonner said somehow Denni managed to make it to Iowa authorities, and is currently receiving treatment for a busted spleen and other injuries in a local hospital there.
Bonner said Willliams escaped to Sterlington where he was found hiding. Williams is currently being detained at the Ouachita Correctional Center for transportation from the West Union, Iowa, authorities.


text:
Popular search terms:
apply online, campus map, admissions events, tuition, transcripts, calendar, graduation, scholarships, nursing, bookstore, registrar, academic calendar, athletics
Lisle, Illinois ~ Barbara Nicolosi, a former Catholic nun turned Hollywood screenwriter, will lecture at Benedictine University on Wednesday and Thursday, November 20-21, as part of Benedictine University's "Visiting Scholar in Catholic Thought" lecture series.
Nicolosi is the founder and chair emeritus of Act One Inc., a nonprofit program which trains Christians for careers as Hollywood writers and executives. She is also executive director of the Galileo Film Studio at Azusa Pacific University, and an adjunct professor of cinema at Pepperdine University.
Her first lecture, "Why Do Pagans Make the Best Christian Films?" will be held at 7:00 p.m. Wednesday, November 20 at the St. Benedict Chapel, located on the fourth floor of Kindlon Hall. She will discuss "Art, Story and Entertainment: Why Hollywood Matters," at 12:20 p.m. Thursday, November 21 in the Tellabs Lecture Hall, located in Room 112 of Birck Hall.
Nicolosi left the convent to pursue film studies at Northwestern University because she felt she could more aggressively evangelize and better represent the Church in the arts.
Today, she is a Writers Guild of America, West member and has written screenplays for several Hollywood productions including the upcoming 2014 film, "Mary, Mother of Christ" starring Ben Kingsley, Odeya Rush and Peter O'Toole.
She has worked in various roles on scores of other entertainment projects including "The Passion of the Christ," "That Evening Sun," and numerous TV shows.
After reading hundreds of "horrible" movie scripts at a Catholic movie production company, Nicolosi told the Houston Chronicle she started Act One Inc., to train talented Christian writers how to write better scripts.
Since co-founding Act One Inc., Nicolosi has trained hundreds of writers who have found jobs on shows like "The West Wing" and "Dr. Phil," according to Newsweek.
A highly experienced public speaker on art, culture, media and spirituality, Nicolosi has delivered hundreds of addresses at universities, conferences and assemblies all over the world.
Most notably, she was a featured speaker at a Vatican conference on media in 2001 and gave the keynote address at the Fellowship of Catholic Scholars National Conference in 2002.
She is the co-editor of "Behind the Screen: Hollywood Insiders on Faith, Film and Culture," and a contributor to several other books including "Style, Sex and Substance: 10 Catholic Women Consider the Things That Really Matter" and "Back to the Drawing Board: The Future of the Pro-Life Movement."
Nicolosi also serves as a consultant to the board of directors of the Magis Institute, a nonprofit organization promoting authentic Catholic culture and spirituality. She is also an advisory board member of New Ethos, an organization that works to foster dialogue and cooperation between the Christian community and Hollywood.
The Visiting Scholar in Catholic Thought series heightens awareness and appreciation of the distinctive contributions the Catholic intellectual tradition has made and continues to make to all branches of knowledge and creativity. The lectures, which are free and open to the public, are sponsored by the Center for Mission and Identity, the arm of the University responsible for reinforcing the Catholic intellectual tradition on campus.
For more information about this event, contact Vince Gaddis, Ph.D., at (630) 829-6262
or firstname.lastname@example.com.
Benedictine University is an independent Roman Catholic institution located in Lisle, Illinois just 25 miles west of Chicago, and has branch campuses in Springfield, Illinois and Mesa, Arizona. Founded in 1887, Benedictine provides 55 undergraduate majors and 17 graduate and four doctoral programs. Benedictine University is ranked No. 1 among the country's fastest-growing campuses between 2000-2010 in The Chronicle of Higher Education's list of private nonprofit research institutions, and Forbes magazine named Benedictine among "America's Top Colleges" for the third consecutive year in 2013. Benedictine University's Master of Business Administration (M.B.A.) program is listed by Crain's Chicago Business as the fifth largest in the Chicago area in 2013.
Marketing and Communications


text:
Cerebral palsy (CP) is the name for a series of neurological disorders caused by abnormalities in parts of the brain that control muscle movement. Cerebral palsy symptoms can be daunting, and cerebral palsy treatment can be overwhelming. Our orthopedists, neurologists, and other specialists and practitioners work together as a team doing whatever it takes to support children with cerebral palsy and their families.
Video Series: Cerebral Palsy
There's a lot to think about when you're raising a child with cerebral palsy. From health care and schooling to recreation and friendships, you want what's best for your child. Find advice, resources and support in the videos below from experts who care for kids with CP.
See the comprehensive Cerebral Palsy Center on Nemours' KidsHealth.org.
Because cerebral palsy symptoms can vary from child to child, children with cerebral palsy need specialized care tailored to their own individual needs. And although there's no cure, a variety of resources and therapies can provide help and improve the quality of life for children with cerebral palsy.
As soon as CP is diagnosed, a child can begin therapy for movement, learning, speech, hearing and social and emotional development. Pediatric cerebral palsy treatment also may include medication, surgery or braces to help improve muscle function.
Our Cerebral Palsy Program teams include a wide array of pediatric medical and allied health professionals (therapists and technicians), including:
- orthopedists and orthopedic surgeons
- neurologists
- EEG lab to diagnose seizures
- psychologists, physical therapists
- occupational therapists
- speech therapists
- clinical nurse specialists, to coordinate all services
- orthotists, technicians who work with assistive devices like braces
- gait specialists, technicians who analyze how a person walks
- social workers, nutritionists and other professionals for consultation and treatment as needed
For children with cerebral palsy, compassion and kindness are just as important as advanced training, technology and experience. That's why it's good to know that we'll be with you every step of the way. Our pediatric team will work with your family and your child's other doctors to ensure that your child is able to maintain maximum functionality while experiencing minimal pain and discomfort throughout our pediatric cerebral palsy treatment.