text:
Behavioral Health & Rehab Services
Coleman Professional Service provides a variety of behavioral health and rehabilitation services to the public in order to meet the dynamic needs of the communities in which we serve. Our nationally recognized services are supported by state and federal funds, grants and contracts, and most importantly, Coleman's
enterprise companies
Each of our programs are staffed with certified and experienced personnel who are experts in their specific fields. Coleman employees work hand-in-hand with our customers to insure the most successful outcomes possible.
To learn more about our award-winning services, please click on the links below.
Coleman Adult Day Services
– provides individualized daytime care for adults, formerly Portage Area Senior Services (PASS).
Coleman Access Services
– provides 24/7 crisis help and access to behavioral health services and professionals.
Coleman Behavioral Health
– provides mental health and rehabilitation services in Portage, Trumbull, Stark, Summit and Medina Counties.
Coleman Employment Services
– offers vocational and employment services to individuals and companies, formerly Vocational Services.
Coleman Residential Services
– provides housing for the disabled and assistance in apartment planning and support.
Search this site
About Us
Mission & Vision
Corporate Principles
Board of Trustees
Behavioral Health & Rehab Services
Enterprise Companies
News Releases
Annual Reports
Archived News
Community Newsletters
Education & Prevention
Featured Article
Archived Articles
Ambassador Breakfasts
Helpful Links
Career Opportunities
Employee Perks
Employee Benefits
Clinical Services
Administrative Services
Coleman Data Solutions
Job Application Form
Clinical Full Time Positions
Clinical Part Time Positions
Administrative Full Time Positions
Administrative Part Time Positions
Volunteer & Internship Opportunities
Volunteer Application Form
Volunteer Opportunities
Internship Opportunities
Volunteer Newsletter
How to Help
Giving Opportunities
Coleman Stories
Other Coleman Services & Enterprises
State of U Program
24/7 Crisis Help
Coleman Professional Services | 5982 Rhodes Road | Kent, Ohio 44240 | 330-673-1347 | 800-673-1347
Copyright ©


text:
Before and after Guest bedroom
January 3, 2013 in Before & After
Beach house renovation.
Interiors International, Inc.
Love it! makes the room look bigger.
January 3, 2013 at 6:25AM Like
Paradise Restored Landscaping & Exterior Design
Nice guest room! Total transformation form before!
January 4, 2013 at 10:14AM Like
Gabberts Design Studio
Great Job!
January 4, 2013 at 11:05AM Like
Nancy Hehmann
Nice job!!
January 4, 2013 at 11:08AM Like
Margaux Gonyea
Looks great! Where did you find the bedding?
January 8, 2013 at 2:18PM Like
Marilyn Wilkie
I have to say...I like both! But we painted our bedroom almost the exact shade of blue. What beautiful furniture in each.
January 8, 2013 at 2:23PM Like
LM Designers
I like both as well. Looks like a model home.
January 8, 2013 at 3:15PM Like
Beautiful tra sformation! What paint color did you use?
February 3, 2013 at 9:21AM Like
Beautiful!! I would sleep in there!!
February 3, 2013 at 1:42PM Like
February 8, 2013 at 3:06PM Like
Lovely paint and bedding. Have you considered some art work, new window coverings and maybe a nice throw to lessen any hint of a furniture show room feel? Always a bit of a challenge with a totally matched bedroom suite, but just requires some extra touches. Thanks for sharing!
February 9, 2013 at 9:48AM Like

subset: commoncrawl


text:
This is frightening new territory, indeed: Chrysler may actually survive, thanks to the bailout and its takeover by Fiat. This must be some kind of automotive bizarro-world, where Chrysler is facing solvency, GM has repaid its debts to the US and Canada, Ford is the top US automaker, Toyotas are actively trying to murder their passengers, and shuttered dealerships across the country are re-opening.
At some point I'm going to wake up, and Suzanne Pleshette will not believe the dream I just had.


text:
Your web-browser is very outdated, and as such, this website may not display properly. Please consider upgrading to a modern, faster and more secure browser. Click here to do so.
My name is Sue. If you would like to reach me you can email me at email@example.com. I am also on Twitter. I also run the blogs "Superheroes are for Girls" and "This moments for Women". I also have outlets on Facebook and Pinterest. I also co-host a podcast on Comic Book Resources called "3 Chicks Review Comics".


text:
Reader Comments (Page 1 of 1)
Also, feedback is another talent that should not have been included in this list. It is for raiding not PvP. Granted it's not bad, but there better talents that you should take after ancestral swiftness, mainly elemental warding and ancestral resolve. We don't cast enough lighting bolts and chain lightnings for the 3 points to be worth it, and an additional 18% damage reduction vs casters is huge. (Don't tell me the percentage is wrong, fill out the talent tree yourself and don't be dumb)
The standard elemental PvP spec should look something like this, with the ONLY variation being 1 point in ancestral resolve going to elemental warding. If you do anything else you're gimping your survivability for an almost non-existent increase in damage.
Glyphs will obviously be a little more fun to play with since there are a couple viable alternatives to trade around. Grounding totem NOT being one of them. The longer cooldown is unacceptable and severely gimps your utility.


text:
Budapest Boat tours - river tours on the Danube
There's no better way to explore the beauty of Budapest than cruising on the Danube while drinking a cold refreshing drink!"Cocktail & Beer Ship" offers a unique experience with breathtaking views of the UNESCO World heritage sites of Budapest, with delicious alcoholic or non-alcoholic Hungarian beer or cocktail variations on our air-conditioned ships!If you are in the mood to have a snack, we serve you Hungarian hot-dog sausages on the board! One ticket entitles you up to two cocktails or three beers - you can decide on the ship.The cruise lasts 1 hour 40 minutes, and our bar is open to have further cocktails and other beverages on a fair price! Enjoy an unforgettable afternoon cruise while discovering Budapest in a relaxing and simple way! Our coupons (given with the ticket) can be exchanged for 2 cocktails from below:
Departures 2014:Cocktail & Beer Ship starts every day at 16.00 between April 18 and December 30 (except 20th August)Meeting
point:At cash-desk inside Danube Palace (1051 Budapest, Zrínyi utca 5.) at 15.30.
Please send your reservation via e-mail to email@example.com. We will send the confirmation of your booking within 1 day, but usually in 3 hours!
Quick links:
Hotels in Budapest,
Apartments in Budapest, Bed & Breakfast in Budapest,
Hostels in Budapest, City centre hotels in Budapest, Airport hotels, Design hotels


text:
Comments: 2, viewing 1 - 2
I really liked a couple of the parts that you had, notably the lead arpeggios and some of the machine gun riffing at the very end. The song is a bit drawn out to be instrumental as it stands, but with some tweaking, bass, and drums, I think you could pull it off. Vocals would just bring the entire track to life too. I really hope you continue to work at what you have here. Music writing and recording can be extremely fun and rewarding, and you can easily challenge yourself to become a better musician through it. Just keep it up and always remember to have fun at what you do.
Best of luck to you!
Hey man! Thanks for posting on my thread. I checked out your work here and I think I have some advice for you. It sounds like you can play pretty well, I think your lead work and your rhythm playing show good promise. The track is hard to crit with just guitar lines as it stands right now, but this is what I would suggest. It might be a lot of work, but if you are serious about writing songs I think its a great habit to develop. Get a download of Guitar pro, or a similar program that lets you tab out parts and play them back as midi. Use the program to help organize your tracks, and plan out what you can do to keep the listener engaged. A bonus of using the program is that you can also write bass lines and drum tracks with it, and then just import them into a VST plugin and get a good sounding finished sample track.


text: The updated Green Guide Canada, divided into regions, presents the best of the country: top attractions and activities, multiple driving tours and itineraries, shopping and nightlife, and suggested hotels and restaurants. Step onto a glacier in Alberta, take in a curling match in Manitoba, or brush up on your French in Quebec. With Michelin's celebrated star-rating system and trusted advice, you'll be able to craft your own travel adventure and discover Canada's diverse landscapes, history and culture.


text:
LEGO® MINDSTORMS(TM) RobotsBy Jonathan B. Knudsen
1st Edition, October 1999
1-56592-692-7, Order Number: 6927
250 pages, $24.95
Chapter 4: Not Quite C
In this chapter:
A Quick Start
RCX Software Architecture
NQC Overview
Trusty Revisited
Online Resources
Once you've written a few programs in RCX Code, it gets a little constrictive. For one thing, there aren't any variables. It would be nice if your robot could remember things, like how many obstacles it's encountered or what the temperature was three minutes ago. In RCX Code, the only thing remotely resembling a variable is the counter. Back in Chapter 3, Trusty, a Line Follower, I used the counter to remember which way to turn. The counter was always a 0 or a 1, indicating whether the robot should turn left or right. But it's tough going, and if you try anything more complicated, the counter is not going to get the job done.
The lack of variables is only one of the limitations of RCX Code. Two other important limitations are:
- Although you can define subroutines (called "My Commands"), you can't call one subroutine from another. Likewise, a subroutine can't call itself.
- You can't control the RCX's display. It would be really nice, for debugging purposes, to be able to show values on the display.
The LEGO Group aimed the Robotics Invention System at people who had never programmed before. For this group, RCX Code is a gentle way to get started with programming mobile robots. But RIS is exceedingly popular with programmers and other technically savvy people, who are frustrated by RCX Code's limitations. If you're reading this chapter, this probably includes you.
Since RIS was released in the fall of 1998, the MINDSTORMS community has produced an amazing stream of clever, innovative software designed to overcome the limitations of RCX Code. Most of this software is available, free of charge, on the Internet. In this chapter, I'll describe one of the most popular packages, Not Quite C (NQC). NQC allows you to write programs for your RCX with a text-based language. I'll describe the syntax and commands of this language, with copious examples. If you've programmed in C, NQC will look familiar. If you have never programmed in C, don't worry; NQC is easy to learn.
This chapter presents NQC in four steps:
- To get you started with NQC, this chapter begins with a simple example.
- To understand how NQC works, you need to understand the software that's running on the RCX. This chapter describes the important pieces of the RCX's software architecture.
- A detailed listing of NQC's commands is also presented, with examples.
- Finally, this chapter contains software for Trusty written in NQC.
A Quick Start
Let's get right to the good stuff with a working example. First, you'll need to download and install NQC. It's available for MacOS, Linux, and Windows. Navigate to the NQC web site (http://www.enteract.com/~dbaum/lego/nqc/) and follow the instructions to download and install the latest version. The examples in this book were written with the NQC version 2.0b1.
Once it's installed, enter the following program using a text editor. This program operates Hank, the robot from Chapter 2, Hank, the Bumper Tank. Save the program in a file called Hank.nqc.
#define BACK_TIME 50 #define TURN_TIME 80 task main() { SetSensor(SENSOR_1, SENSOR_TOUCH); SetSensor(SENSOR_3, SENSOR_TOUCH); OnFwd(OUT_A + OUT_C); while (true) { if (SENSOR_1 == 1) { PlayTone(440, 50); OnRev(OUT_A + OUT_C); Wait(BACK_TIME); OnFwd(OUT_A); Wait(TURN_TIME); OnFwd(OUT_C); } if (SENSOR_3 == 1) { PlayTone(880, 50); OnRev(OUT_A + OUT_C); Wait(BACK_TIME); OnFwd(OUT_C); Wait(TURN_TIME); OnFwd(OUT_A); } } }
Now compile the source code using the
C:\>nqc Hank.nqc C:\>
If you made a mistake typing in the program,
nqcgives you a list of errors. Otherwise, you're ready to download the program with the
C:\>nqc -d Hank.nqc Downloading Program:.....complete C:\>
(If you need to specify a serial port different from the default, use the
Go ahead and run the program. When you're done playing, come back and get some background on the software that runs the RCX.
RCX Software Architecture
Writing a program for the RCX involves a handful of software layers, both on the development PC and on the RCX itself. Figure 4-1 shows an overview of the important pieces.
Figure 4-1. RCX software architecture
The RCX is a small computer based on a Hitachi H8/3292 microcontroller. The RCX contains two kinds of memory: Read Only Memory (ROM) and Random Access Memory (RAM). As its name implies, ROM cannot be written. It is programmed at the factory and cannot be changed. RAM, on the other hand, can be written and read as many times as you want, with one catch: it needs power. If you take the batteries out of your RCX, the contents of the RAM are erased. Under normal circumstances, however, the batteries preserve the contents of the RAM.
When you first got your RCX, it had some stuff in ROM and an empty RAM. The RCX's ROM routines know a little bit about the RCX's hardware. These routines can run the motors or access the sensors. Most importantly, the ROM routines know how to receive code from the IR port and place it in RAM.
One of the first things you had to do with your RCX was download the firmware. The firmware is, essentially, an operating system for your RCX. The routines in ROM know how to download a set of firmware from the IR port and store it in RAM.
The firmware is more capable than just the ROM routines. It shows a clock on the display of the RCX; it can recognize and respond to the View button. Most importantly, it can receive robot programs over the IR port and run them.
Although at first it sounds like the firmware and the robot programs are the same kind of animal, this is not the case. The firmware is actual Hitachi H8 machine code. Together with the H8 machine code in ROM, the firmware defines an operating system for the RCX. It provides access to the RCX's inputs and outputs. It also provides a way for programs to be downloaded, stored, started, and stopped.
The actual robot programs are not H8 machine code. They are defined at a higher level called bytecode. Whereas the H8 machine instructions are very rudimentary, like "move this value to register 1," bytecode instructions are more powerful, like "turn output 2 on with full power." The firmware interprets the bytecode and performs the appropriate action.
Spruce Up That Résumé
Writing programs for the RCX is an example of cross-compiling for an embedded system, a phrase that is bound to sound good on your résumé. Cross-compiling means that you are writing programs one one computer (your PC) that will run on another computer (the RCX). An embedded system is a computer that is part of some other device. Microwave ovens and mobile phones both contain embedded systems.
The usual way to develop software for a chip like the Hitachi H8 would be to use a cross-compiler running on a PC. You would write source code (probably in C or assembly language) on your PC and use the cross-compiler to create H8 machine code from the source. Then you would probably use a special PC peripheral, a burner, to place the machine code on some sort of programmable memory chip.
The final step would be to physically place the memory chip in the embedded system. When the embedded system boots up, the software you just wrote will be run.
The RIS software simplifies this process in two important ways. First, it provides a graphic programming environment that's very accessible, particularly for people who haven't programmed before. Second, programs are downloaded to the RCX over the IR link and stored in RAM. This eliminates the complexity of dealing with memory chips and burners yourself.
The cross-compilation step is a little different, too, because RCX programs are bytecode rather than machine code. But it's still cross-compilation: the end result is just bytecode rather than H8 machine code.
About Spirit.ocx
On the PC side, an ActiveX control called Spirit.ocx handles interaction with the RCX via the IR link. Spirit.ocx can execute bytecode commands on the RCX, download new programs to the RCX, download firmware to the RCX, and receive data from the RCX.
The RCX Code programming environment sits on top of Spirit.ocx. It provides the click-and-drag programming environment that you're already familiar with. RCX Code converts these graphic programs into bytecode and uses Spirit.ocx to download the programs to the RCX.
Spirit.ocx is a regular ActiveX control, which means its functions are accessible from programming languages like Visual Basic and Visual C++.
A Day in the Life of a Program
Let's examine the typical life of a robot program:
- The program's life begins when you create something in RCX Code. RCX Code compiles your program to bytecode.
- RCX Code uses Spirit.ocx to download the program to one of the RCX's five program slots. The compiled bytecode is transferred to the RCX via the IR link.
- The program is now available in RAM. When you run it, the firmware interprets the bytecode in your program and performs the appropriate tasks.
NQC Overview
Where does NQC fit in? NQC is a replacement for the software on the PC, both RCX Code and Spirit.ocx. NQC source code is stored in simple text files, just like C, C++, or Java source code. NQC compiles these source files to bytecode and can download them to the RCX using the IR tower. NQC is a good way to overcome the limitations of RCX Code. But because it produces bytecode programs, it's still subject to the limitations of the firmware's bytecode interpreter.
Because NQC talks to the IR tower directly, without depending on Spirit.ocx, it is very portable. NQC runs on MacOS (using MPW), Linux, and of course Windows 95, 98, and NT. RCX Code, by contrast, only runs on Windows.
NQC was developed by Dave Baum, who maintains the official web site at http://www.enteract.com/~dbaum/lego/nqc/. His web site also includes pithy documentation for the language.
If you're using NQC on Windows, you might want to also use RCX Command Center (RcxCC). RcxCC is a Windows application that wraps around NQC. It provides a syntax-colored program editor, push-button compilation and downloading, real-time control of the RCX, and a host of other useful features. Although NQC is fairly easy to use all by itself, RcxCC gives you an even smoother ride. See the Online Resources at the end of this chapter for a URL and more information.
This chapter covers the important commands of NQC. If you have a background in C programming, the syntax and control structures will look familiar. If you don't have a background in C, don't worry: NQC is easy to learn. I've included lots of example programs to demonstrate how things work. I won't cover NQC exhaustively; several excellent web pages detail the entire language. See the Online Resources section at the end of this chapter for details.
NQC programs are organized into one or more tasks. A task is simply some set of instructions that execute in order. A task is analagous to a thread in other programming environments. A single program may consist of several tasks that execute at the same time.
Tasks have names. Every program should have a special task called
main. When the Run button is pressed, the RCX begins the program by running
main. If you define other tasks, you have to explicitly start and stop them. The
maintask is the only one that is automatically run by the RCX. I'll explain more about starting and stopping tasks later.
Output Commands
NQC includes several commands for controlling the outputs of the RCX. You've already seen one of these,
On, in our simple hello.nqc example.
- On(const outputs)
- This command turns on the specified outputs. The outputs should be some combination of the constant values
OUT_B, and
OUT_C. Multiple outputs can be specified by adding them together, as shown in the first example. When an output is turned on, its current power and direction are consulted to determine what actually happens.
- Off(const outputs)
- This command turns off the specified outputs, putting them in brake mode. For motors, this means that the motor shaft will be hard to turn.
- Float(const outputs)
Float()is really a variation on
Off(). No power is sent to the output, but the shaft of an attached motor will turn freely. This is a useful option if you want your robot to coast to a stop.
You can set the direction of outputs with the following three commands:
- Fwd(const outputs)
- Use this command to set the direction of the specified outputs to forward.
- Rev(const outputs)
- This command sets the direction of the specified outputs to reverse.
- Toggle(const outputs)
- To switch the direction of one or more outputs, use this command.
To determine the output power, use the following command:
- SetPower(const outputs, expression speed)
- This command sets the power of the given outputs. Any expression that evaluates to a value from one to seven can be used as the
speed. You may use the constant values
OUT_HALF(4), and
OUT_FULL(7) if you desire.
To fully determine an output's actions, you should set its mode, direction, and power explicitly. By default, all three outputs are set to full power and the forward direction. In hello.nqc, therefore, calling
On()was enough to get the motors running.
NQC provides two handy "combination" commands:
- OnFwd(const outputs)
- This command turns on the specified outputs in the forward direction.
- OnRev(const outputs)
- This command turns on the specified outputs in the reverse direction.
These commands set the mode and direction of the outputs in one fell swoop, but you should still set the power level explicitly with a call to
For timed actions, the following command will come in handy:
- OnFor(const outputs, expression time)
- This command turns on the specified outputs for the given time, measured in hundreths of a second. Then the given outputs are turned off (in brake mode, not in float mode).
The following example runs outputs A and C forward, waits one second, then reverses outputs A and C. After another second, the outputs are turned off. (I'm jumping ahead a little by using the
Sleep()command. Just take my word that it pauses the program for the given number of hundreths of a second.)
task main() { SetPower(OUT_A + OUT_C, OUT_HALF); Fwd(OUT_A + OUT_C); OnFor(OUT_A + OUT_C, 100); Rev(OUT_A + OUT_C); OnFor(OUT_A + OUT_C, 100); }
Rev(), and
Toggle()commands are really shorthand for these lower level output commands:
- SetOutput(const outputs, const mode)
- This command sets the mode for the given outputs. The outputs are specified in the same way as in the
Rev()commands. The value of
modeshould be one of the constants
OUT_OFF, and
- SetDirection(const outputs, const direction)
- This command determines the direction of the supplied outputs. The
directionparameter should be
OUT_REV, or
OUT_TOGGLEis a special value that sets the direction of the output to the opposite of its current value.
In general, I recommend you don't call
SetDirection()with the
OUT_TOGGLEvalue. If you explicitly set the directions of your outputs, your program will be clearer. Furthermore, in programs with more than one task, your program is more likely to behave as you expect.
Input Commands
Before you can read a value from one of the RCX's inputs, you need to tell the RCX what type of sensor is attached to the input. NQC provides a command that does just this:
- SetSensor(expression sensor, const configuration)
- This command tells the RCX how to configure the given input. Valid values for
SENSOR_2, and
SENSOR_3, which represent the three inputs of the RCX. The sensor configurations are detailed in Table 4-1.
Table 4-1: NQC Sensor Modes
Sensor Type
Input Value
1 (pressed) or 0 (not pressed)
0 (dark) to 100 (bright)
16 units per full rotation
Celsius degrees times 10
Fahrenheit degrees times 10
Count of presses
Count of state transitions
[1] See Appendix A, Parts and Sources, which lists the sensors that are available for the RCX.
The actual sensor value can be read using
SENSOR_2, and
SENSOR_3. These are shorthand for the following command:
- SensorValue(const input)
- This command returns the current value of the given input, which should be 0, 1, or 2, for Input 1, Input 2, and Input 3 respectively. The values returned from an input depend on the input's configuration and are described in Table 4-1.
SENSOR_2, and
SENSOR_3actually have a dual purpose in life. Their first purpose is to identify the inputs on the RCX to commands like
SetSensor(). The second purpose is to retrieve values from the inputs. Thus, there are two distinct uses for
SENSOR_2, and
SENSOR_EDGEconfigurations are variations on
SENSOR_TOUCH. The
SENSOR_PULSEconfiguration counts the times the touch sensor has been pressed, while
SENSOR_EDGEcounts the transitions from on to off and from off to on. When you read the value of an input in one of these configurations, the input value is the accumulated count.
Edges and Pulses
If you examine the output of a touch sensor, over time, it looks something like this:
The transitions from 0 to 1 and from 1 to 0 are called edges. A transition from 0 to 1 is a rising edge, while a transition from 1 to 0 is a falling edge.
SENSOR_EDGEconfiguration counts all edges, rising or falling.
SENSOR_PULSEis a little more selective
--it counts rising edges only.
The configurations that keep a count can be reset with a call to
ClearSensor(), as shown in Table 4-1.
- ClearSensor(expression sensor)
- This command resets the current count for the given input to 0.
The following example plays a sound after every four press on the touch sensor. It begins by configuring Input 1 to count touch presses with the
SENSOR_PULSEconfiguration. Then it enters an endless loop, repeatedly testing the value of Input 1. If it is 4, a sound is played and the count for Input 1 is reset.
task main() { SetSensor(SENSOR_1, SENSOR_PULSE); while(true) { if (SENSOR_1 == 4) { PlaySound(SOUND_DOWN); ClearSensor(SENSOR_1); } } }
SetSensor()command actually configures an input's type and mode at the same time. The input type describes the electrical characteristics of the attached sensor, while the mode determines how the sensor values are interpreted. If you need finer control over the inputs than you can get from
SetSensor(), use the
- SetSensorType(expression sensor, const type)
- This command specifies the type of sensor attached to the given input. Input types are listed in Table 4-2. This command specifies how the RCX should treat an input, electrically speaking. The
SENSOR_TYPE_LIGHTtype, for example, supplies power to the sensor. (I described this back in Chapter 3.)
Table 4-2: Input type constants
Type Constant
Sensor type
Touch sensor
Temperature sensor
Light sensor (powered)
Rotation sensor (powered)
- SetSensorMode(expression sensor, const mode)
- Use this command to set the mode of the given input. While the
SetSensorType()command is used to specify the electrical characteristics of the input, the
SetSensorMode()command specifies how the input value should be processed. The modes are listed in Table 4-3.
Table 4-3: Input mode constants
Mode Constant
Raw sensor value from 0 to 1023
Either 1 or 0
Counts transitions from 1 to 0 and vice versa
Counts transitions from 1 to 0
Percent from 0 to 100
Celsius temperature
Fahrenheit temperature
Shaft angle, 16 counts per full revolution
Internally, input values initially have a raw value from 0 to 1023. Raw values are converted to the input values your program sees by a process that depends on the input mode. Three of the modes count events:
SENSOR_MODE_PULSE, and
SENSOR_MODE_ROTATION. The other modes perform a mathematical scaling operation on the raw input value. For example, if the input mode is
SENSOR_MODE_PERCENT, the RCX converts the raw value into a percent according to the following equation:.
If you wanted to attach a temperature sensor to Input 2 and measure Celsius values, you would do the following:
SetSensorType(SENSOR_2, SENSOR_TYPE_TEMPERATURE); SetSensorMode(SENSOR_2, SENSOR_MODE_CELSIUS);
SetSensor()command, which I described first, is a convenient way of specifying both an input type and an input mode. Table 4-4 shows what types and modes correspond to the configurations that
Table 4-4: Input configurations, types, and modes
Input Configuration
Input Type
Input Mode
The RCX has four internal timers, numbered 0, 1, 2, and 3. They count in increments of 100 ms, or once every 1/10 second. NQC includes two commands for interacting with the timers:
- Timer(const n)
- This returns the value of the specified timer, which should be 0, 1, 2, or 3. The number returned is the number of 1/10 second since the timer was cleared.
- ClearTimer(const n)
- This command resets the value of the given timer to 0. The timer begins counting up again immediately.
Random Numbers
NQC has a simple command for creating random numbers. Random numbers are often useful in robot programming. For example, a robot that tries to drive around obstacles can easily get stuck in a corner if it always backs up and turns exactly the same way to get away from an obstacle. A robot that backs up for a random amount of time and turns for a random amount of time is less likely to get stuck in this way.
- Random(const n)
- This command returns a random number between 0 and
Program Flow
You've seen how to control the RCX's outputs and inputs. But robot programs aren't very interesting unless they can make decisions and repeat actions. In this section, I'll sketch out NQC's program control commands. NQC supports a standard set of conditional branches and loops; if you've ever programmed in other languages (particularly C), this will look familiar.
Although it might not seem important, NQC includes a command that tells the robot to do nothing for a certain amount of time. This is often useful if you need to allow some time for something to happen
--maybe the robot needs to move forward or turn for a little while, or you want to give a sound time to play.
- Wait(expression ticks)
- This command causes the current task to pause for the supplied hundreths of a second; a call to
Wait(100)will pause the task for a full second. Note that this only applies to the current task -- other tasks will continue to execute. I'll talk more about tasks a little later.
A variation on this theme is the concept of waiting for an event, like a press on a touch sensor, or a certain time of day. The following command waits for a condition to become true:
- until (boolean condition) [statements]
- Use this command to wait for the given condition to become true. You could, for example, wait for the value of input 1 to become 4 like this:
until (SENSOR_1 == 4);
- This particular
untilhas an empty body, which means it won't do anything each time the condition is tested -- it simply waits until the condition is true. The following program beeps every half second until you press a touch sensor on Input 1 four times:
task main() { SetSensor(SENSOR_1, SENSOR_PULSE); until (SENSOR_1 == 4) { PlaySound(SOUND_CLICK); Wait(50); } }
A loop is a series of commands that you want to be executed repeatedly. NQC offers three flavors of loop:
- repeat (expression value) [statements]
- This command simply repeats the given statements
- while (boolean condition) [statements]
- This loop repeats the supplied statements until
conditionis no longer true.
- do [statements] while (boolean condition)
- This loop is similar to
whilebut the statements are executed before the
conditionis tested. The statements will always be executed at least once, which is not true for a
Let's look at an example. The following code plays a sound every half second while a light sensor attached to Input 3 sees dark:
while (SENSOR_3 < 35) { PlaySound(0); Wait(50); }
Notice how curly braces are used to bracket the statements that belong to the
whileloop. If you have only one command in the body of the
while, you can omit the braces like this:
while (SENSOR_3 < 35) Wait(50);
To test a condition, use the
- if (boolean condition) [statements]
- This command executes the given statements only if
conditionis true.
- if (boolean condition) [statements] else [statements]
- This is a simple variation on the basic
ifcommand. If the condition is false, the statements after the
elseare executed.
The following example turns different directions depending on the value of Input 2:
SetPower(OUT_A + OUT_C, OUT_FULL); if (SENSOR_2 < 50) { Fwd(OUT_A); Rev(OUT_C); } else { Rev(OUT_A); Fwd(OUT_C); } On(OUT_A + OUT_C);
Using #define for Constants and Macros
Constant values can be assigned meaningful names using
#define. This is a idiom that will be familiar to C programmers. Here is an example:
#define POWER 5 task main() { SetPower(OUT_A + OUT_C, POWER); On(OUT_A + OUT_C); }
NQC replaces every occurrence of
5in your source code before compiling it. Although this may not seem like a big deal, it is;
#definelets you create readable names for things that might otherwise be cryptic. It also lets you define things that might need to be adjusted throughout your program in one place. Your program, for example, might have multiple places where it set the outputs to power level 5. Instead of explicitly putting 5 all the way through your program, you can use the constant value
POWER. If you later decide you want the power level to be 7, you just have to change the definition of
POWER, instead of finding all the places in your program where the output power is set.
You can also create macros with
#define. A macro is a kind of miniature program. Usually you'll define a macro for something you want to do frequently. The following program uses three macros.
#define forward(power) \ SetPower(OUT_A + OUT_C, power); \ OnFwd(OUT_A + OUT_C); #define left(power) \ SetPower(OUT_A + OUT_C, power); \ OnRev(OUT_A); OnFwd(OUT_C); #define right(power) \ SetPower(OUT_A + OUT_C, power); \ OnFwd(OUT_A); OnRev(OUT_C); task main() { forward(OUT_FULL); Wait(100); left(OUT_HALF); Wait(100); right(OUT_HALF); Wait(100); Off(OUT_A + OUT_C); }
The preceding example shows off two features of macros. First, each macro has a parameter,
power, that is used in the body of the macro. Second, the macros are split out to multiple lines by using a backslash.
Sounds and Music
Your RCX can play various prepackaged sounds, using the following command:
- PlaySound(const n)
- This command plays the sound represented by
n. NQC includes constant names for each available sounds, as detailed in Table 4-5.
Table 4-5: RCX System Sounds
Sound Name
Short beep
Two medium beeps
Descending arpeggio
Ascending arpeggio
Long low note
Quick ascending arpeggio (same as 3 but faster)
If you'd prefer to make your own music, you can play individual notes with the
- PlayTone(const frequency, const duration)
- This command plays a note with the given frequency for the specified duration. The frequency is in Hz, so 440 is the pitch of the A above middle C on a piano. The duration is in hundreths of a second. You can only specify integer values for the frequency, so don't expect the pitches to be exactly in tune. No one expects your little robot to sound like Pavorotti.
If you want to play a sequence of notes, you have to be a little tricky about it. Each time you call
PlayTone(), the command returns almost immediately, without waiting for the sound you've requested to finish playing. The tone you've requested is put in a queue; the system plays it while the rest of your program executes. If you call
PlayTone()repeatedly, the queue will fill up. Subsequent calls to
PlayTone()will not fit on the queue and the tones you've requested will not be played. The queue is long enough to hold eight tones. If you want to play a sequence longer than this, you should insert calls to
Sleep()in your program so that the queue has time to empty out as notes are played.
The following example demonstrates this technique; it plays part of Quando men vo, from Giacomo Puccini's La Bohème.
#define SIXTH 12 #define HALF 3*SIXTH #define BEAT 2*HALF #define GRACE 6 task main() { PlayTone(330, 2*BEAT); Wait(2*BEAT + 2*SIXTH); PlayTone(115, SIXTH); PlayTone(208, SIXTH); PlayTone(247, SIXTH); PlayTone(330, SIXTH); PlayTone(311, 2*BEAT); Wait(4*SIXTH + 2*BEAT + 2*SIXTH); PlayTone(115, SIXTH); PlayTone(208, SIXTH); PlayTone(247, SIXTH); PlayTone(311, SIXTH); PlayTone(277, 3*BEAT); Wait(4*SIXTH + 3*BEAT + HALF); PlayTone(277, HALF); PlayTone(311, HALF); PlayTone(370, GRACE); PlayTone(330, HALF); PlayTone(311, HALF); Wait (2*HALF); PlayTone(277, HALF); PlayTone(330, HALF); PlayTone(220, HALF); PlayTone(220, 2*BEAT); Wait(GRACE + 5*HALF + 2*BEAT + HALF); PlayTone(247, HALF); PlayTone(277, HALF); PlayTone(330, GRACE); PlayTone(311, HALF); PlayTone(277, HALF); Wait (2*HALF); PlayTone(247, HALF); PlayTone(311, HALF); PlayTone(208, HALF); PlayTone(208, 2*BEAT); Wait(GRACE + 5*HALF + 2*BEAT + HALF); }
IR Communication
Your robot can send and receive data over its IR port. In NQC, three commands handle sending and receiving data:
- SendMessage(expression m)
- This command sends the given byte of data out the IR port.
- Message()
- Use this command to return the last byte of data received on the IR port.
- ClearMessage()
- This command clears the incoming message. You may want to do this after responding to an incoming message in order to avoid responding more than once.
The Display
Although you can't control the display directly in NQC, you can configure it to some degree:
- SelectDisplay(expression v)
- This command tells the RCX to show the data source represented by
von its display. The legal values for
vare shown in Table 4-6. You can achieve the same results by pressing the View button on the front of the RCX to show the state of the inputs or outputs, but the
SelectDisplay()command allow you to do this as part of a program.
Table 4-6: Display values
System clock
View Input 1
View Input 2
View Input 3
View Output A
View Output B
View Output C
You can set the clock in the RCX using the following macro:
- SetWatch(const hours, const minutes)
- Use this macro to set the current time of the RCX's clock. Unfortunately, only constant values can be used.
The Datalog
With the default firmware, your RCX supports an interesting option called a datalog. The datalog is simply a list of numbers. You can create a new datalog and put numbers into it. Datalogs can be uploaded to your PC for analysis or display.
- CreateDatalog(const size)
- This command tells the RCX to make space for the given number of elements. There is only one datalog, so this command will erase any previous datalog.
- AddToDatalog(expression v)
- This command adds a value to the datalog. It's up to you to keep track of how many values are in the datalog. If you try to add values after the datalog is full, nothing happens.
The following example waits for a touch sensor on Input 1 to be pressed. For each press, the value of Timer 0 is stored in the datalog, which holds 20 values in this example.
int count; task main() { CreateDatalog(20); ClearTimer(0); SetSensor(SENSOR_1, SENSOR_TOUCH); count = 0; until (count == 20) { until(SENSOR_1 == 1); AddToDatalog(Timer(0)); count++; until(SENSOR_1 == 0); } }
When you run this program, you'll notice the RCX shows the status of the datalog on the right side of the display. It looks kind of like a pie; as you add values to the datalog the pie fills up.
To upload a datalog to the PC, you can use
-datalogoption, which simply dumps the values to the screen:
C:\>nqc -datalog 8 12 16 19 23 25 27 29 31 33 39 47 52 56 59 62 65 68 71 75 C:\>
The datalog actually stores the source of every value. If you use a tool like RCX Command Center, it can show you the source of each value in the datalog. In Chapter 8, Using Spirit.ocx with Visual Basic, I'll show you how to write your own program in Visual Basic to retrieve the contents of the datalog.
NQC gives you powerful control over tasks and subroutines. Each of the RCX's five programs is made up of one or more tasks. These tasks can execute at the same time, which is another way of saying that the RCX is multitasking.
Tasks are defined using the
taskcommand. Every program must have a
maintask which is executed when the program is first started. Other tasks must be started and stopped explicitly.
- start taskname
- This command stops the named task.
- stop taskname
- Use this command to stop the named task.
The following program controls its outputs from
mainand uses another task,
sing, to play some music. The
singtask has to be started from
main; otherwise, its commands will never be executed.
task main() { start sing; while (true) { OnFwd(OUT_A); OnRev(OUT_C); Wait(100); OnFwd(OUT_C); OnRev(OUT_A); Wait(100); } } #define SIXTH 12 #define HALF 3*SIXTH #define BEAT 2*HALF #define GRACE 6 task sing() { PlayTone(330, 2*BEAT); Wait(2*BEAT + 2*SIXTH); PlayTone(115, SIXTH); PlayTone(208, SIXTH); PlayTone(247, SIXTH); PlayTone(330, SIXTH); PlayTone(311, 2*BEAT); Wait(4*SIXTH + 2*BEAT + 2*SIXTH); PlayTone(115, SIXTH); PlayTone(208, SIXTH); PlayTone(247, SIXTH); PlayTone(311, SIXTH); PlayTone(277, 3*BEAT); Wait(4*SIXTH + 3*BEAT + HALF); PlayTone(277, HALF); PlayTone(311, HALF); PlayTone(370, GRACE); PlayTone(330, HALF); PlayTone(311, HALF); Wait (2*HALF); PlayTone(277, HALF); PlayTone(330, HALF); PlayTone(220, HALF); PlayTone(220, 2*BEAT); Wait(GRACE + 5*HALF + 2*BEAT + HALF); PlayTone(247, HALF); PlayTone(277, HALF); PlayTone(330, GRACE); PlayTone(311, HALF); PlayTone(277, HALF); Wait (2*HALF); PlayTone(247, HALF); PlayTone(311, HALF); PlayTone(208, HALF); PlayTone(208, 2*BEAT); Wait(GRACE + 5*HALF + 2*BEAT + HALF); stop main; Float(OUT_A + OUT_C); }
When the
singtask is done playing music, it stops the
maintask with the
stopcommand. Then it turns the motors off. The order is critical. If we turned off the motors and then stopped the
maintask, it's possible that
mainwould turn on the motors again before it was stopped. Multithreaded programming is powerful but tricky.
Each RCX program can have up to 10 tasks.
A subroutine is a group of commands that you will execute frequently. Subroutines offer a way to clean up your source code and reduce the size of compiled programs. Subroutines in NQC are defined in much the same way as tasks. The following program has one subroutine, called
wiggle(). The
maintask shows how this subroutine is called.
task main() { wiggle(); Wait(200); wiggle(); } sub wiggle() { OnFwd(OUT_A); OnRev(OUT_C); Wait(20); OnFwd(OUT_C); OnRev(OUT_A); Wait(20); Off(OUT_A + OUT_C); }
Subroutines execute as part of the task from which they are called. It works just as if the call to
wiggle()was replaced with the commands it contains. The nice thing about subroutines is that their code is defined once, but you can call it as many times as you like from other places in your program. You could accomplish the same sorts of things with subroutines and macros, but subroutines are more efficient because the code is just compiled once. With a macro, the entire macro body would be placed at each point where it was called.
The RCX imposes three crippling restrictions on subroutines. First, you can't call another subroutine from within a subroutine. As a consequence, a subroutine also cannot call itself. Second, you can't pass parameters to a subroutine or get a return value. Third, no more than eight subroutines can be defined for a single program. These limitations are imposed by the RCX's bytecode interpreter, which is defined in the firmware. To get around restrictions like these, you'll need to use a different firmware, like legOS or pbForth.
NQC does offer another interesting option, the inline subroutine. In source code, it looks a lot like a subroutine except with with a C-style return type (always
void wiggle() { OnFwd(OUT_A); OnRev(OUT_C); Wait(20); OnFwd(OUT_C); OnRev(OUT_A); Wait(20); Off(OUT_A + OUT_C); }
Inlines are called the same way as subroutines. The compiler actually places the code of the inline wherever it is called, almost like a macro or constant definition. This actually makes inlines appear a little more capable than subroutines: they can call other inlines or even subroutines. In NQC version 2.0, for example, you can define inlines with a parameter, like this:
void wiggleTime(int waitTime) { OnFwd(OUT_A); OnRev(OUT_C); Wait(waitTime); OnFwd(OUT_C); OnRev(OUT_A); Wait(waitTime); Off(OUT_A + OUT_C); }
You can have more than one argument, if you wish. Just remember that inlines are really an example of syntactic sugar, something that makes your source code look pretty but doens't necessarily result in better efficiency.
Arguments to inlines can be passed in four different ways. Table 4-7 summarizes the options.
Table 4-7: Argument passing for inlines
By value or by reference?
Temporary variable used?
by value
const int
by value
by reference
const int&
by reference
If you pass
intby value, the parameter's value is copied into a temporary variable (from the pool of 31) and used in the inline.
const intpasses by value, but the value must be a constant at compile time.
If you pass by reference, the variable that is passed in can actually be modified in the inline. In this code, for example, a
countvariable is incremented in the body of an inline:
task main() { int count = 0; while (count <= 5) { PlaySound(SOUND_CLICK); Wait(count * 20); increment(count); } } void increment(int& n) { n++; }
The last option,
const int &, is used when you want to pass a value that should not be changed. This is great for things like
Timer(). For example, you might have an inline like this:
void forward(const int& power) { SetPower(OUT_A + OUT_C, power); OnFwd(OUT_A + OUT_C); }
With this inline, you can do normal things, like passing a variable or constant:
int power = 6; forward(power); forward(OUT_HALF);
But you can also do trickier stuff, like this:
You can basically accomplish the same stuff with
intparameters and
const int¶meters. The advantage of
const int&is that no temporary variables are used.
To use a variable, you simply need to declare its name. Only integer variables are supported. Once a variable is declared, you can assign the variable values and test it in the body of the program. Here's a simple example:
int i; task main() { i = 0; while (i < 10) { PlaySound(0); Wait(5 * i); i += 1; } }
This example beeps at successively longer intervals. The variable,
i, is declared in the very first line:
int i;
Values are assigned to the variable using the
i = 0;
You can also assign input values to variables, like this (not part of the example):
i = SENSOR_2;
In the following line, one is added to the value in variable
This is really shorthand for the following:
i += 1;
+=operator, in turn, is shorthand for this:
i = i + 1;
Trusty Revisited
You've seen some small examples of NQC code. Now I'll show you how Trusty can be programmed using NQC. You'll be able to compare the NQC programs to the RCX Code programs from Chapter 3.
New Brains For Trusty
As you may recall, we used a counter to keep track of Trusty's state. The counter value was used to decide if Trusty would turn left or right the next time the light sensor left the black line. In NQC, we can store Trusty's state in a real variable. Plus, we'll use symbolic constants to represent state values.
int state; #define LEFT 0 #define RIGHT 1
Trusty's program has two tasks. The first task (
main) tests the value of the light sensor. If it is over the black line, the robot is set to move forward:
while (true) { if (SENSOR_2 < DARK2) OnFwd(OUT_A + OUT_C); }
POWERconstants are determined using
#defines; this means it's easy to fiddle with their values, and our program is easy to read.
The second task takes care of things when the light sensor leaves the black line. Whenever the robot leaves the line, the
toggle()subroutine is called.
toggle()starts the robot turning. Then we wait a little while; if the robot is still not on the black line, we call
toggle()again to turn back the other way.
task lightWatcher() { while (true) { if (SENSOR_2 > LIGHT2) { toggle(); Wait(TIMEOUT); if (SENSOR_2 > LIGHT2) { toggle(); Wait(TIMEOUT * 2); } } } }
toggle()subroutine performs two important functions. First, it makes Trusty turn, based on the value of the
statevariable. Second, it updates the value of
state; if it was
RIGHT, it will be
LEFT, and vice versa.
Here is the whole program:
int state; #define LEFT 0 #define RIGHT 1 #define DARK2 35 #define LIGHT2 40 #define POWER 7 #define TIMEOUT 50 task main() { state = LEFT; SetSensor(SENSOR_2, SENSOR_LIGHT); SetPower(OUT_A + OUT_C, POWER); start lightWatcher; while (true) { if (SENSOR_2 < DARK2) OnFwd(OUT_A + OUT_C); } } task lightWatcher() { while (true) { if (SENSOR_2 > LIGHT2) { toggle(); Wait(TIMEOUT); if (SENSOR_2 > LIGHT2) { toggle(); Wait(TIMEOUT * 2); } } } } sub toggle() { if (state == LEFT) { OnRev(OUT_A); OnFwd(OUT_C); state = RIGHT; } else { OnFwd(OUT_A); OnRev(OUT_C); state = LEFT; } }
maintask performs three important initializations which I haven't mentioned yet. First,
maininitializes the value of the
statevariable. It just uses
LEFTarbitrarily. Next,
mainconfigures Input 2 for a light sensor. Finally, it starts the
Using Two Light Sensors
In this section, I'll present an NQC program that works with the two light sensor version of Trusty. As you may recall, programming this robot in RCX Code was cumbersome.
The programming is a lot cleaner in NQC. It's pretty straightforward to translate Table 3-1 into source code. The basic strategy is to use a state variable to represent the four states of the robot, represented by the four lines of Table 3-1. Then one task examines the sensors and updates the state variable. Another task examines the state variable and sets the motors appropriately.
The four possible states are represented by constant values. A fifth value,
INDETERMINATE, is used when one or both of the light sensor values is not in the dark or light range.
#define BOTH_ON 3 #define LEFT_ON 1 #define RIGHT_ON 2 #define BOTH_OFF 0 #define INDETERMINATE 255
maintask simply tests the value of the
statevariable and sets the motors accordingly. No action is taken for
while (true) { if (state == BOTH_ON) OnFwd(OUT_A + OUT_C); else if (state == LEFT_ON) { Off(OUT_A); OnFwd(OUT_C); } else if (state == RIGHT_ON) { Off(OUT_C); OnFwd(OUT_A); } }
A separate task,
watcher, examines the light sensor values and sets the
statevariable. Here is the entire source code for the two sensor version of Trusty.
int state; // "ON" refers to whether the light // sensor is on the line. If it is, // the light sensor is seeing black. #define BOTH_ON 3 #define LEFT_ON 1 #define RIGHT_ON 2 #define BOTH_OFF 0 #define INDETERMINATE 255 // Thresholds for light and dark. #define DARK2 35 #define LIGHT2 40 #define DARK3 40 #define LIGHT3 45 #define POWER 4 task main() { initialize(); while (true) { if (state == BOTH_ON) OnFwd(OUT_A + OUT_C); else if (state == LEFT_ON) { Off(OUT_A); OnFwd(OUT_C); } else if (state == RIGHT_ON) { Off(OUT_C); OnFwd(OUT_A); } } } sub initialize() { SetSensor(SENSOR_2, SENSOR_LIGHT); SetSensor(SENSOR_3, SENSOR_LIGHT); SetPower(OUT_A + OUT_C, POWER); OnFwd(OUT_A + OUT_C); start watcher; } task watcher() { while (true) { if (SENSOR_2 < DARK2) { if (SENSOR_3 < DARK3) state = BOTH_ON; else if (SENSOR_3 > LIGHT3) state = LEFT_ON; else state = INDETERMINATE; } else if (SENSOR_2 > LIGHT2) { if (SENSOR_3 < DARK3) state = RIGHT_ON; else if (SENSOR_3 > LIGHT3) state = BOTH_OFF; else state = INDETERMINATE; } else state = INDETERMINATE; } }
Online Resources
- NQC - Not Quite C
- http://www.enteract.com/~dbaum/lego/nqc/
- This is the official site for NQC. You can download the current release, read the documentation, or browse a FAQ. Dave Baum has packed a lot of useful information into this site, including such gems as how to create a cable to connect your Macintosh to the IR tower. This site also includes the definitive NQC documentation.
- Lego Robots: RCX Command Center
- http://www.cs.uu.nl/people/markov/lego/rcxcc/
- RCX Command Center (RcxCC), developed by Mark Overmars, is built on top of NQC. It's a Windows application that provides a friendly graphic interface to the features of NQC. It includes a syntax-colored program editor, real-time control of the RCX, utilities for making your RCX play music, and useful help files. I highly recommend this application.
- Lego Robot Pages [NQC Tutorial]
- http://www.cs.uu.nl/people/markov/lego/
- Mark Overmars, creator of RcxCC (the previous entry), has written a detailed introduction to NQC. It's available off his main web page as PDF, Word97, PostScript, or RTF. This document is a gentle and thorough introduction to NQC.
- Kevin Saddi's NQC Reference Page
- http://home1.gte.net/ksaddi/mindstorms/nqc-reference.html
- This page provides a distilled view of NQC. It's very handy when you can't remember the input type constants, or you'd like to see NQC's commands organized by function. Single-line code samples are also included.
- Hitachi Single-Chip Microcomputer H8/3297 Series...
- http://semiconductor.hitachi.com/products/h_micon/3_h8300/3_h8_300/H33TH014D2/html/h3314frm.cfm
- This page has all the crufty details on the Hitachi H8 that forms the heart of the RCX. The specific model is the H8/3292, which is covered in the manual. This information is not for casual browsing -- you probably won't need to look here unless you start writing your own firmware. (Hitachi's web site is a little flakey. If you're having trouble with this URL, try starting at http://semiconductor.hitachi.com/h8/ and searching for the H8/3292.)
Back to: LEGO® MINDSTORMS(TM) Robots
© 2001, O'Reilly & Associates, Inc.


text:
Lot/land for sale in IONE, WA 59,500 USD
Location, Location! Great spot for your new business, could be commercial or residential, fronts on HWY 31 and Blackwell St., City water/sewer, pwr/ph at property line, Double lot legally 2 lots. Just minutes to park with boat launch access to the P.O. River!
Brokered And Advertised By: CENTURY 21 Kelly Davis, Inc.
Listing Agent: GARY GRANT
Request More Information: For more information regarding this land, please give us a call at... .
Data Provided by:
Northeast Washington Association of Realtors


text:
|The Annual Festival
Back to
Great plans are always underway for the annual Arts for All Festival! The festival is both a celebration of the arts and a "thank you" to the community for supporting the arts throughout the year. The success of this wonderful event is due to a cooperative effort of teamwork between businesses, civic and community organizations, and hundreds of dedicated volunteers.
Shepler Park
***** The second weekend in May *****
Through the years, our little festival has grown into a large fine arts juried show, and artists across the United States clearly indicate that the Arts for All Festival in Lawton has become a highly sought after event for artists on a national level!
Artists representing many states display in mediums of photography, pottery, sculpture, painting, jewelry, and more. Accompanying the wonderful array of visual arts are the art of cuisine. Entertainment is featured on two stages by our local children's groups, schools, and dance studios.
The stated mission of Arts for All Festival is "to create a fine arts festival of regional appeal, bringing to southwest Oklahoma quality visual and performing arts, for the benefit of the member groups of Arts for All, Inc." The six member groups are:
The Arts for All Festival is deeply grateful to the City of Lawton, the McMahon Foundation, the Oklahoma Arts Council, and the National Endowment for the Arts for their many years of financial assistance. They give life to our local communities through the arts!
For more
information about the Arts for All Festival,
Click below to see some past festival photos.
Revised: July 19, 2014.


text:
NAMI is a national organization dedicated to improving the lives of those affected by mental illness. Though Mr. Ayers has many challenges ahead, the story of his long journey -- from psychiatric hospitals to the streets to supportive housing at Lamp Community -- has given hope to many. They wanted to thank him, hug him, pose for pictures and get his autograph, and Mr. Ayers was all too happy to oblige.
- Bio | E-mail | Recent columns
When the celebration was done, Mr. Ayers linked up with a young pianist named Will, who has a story similar to his own.
They adjourned to the lobby of the Hilton Towers and jammed into the wee hours. The lights of San Francisco twinkled through the windows behind them as the musicians found a way past the labels, limitations and isolation they've known, rescued once again by the music.
On the ride back home, Mr. Ayers switched to trumpet and blew hard enough to be heard by the cows at Harris Ranch. He thought aloud about moving to San Francisco but then said he'd miss Los Angeles, and besides, there were so many homeless people in the Tenderloin district.
"It's depressing," he said, as if the illusion of a magical place, without pain or suffering, had been shattered.
We were about to climb the Grapevine when Mr. Ayers began dreaming about recording a CD.
We decided that if it happens, he should do nine cuts and play a different instrument on each one, like a baseball player who fields a different position every inning of a game.
The CD would be called "Putting on Ayers," we decided, and before we knew it, we were home.


text:
I draw the webcomic Manly Guys Doing Manly Things and work on cartoons you might see on TV sometimes.
Catching Elephant is a theme by Andy Taylor
Going to pimp out this collection of Pokemon fonts, It's been very helpful to me today.
I'm going to download all of these.


text:
Architect Michael Maltzan takes on topics ranging from environmental design to economic development in thinking about a new vision for L.A.
The 2012 Honor Awards jury chose Gehry's house, completed in 1978, as an example of iconic American architecture that remains relevant today.
2011 Annual Design Review: Live: Citation
This whole-house remodel and addition bring an L.A. home in line with its owners' modern style.
The globally focused Jerde Partnership still anchors all of its design work in its Venice Beach offices.
More than 60 cultural centers are collaborating with the Getty Foundation on a six-month initiative called Pacific Standard Time (PST). This first-ever comprehensive exploration of Los Angeles' art and design history, particularly the post-WWII burst of creativity, includes exhibitions, films...
Can urban, multifamily rentals drive the economy forward?
An interview with Wilson Chang, LEED AP specialist, Southern California Institute of Architecture and California Institute of Technology.
This year's winning projects share a commonality: A connection to sustainable-design education.
North House, by Team North/RVTR
Copyright © 2014 Hanley Wood Media, Inc. All rights reserved.


text:
Scully/The World Show
MATT HAIMOVITZSeries Website »
Episode Guide »
This masterful cellist aims to re-frame classical music for an audience that has been dwindling.
Vermont transplant and Guster frontman Ryan Miller seeks out far-fetched friends across the state! Available exclusively online.
Check out winning Vermont entries to the 2014 PBS Kids Writers Contest!
Tons of videos and games for children from PBS!
PBS Kids - Tons of videos and games for children from PBS!
Educator Resources - Lesson plans, online courses, and videos for teachers and parents.


text:
Home > New Yachts > Boston Whaler Yachts > 17/cc
Boston Whaler Yachts 17/cc
If you are looking to buy a used or new Boston Whaler Yachts 17/cc yacht, we have all the information you need. List price for the 17/cc is $13,322.00, with a bottom price of $4,060.00, typical price of $4,780.00 and top price of $5,590.00. The 17/cc is 17 feet in length. A justice yacht, the 17/cc's hull is made of fiberglass, features a 7 foot beam and weighs in at a net 1,825 pounds.
The 17/cc was manufactured during the years: .
The most popular sales locations by state for the 17/cc are: Wisconsin, Florida, Delaware, Tennessee, Minnesota, Georgia, North Carolina, Illinois, Michigan, Washington, Ohio, Alabama, California, New Jersey, South Carolina, New York, Louisiana, Virginia, Texas and Missouri.


text:
Here's my experience: That not so peachy moment in the pharmacy, when the technician tells me it's an hour wait, but when I come back in a hour my prescription is not ready. The reason, "we are busy". I ending up waiting 35 more minute for a z-pak.
My Pharmacy Visit is an informative pharmacy website. We post vital information via Google Blog, Twitter, Facebook, Instagram, and Google Plus. We aim to keep customers informed about medications and health conditions, which are immensely vital in anyone's life. Reader's may visit us at My Pharmacy Visit via web where Licensed Pharmacists and Nurse Practitioners answers questions 24 hours a day 7 days a week via email.
Sunday, February 3, 2013
That not so peachy moment in the pharmacy
Posted by My Pharmacy Visit at 8:07 PM
Subscribe to: Post Comments (Atom)


text:
From the Thunder fans that brought you the YouTube sensation "Beard Like Harden" here is their newest creation. It's a parody video of the song "Call Me Maybe."
Chris and Daniel Castor and friends bring you "Call Him KD!"
Click here watch the video.
Children's Television Information • EEO Reports • DTV Consumer Education Reports • Satellite Home Viewer Act Information
All content © Copyright 2000 - 2014 WorldNow and WBMA. All Rights Reserved.
For more information on this site, please read our Privacy Policy and Terms of Service.


text:
Articles related to lollipops
Homemade Lollipops Recipe (Old-Fashioned) - Candy - About.com
Lollipops are an old-fashioned sugar candy favorite. This lollipops recipe can be customized with your favorite colors and flavors.
Salted Caramel Lollipops Recipe - Candy - About.com
This Salted Caramel Lollipops recipe contrasts the rich flavor of caramel with a hint of salt for a sweet-and-savory treat. This is a lollipop that kids and adults alike ...
Rose Lollipops Recipe - Valentine's Day Candy Recipe - About.com
Rose Lollipops are rose-flavored pops in the shape of beautiful roses. Give these candies as a gift for Valentine's Day or any romantic occasion.
Calories in Lollipops | Sucker Nutrition Facts
Get free nutritional information on Lollipops. Find the number of calories and view food labels for popular suckers, sweets and candies.
Vanilla Bean Lollipops - Candy - About.com
Vanilla Bean Lollipops have a strong vanilla flavor and a beautiful speckled appearance from vanilla seeds.
Licorice Lollipops - Candy - About.com
Anise-flavored lollipops are a fun take on traditional black licorice candy recipes.
Cinnamon Heart Pops - Recipe for Cinnamon Lollipops Shaped like ...
1 cup sugar; ½ cup light corn syrup; ¼ cup water; 1/4 tsp cinnamon oil; Red food coloring; Heart lollipop molds (specifically for hard candy); Lollipop sticks.
Spider Lollipops Recipe - Candy - About.com
In this Halloween craft, lollipops and decorated with pipe cleaners and eyes to produce Spider Lollipops.
Sugar-Free Agave Caramel Lollipops Recipe - Candy - About.com
Agave Caramel Lollipops are lollipop candies made without processed sugar or corn syrup. They have a rich, caramel taste without being too sweet.
Lollipop Recipes and Other Candy Pops - About.com
A list of lollipop recipes, including sugar lollipops, cake pops, brownie pops, and cheesecake pops.


text:
As many birders/conservationists will know 99% of Asia's vultures have been wiped out in the last two decades, killed by visceral gout brought on by feeding on cattle previously dosed with the anti-inflammatory drug Diclofencac. Four species are now Critically Endangered. What is perhaps less well-known is that Africa's vultures are also disappearing fast – this time through a combination of poisoning (the horrendously toxic Furadan), being killed for food, and for use in 'juju' or magic.
The excerpt below is taken from an excellent article by Tadaferua Ujorha that appeared in Nigeria's "Weekly Trust" last week.
Vultures on the verge of extinction
http://weeklytrust.com.ng/, 18 Feb 12:
- "Five of the six species of vultures in Nigeria have been wiped out, according to a scholar. True to the scholar's finding, only dead Vultures are now found in places where they once flourished. Meanwhile, there are just a few programmes that currently address the drop in the population.
If you raise your eyes and look into the trees , or, if you decide to visit any of the numerous abattoirs in the country, you may not see any Vultures. The drop in Vulture numbers is not just a Nigerian, but also a regional problem. In Liberia, the Vulture population has dropped, owing to the fact that during the country's 14-year civil war, Liberians suddenly began to consume Vultures, when there was a scarcity of meat. A butcher in Liberia confirmed this at Monrovia's main abattoir.
Vultures clean up the environment and their absence may explain the frequent outbreak of diseases in the region. Ruth Akagu, Senior Conservation Officer , Species and IBA Programme, Nigerian Conservation Foundation (NCF) says "Vultures play an extremely important ecological role in most terrestrial ecosystems. They keep the environment free of carcasses, waste (including human excrement), thereby restricting the spread of diseases (such as Anthrax and botulism) and pests such as rats. Hence their decline as a significant scavenger can lead to associated changes within their environment."
The only Vultures seen during the investigation in Nigeria were dead ones being sold in markets. A live Vulture costs 20,000 Naira, while a dried one goes for 7,000 Naira. In Ibadan a live Vulture costs 25,000 Naira. Some of these Vultures, such as the dried ones seen at Giwa near Zaria, are said to have been imported from both Chad and Niger Republics. This may indicate a striking drop in the Vulture population locally, and naturally justifies the importation of same.
Yet, most Nigerian communities have ancient taboos, which forbid the killing or eating of Vultures. In Auchi, Weekly Trust gathered that Vultures always depart from a town where the inhabitants do not give the elders any respect. In most parts of the north, it is forbidden to eat of its meat, and the Vulture is seen as a 'demonic bird' in some quarters. A Yoruba incantation states 'It is forbidden to kill a Vulture. It's forbidden to use Vultures for rituals'.
Weekly Trust investigations reveal that there are no vultures in the abattoirs and markets in Lafia, Lagos, Suleja, Keffi, Owerri, Calabar, Auchi, Zaria, Ibadan and Lokoja, despite the fact that in some of the abatoirs such as the Oko-Oba abbatoir in Lagos, up to a hundred cows are slaughtered daily."
For the rest of the article please go to: http://weeklytrust.com.ng/


text:
- Address:
92 Madison Ave.
New York, NY 10016Neighborhood:
Gramercy / Flatiron
- Cuisine:
SeafoodPrice: $30 and under
- Dining Style: Casual Elegant
- Website: http://www.millesimenyc.com/
- Phone: 2128897100
- Hours of Operation:
Breakfast: Monday-Friday 6:30am - 11am Saturday and Sunday 7am - 11:30am Lunch: Monday-Friday 11:30am - 3pm (Served in our Salon) Dinner: Monday - Saturday: 5:30pm - 11:00pm
- Payment Options: AMEX,Diners Club,Discover,MasterCard,Visa
- Cuisine: Seafood, Contemporary French
- Executive Chef: Alan Ashkinaze
- Dress Code: Casual Dress
- Accepts Walk-Ins: Yes
- Additional Details: Banquet/Private Rooms, Bar Dining, Bar/Lounge, Beer, Chef's Table, Entertainment, Full Bar, Late Night, Private Room, Takeout, Weekend Brunch, Wheelchair Access, Wine
- Entertainment: We warmly invite our guests to join us downstairs at Salon Millesime, where celebrated local D.J's, jazz trios and soloists are featured Wednesday - Friday nights. Please visit our website to view our weekly musical line-up.
- Special Events: Millesime is the perfect venue for a special event. We can accommodate groups of 10 to 1000. Whether you a re planning an intimate dinner for your closest friends, a business event or a celebration for several hundred, we offer one of the most beautiful spaces in NYC. Please contact Justine Hah at email@example.com for more information
Getting there
- Cross Street: 29th Street
- Public Transit: 6 TRAIN (28th Street Station); N/R/W TRAINS (28th Street Station / Broadway); M102 and M103 to 28th Street
- Parking: No
- Parking Details: GARAGES NEARBY: Park Right Garage: 29th Street (Park Ave. / Madison Ave) Excellent Parking: 29th Street (3rd Ave. / Lexington)
A word from Millesime
The menu draws its inspiration from the classic seafood dishes found throughout France, and features fresh, seasonal ingredients sourced from local waters and nearby farms. Dishes are prepared with straightforward French cooking techniques and bold flavors in a surrounding that is reminiscent of the great cafes of Paris. Red banquets, a marble raw bar and an open kitchen provide an unpretentious but sophisticated experience.Continued
Foodspotting photosSee all photos
Millesime reviews from OpenTable diners
24 reviews since June 4, 2014
- Food4Service4.1
- Ambiance4Noise LevelModerate
great for brunch (9)neighborhood gem (9)special occasion (8)fit for foodies (7)romantic (7)good for groups (6)late-night find (5)vibrant bar scene (4)great for lunch (4)notable wine list (3)great for outdoor dining (1)scenic view (1)Show More
- Punch Brunch FailThoughtforfoodDined on 8/31/2014Bottomless brunch was strictly oK. Beautiful space tucked in Carlton Hotel. For brunch, there are choices of two bottomless punches, neither great. Vodka one was gross. Tequila one was not boozey enough. Food was ok at best. Drinks brought out in pitchers, which is nice because you are not stalking the waitstaff for pitchers...especially with the waitstaff not really being helpful/present (even on fairly empty weekend). Maybe would do it again if I had to be near Penn Station or Herald Square; would never do it again on purpose.Special Features:
- Wonderful Birthday DinnerLenaMDined on 8/26/2014We came here for my birthday, and it wasn't very crowded at all. They were very accommodating with all of our requests. The oysters are amazing, and the hazelnut chocolate dessert bar was to die for! I would also recommend the chicken fricasse dish for anyone who wants to share. It is very romantic, and a great find in an area that is close to Herald Square.Special Features:
- Best service ever!!!eyemanDined on 8/23/2014Ask that Katia be your server! The best, most personable service I've ever experienced in a first class restaurant. The food was better than very good. The environment is elegant and beautiful. I was a bit surprised at how empty the restaurant was on a Saturday night. I could see no reason for that. But from the gracious hostess to the outstanding wait service, right on to the bus service, I've never experience such charming helpfulness in what, based on appearance alone, would be a first class, snobby, super elegant restaurant. They truly make you feel like a special guest in an exclusive club.Special Features:I would recommend this to a friend.
- Punch Brunch Lives Up to NameAKenDined on 8/23/2014Our group of 3 enjoyed the unlimited Punch Brunch...possibly too much. The portion sizes were a little small to soak up all the alcohol before we ventured back out into the city, so we asked if they had any rolls to go with the jam sitting on the table. They did, but we found out later the rolls that were brought to the table were $12...not sure we would have ordered that if we'd known what we were getting for the cost. The Croque Madame was reliably delicious, however, and the Lemon Rosemary punch was divine.Special Features:
- Great birthday brunch!omnomDined on 8/3/2014Three of my friends took me out to celebrate my 21st birthday here for brunch and it was wonderful! It has this sort of Parisian vibe with the interior (there was a quite large replica of the Eiffel tower) and it worked (I was surprised). The food was amazing, they comped a dessert for my birthday, the waitress was extremely nice, and they even let us move to the table we wanted when it became free after we placed our orders. There's a balcony area overlooking the lobby and it's beautiful. I'd recommend sitting there if you go to Millesime, if you can, that's where we moved to. It's has a somewhat removed feel, which makes it great for small groups.Special Features:I would recommend this to a friend.
- Pleasantly surprisedSaraVIPDined on 8/1/2014We were pleasantly surprised just how good the food was -- everything my husband and I had was delicious as well as nicely presented. The service started out strong but then our server kind of disappeared the last 1/3 of our meal. (The restaurant was almost empty so this was particularly odd unless the server was working the party in the bar 1 level below the restaurant). We were given dessert menus and were ready to order desserts and tea, but by the time the server returned to us some 15 minutes later we had decided we were too full and skipped it.Special Features:
- Wonderful seafooddebdinesoutVIPDined on 7/23/2014We have dined at this restaurant several times over the past few years, and it has had its ups and downs. The tables overlooking the ornate hotel (originally a bank) lobby are great. The service recently was excellent, and I had the best dish I have ever eaten at Millesime: Fluke stuffed with a herb mousse. It was outstanding. My husband loves the crab meat cocktail (expensive, but worth it, he says). The desserts are also good. This is a great place for a special treat, and they did treat us like special guests.Special Features:I would recommend this to a friend.
- Excellent Food and ServiceMikeDVIPDined on 7/18/2014A pleasant surprise......the food is conversation stopping and the overall experience very pleasant.Special Features:I would recommend this to a friend.
- Millesimie for BrunchME87FoodieDined on 7/13/2014Was looking for a Boozy Brunch in Midtown, and this did not disappoint. We went on a sunday, and I was surprised how empty it was, but we were in a rush and got great service, and it was the world cup finals, so it was all good. We were given our drink pitchers so getting a refill was not an issue. Truly bottomless!Special Features:I would recommend this to a friend.
- Excellent Food Pleasant AmbianceMikeDVIPDined on 7/9/2014Food was fantastic......pleasant environment...nice space between tables...Special Features:I would recommend this to a friend.
- Great food and lightingGreenBayPackerfeverVIPDined on 6/19/2014Visited for my 30 bday. The food was good the service even better! Katy was our server and she was great! Ambiance is fantastic. Good place for date night or relaxing with cocktails.Special Features:
- GregVIPDined on 6/14/2014I'm not sure why this restaurant doesn't score more 5 star ratings on OT. It was truly outstanding. The food was great; service was attentive and professional and the setting was tops.Special Features:I would recommend this to a friend.
- Cozy eleganceGOODSTUFFVIPDined on 6/6/2014This place has very cozy booths, great for a first date or quiet dinner. Food is always great the service is wonderful. They have very good signature drinks and a great wine list.Special Features:I would recommend this to a friend.
- The following 351 reviews are from the Millesime reviews archive.
- We loved itHotCoupleDined on 5/30/2014We enjoyed the tuna appetizer and the french fries. The service was terrific. For once the tables were not jam-packed right next to eat other. We could actually move comfortably and didn't have to shout at each other to be heard.Special Features:
- BrunchBrunchgirlsDined on 5/18/2014Loved this! Food was delicious, Sangira was AMAZING, and I love the ambiance of the place. My group was so happy I picked it for brunch.Special Features:I would recommend this to a friend.
- disappointingOpenTable Diner Since 2011Dined on 5/11/2014Beautiful setting, brunch punch great very slow inattentive service, portions small. I ordered sausage and eggs, the eggs were the consistency of plastic. Would give it one more try and sit near the barSpecial Features:
- Food great, service meh (at best)ChampagnetasteVIPDined on 5/11/2014Went for Mother's Day that at my request. Restaurant was basically empty. We were seated at a lovely table overlooking the hotel lobby. We sat, and we sat, and we sat and then someone brought us water. Eventually our waitress sauntered over. We ordered a glass of rose sparkling & 2 iced teas. Took forever. Maybe she was annoyed because we were ordering ala carte rather than the Punch Brunch?Ordered food immediately. Sparkling was flat-I took it to the bar for a replacement. Food came out in a timely manner delivered by efficient runners- fantastic. I was disappointed in the lackluster, unenthusiastic, completely bored server. Too bad. Maybe we will try it again but will all the restaurants in NY . . . we will see.Special Features:
- Punch BrunchOpenTable Diner Since 2014Dined on 5/3/2014Although the Brunch menu had changed slightly from what was advertised online with slightly different food options and a slightly mor expensive price I would highly recommend Millesime. The food and punch was great and the servers were very friendly.Special Features:I would recommend this to a friend.
- Pleasantly surprisedBruceVIPDined on 4/18/2014Not much on atmosphere, and I didn't realize it was a "hotel restaurant" but I have to say the food quality was excellent. The halibut I had was prepared about as good as I have ever had. Each of our dishes (& courses) did not dissapoint. Wine list was short but ample & fairly priced. Glad I tried!I would recommend this to a friend.
- DennisVIPDined on 4/16/2014Enjoyed the meal and our waiter was a gem. Get a seat away from the bar as it can get a bit loud if you have the young crown having fun.Special Features:
- Favorite brunch spotBGallDined on 4/12/2014A friend and I were looking for a fun spot to have bottomless brunch and we discovered a total gem! Millesime was incredible: the food was delicious, the staff was friendly, and music was excellent. Both of us agreed this was going to be our go-to spot to take guests from out of town.Special Features:I would recommend this to a friend.
- Good but quietSls1Dined on 3/22/2014The food was very good and the server was friendly. Dinner was oddly quiet. It was nice to be able to talk to my girlfriend but didn't necessarily make for a very vibrant atmosphere. Maybe this is more of a brunch spot, I'm not sure.Special Features:I would recommend this to a friend.
- Love This PlaceNycgalVIPDined on 3/10/2014Visit at least once a month. Dollar oysters, great service, Delicious fish. Consistant delivery you can count onSpecial Features:I would recommend this to a friend.
- Came here for punch brunchOpenTable Diner Since 2010Dined on 3/9/2014Came here for punch brunch and was very happy with my experience. The food was very good and the punch was delicious. They poured prosecco into the punch which was a pleasant surprise and added some bubbly to the drinks. Overall we had a great time and highly recommend this place for a booze brunch.Special Features:
- Wonderful Brunch!olivianycDined on 3/9/2014Great brunch special and wonderful dining experience. Would recommend to anyone looking for a good brunch deal that is not crowded or noisy.Special Features:I would recommend this to a friend.
- Great Food, and great bottomlessBrunchDivaDined on 3/8/2014Great Food, and great bottomless brunch, I recommend it :-)Special Features:I would recommend this to a friend.
- Great brunchBrunchfordaysDined on 2/23/2014My friends and I had a lovely time at brunch. The unlimited brunch punch was great and the food was delicious. I highly recommend the basket of baked goods!Special Features:I would recommend this to a friend.
- Great AYCD BrunchElismithDined on 2/23/2014Gorgeous restaurant and its huge! The set-up is a little strange because getting the maitre d's attention was awkward and weird. There's no clear place of where to go when you arrive- odd entrance. However, once we were seated the waiters are pretty friendly. I was surprised when we chose the aycd punch brunch that they brought us our own individual pitcher (per person)! Awesome but I think they took it to mean to only check on the table once an hour- biggest qualm. Might have ordered more food, but it was really odd. Food was good- nothing stellar but decent. I would definitely go again because as time went on the place got busier (never full) but I definitely noticed people ordering the burger A LOT. Can't wait to try the place again!Special Features:I would recommend this to a friend.
- New York Feb 14SandyyorkerDined on 2/22/2014Great location just 7 minute walk from Empire State Building. Great food and wine. Only problem was that the live music downstairs, on this occasion, was a rock band that was way too loud. Our party couldn't hear ourselves talk and waitress couldn't hear our order. We did ask if this was usual, which we were assured was not and everyone was very apologetic but because of the noise our experience was marred.Special Features:I would recommend this to a friend.
- Punch brunch heavenCmhgVIPDined on 2/15/2014Went for Saturday punch brunch and was expecting somewhat of a rushed and maybe even rude service. But I was so pleasantly surprised. The staff was wonderful! From the hostess who passed by and smiled each time, to our waitress who was sweet and very attentive, the servers who were courteous and say and the busboys who also had a very positive attitude and were great. Overall I would love to come back for a fun breakfast that is not too loud but has fun music and sets your weekend off to a great start. The food was fine, nothing bad to complain about, but wasn't like "wow". The decor of the restaurant is very very nice. Overall I think the staff makes this place even better.Special Features:I would recommend this to a friend.
- Classic RestaurantOpenTable Diner Since 2012Dined on 2/14/2014This place is by far the most stunning place I've eaten in , in a while. It's expensive though.... 3 people x valentine day menu ( I was not aware I had to only order from this menu) 80 pp one bottle of wine (35.00) total bill $400.00... Wow!!! They did give each lady a rose and took your coat at the table but for that price tag... I can only go for extreme special events.Special Features:I would recommend this to a friend.
- BrunchDJS123VIPDined on 2/9/2014We thought we were going for a boozy brunch scene, but when we got there we were the only people in the restaurant under 50. It felt a little stuffy and was very bright. However, the food was very good (one of the best French Onion Soups I have had in NYC).Special Features:
- great findPreorAfterTheatreVIPDined on 2/7/2014Unfortunately the restaurant was almost empty, which I hope does not mean problems. It was wonderful food, wine and great service. A lovely spot. This was my first visit. I really liked it and will go back. It has original tiffany glass dome roof in area and also mosaic floors. It has lots of nooks and crannies.Special Features:I would recommend this to a friend.
- Great Brunch!!jj7madridDined on 2/2/2014Wonderful service and food. Unlimited brunch punch is the best!Special Features:I would recommend this to a friend.
- The food is always good hereSacollins982Dined on 2/1/2014The food is always good here and I would recommend punch brunch to anyone, especially the short rib sandwich. The only thing was the service. I went with a friend this past weekend and while the food came out right away, our server was running back and forth for this other large rowdy table right next to us. We were only able to get one pitcher of the delicious cranberry vodka punch, and then were told that they ran out, all while trying to get the waiters attention for another one! I was not a happy camper after that seeing as the price is fixed on "unlimited drinks". They did give us 2 mimosa each after a complaint was made, however one of the reasons I was going back was for the punch.Special Features:I would recommend this to a friend.
- Bad overallRyryanVIPDined on 1/31/2014Awful service, watered down cocktails and noise levels were ridiculously loud
- Great brunch!AchandraVIPDined on 1/25/2014For $29 each, you can have a great bunch with a punch bowl. Trust that these punch bowls pack more than you think upon first taste. Moreover, they don't taste overly alcoholic like most punches which is nice (though dangerous, but what's brunch without tons of alcohol really?). The food was good - enjoyed the eggs benedict. Would definitely go back and recommend to a friend.Special Features:I would recommend this to a friend.
- BrunchWattsDined on 1/19/2014Fantastic. The waitress was wonderful and the manager came around and asked if we were having a great time. She even apologized for the "sad" music that wasn't sad at all. I will definitely come back. It was worth $29 for the Punch Brunch.Special Features:I would recommend this to a friend.
- Lovely RestaurantcdalyDined on 1/18/2014We chose this restaurant based on their website...it looked quiet (for NY) and lovely and it was! Food was wonderful and service outstanding.Special Features:
- excellent punch brunch :)mpettVIPDined on 1/18/2014we had both punches, the food was tasty, and our server was excellent about filling up the punch again before we even asked.Special Features:I would recommend this to a friend.


text:
Find commute times to your work, school, gym and more.
exists for this email.
Signed a Lease here?
Contact PropertyCheck Availability
people have contacted since you. 13 people recently contacted.
$100 Rent.com Visa® Reward Card Eligible
Tell the leasing office you used Rent.com. If you sign a lease here, report it to us for your $100 reward card. How it works
Moving Tools
Check Availability
This will create an account with Rent.com. Email addresses are not shared with third-parties. We will give you a heads up on apartment listings via email. Privacy Policy | Terms of Use
Floor Plans (2)
- Floor Plan
- 1 bedroom
$605Check Availability
- Bed
- 1
- Bath
- 1
- Rent
- $605
- Sq Ft
- 700
- Deposit
- Call
- Check Availability
- Floor Plan
- 2 Bedroom
$715Check Availability
- Bed
- 2
- Bath
- 1
- Rent
- $715
- Sq Ft
- 900
- Deposit
- Call
- Check Availability
Prices, specials, features and availability subject to change.
Property Features
- Laundry
- Laundry Facility
- Utilities Included
- Some Paid Utilities
Units may feature
- Amenities
- Carpeting
Newly Renovated Units..Air Conditioned units, landlord paid heat..Located Minutes from Fairlane Mall, & Ford World Headquarters'
Our property is conveniently located near Freeways, shopping, restaurants, schools & hospitals The beautiful grounds feature beautiful landscaping Units include the following great amenities spacious floor plans,new solid wood oak cabinetry, new counter tops, updated dishwashers and appliances If your seeking a refreshing lifestyle with daily pleasures and conveniences, come home to the inviting atmosphere of Kirkwood House Apartment Homes.
Leasing Information
Pet policy
No Pets. Call for service animal policy.
Lease Terms: 12months. 6 months, Security Deposit is refundable if no damages. Month to Month lease availability after lease ends.
For more information, please call (313) 879-0217 (313) 879-0237 or check availability.
Office hours
Managed by
David Leader Management Company
Check Availability
Call or email the property directly:Check Availability
Ratings and Reviews
5 stars
4 stars
3 stars
2 stars
1 stars
Mary t.
It took few weeks for things that should been fix before I move in to be fix due to parts had to be order. But Read More once parts came in they fix it. Best to have things fix before you move in.
May 22, 2014
Moving Center
Get Free Moving Quotes
- Here's how it works:
- Enter your move info.
- Receive up to six quotes.
- Choose your favorite.
- Start packing.
Contact Information
Enter your contact information so moving companies can contact you with a free quote.
What's Next?
Qualified movers assess your needs and prepare an estimate. It takes about two business days.
They contact you directly to discuss their services and costs.
You choose the company that works best for you.
By submitting a full service or auto transport moving quote request, you agree to the Privacy Policy and Terms of Use of Moving.com, and that your information may be shared with moving companies in its network to provide your quote.
Your request has been successfully submitted.
You're almost home. Moving companies will reach out to you in the next few days. In the meantime, check out What You Should Know About Working With Movers or from the Rent.com Blog How to Get a Move On.
Similar Apartments in or near Detroit, MI
Maps & Neighborhood Info
6055 Southfield Fwy, Detroit MI 48228
My Commute
Edit Address
Save your commutes
Scores are compared to the national average. The higher the bar, the higher the crime risk. The lower the bar, the lower the crime risk.
near Detroit, 48228Transit