text:
#include "hw/hw.h"
#include "hw/isa/isa.h"
#include "hw/i386/pc.h"
#include "sysemu/kvm.h"
#include "hw/qdev.h"

//#define VMPORT_DEBUG

#define VMPORT_CMD_GETVERSION 0x0a
#define VMPORT_CMD_GETRAMSIZE 0x14

#define VMPORT_ENTRIES 0x2c
#define VMPORT_MAGIC   0x564D5868

#define TYPE_VMPORT "vmport"
#define VMPORT(obj) OBJECT_CHECK(VMPortState, (obj), TYPE_VMPORT)

typedef struct VMPortState
{
    ISADevice parent_obj;

    MemoryRegion io;
    VMPortReadFunc *func[VMPORT_ENTRIES];
    void *opaque[VMPORT_ENTRIES];
} VMPortState;

static VMPortState *port_state;

void vmport_register(unsigned char command, VMPortReadFunc *func, void *opaque)
{
    if (command >= VMPORT_ENTRIES)
        return;

    port_state->func[command] = func;
    port_state->opaque[command] = opaque;
}

static uint64_t vmport_ioport_read(void *opaque, hwaddr addr,
                                   unsigned size)
{
    VMPortState *s = opaque;
    CPUState *cs = current_cpu;
    X86CPU *cpu = X86_CPU(cs);
    CPUX86State *env = &cpu->env;
    unsigned char command;
    uint32_t eax;

    cpu_synchronize_state(cs);

    eax = env->regs[R_EAX];
    if (eax != VMPORT_MAGIC)
        return eax;

    command = env->regs[R_ECX];
    if (command >= VMPORT_ENTRIES)
        return eax;
    if (!s->func[command])
    {
#ifdef VMPORT_DEBUG
        fprintf(stderr, "vmport: unknown command %x\n", command);
#endif
        return eax;
    }

    return s->func[command](s->opaque[command], addr);
}

static void vmport_ioport_write(void *opaque, hwaddr addr,
                                uint64_t val, unsigned size)
{
    X86CPU *cpu = X86_CPU(current_cpu);

    cpu->env.regs[R_EAX] = vmport_ioport_read(opaque, addr, 4);
}

static uint32_t vmport_cmd_get_version(void *opaque, uint32_t addr)
{
    X86CPU *cpu = X86_CPU(current_cpu);

    cpu->env.regs[R_EBX] = VMPORT_MAGIC;
    return 6;
}

static uint32_t vmport_cmd_ram_size(void *opaque, uint32_t addr)
{
    X86CPU *cpu = X86_CPU(current_cpu);

    cpu->env.regs[R_EBX] = 0x1177;
    return ram_size;
}

/* vmmouse helpers */
void vmmouse_get_data(uint32_t *data)
{
    X86CPU *cpu = X86_CPU(current_cpu);
    CPUX86State *env = &cpu->env;

    data[0] = env->regs[R_EAX]; data[1] = env->regs[R_EBX];
    data[2] = env->regs[R_ECX]; data[3] = env->regs[R_EDX];
    data[4] = env->regs[R_ESI]; data[5] = env->regs[R_EDI];
}

void vmmouse_set_data(const uint32_t *data)
{
    X86CPU *cpu = X86_CPU(current_cpu);
    CPUX86State *env = &cpu->env;

    env->regs[R_EAX] = data[0]; env->regs[R_EBX] = data[1];
    env->regs[R_ECX] = data[2]; env->regs[R_EDX] = data[3];
    env->regs[R_ESI] = data[4]; env->regs[R_EDI] = data[5];
}

static const MemoryRegionOps vmport_ops = {
    .read = vmport_ioport_read,
    .write = vmport_ioport_write,
    .impl = {
        .min_access_size = 4,
        .max_access_size = 4,
    },
    .endianness = DEVICE_LITTLE_ENDIAN,
};

static void vmport_realizefn(DeviceState *dev, Error **errp)
{
    ISADevice *isadev = ISA_DEVICE(dev);
    VMPortState *s = VMPORT(dev);

    memory_region_init_io(&s->io, OBJECT(s), &vmport_ops, s, "vmport", 1);
    isa_register_ioport(isadev, &s->io, 0x5658);

    port_state = s;
    /* Register some generic port commands */
    vmport_register(VMPORT_CMD_GETVERSION, vmport_cmd_get_version, NULL);
    vmport_register(VMPORT_CMD_GETRAMSIZE, vmport_cmd_ram_size, NULL);
}

static void vmport_class_initfn(ObjectClass *klass, void *data)
{
    DeviceClass *dc = DEVICE_CLASS(klass);

    dc->realize = vmport_realizefn;
    /* Reason: realize sets global port_state */
    dc->cannot_instantiate_with_device_add_yet = true;
}

static const TypeInfo vmport_info = {
    .name          = TYPE_VMPORT,
    .parent        = TYPE_ISA_DEVICE,
    .instance_size = sizeof(VMPortState),
    .class_init    = vmport_class_initfn,
};

static void vmport_register_types(void)
{
    type_register_static(&vmport_info);
}

type_init(vmport_register_types)

redpajama_set_name: RedPajamaGithub


A passionate, die-hard, dedicated hundreds of thousands of blue and orange bleeding football fanatics that love their Denver Broncos.
But while Broncos Country has gone strong for years and years, maybe a slight name change could be in the works with Brock Osweiler now the lead man in Denver?
Denver is no stranger towards creative and fun billboards in the past with a Broncos theme to them and this is just the latest, showing the graphic of Osweiler and the words 'This Is Brocko Country,' encouraging the team to recover the Mile High magic that it once sprinkled on Sunday's upon Denver.
While Broncos Country has proven to stay strong, even in the toughest of times, "Brocko Country" gets a new jumpstart, as Osweiler and the Broncos travel to Philadelphia to play the Eagles on Sunday.


Not all projects and causes of disorganization are the same, some simple and part of the everyday and others, well bigger and more emotional. In today's Tuesday tip, Melissa shares insights and wisdom on the importance of being gentle and compassionate with yourself as you go through the organizing process.
In today's Tuesday tip, Living Peace professional organizer, Gabby Burgman gives us the inside scoop and points out the Do's, Don'ts and How-to's for storing photos in picture frames.
In today's Tuesday tip, continuing in her series on planners, Sara discusses the Self Journal and it's many benefits in using to identify & meet your short-term and long-term goals, set intentions and create your daily plan. BestSelf Co. offers a pdf version. Give it a try!
In today's Tuesday tip, Melissa Belliard, Living Peace professional organizer talks about using counter space and organizing a corner on your counter for use according to need and frequently used. Taking her suggestion and applying your specific need, you can have a little corner that works for you!
In today's Tuesday tip, Sara Valverde continues her series on using planners for goal setting, planning, and intention setting. Today she highlights the Desire Map Planner and mentions how it could be a benefit not only to enhancing your life but a great tool in your efforts towards organizing and ADD.
In today's Tuesday tip, Gabriela Burgman, Living Peace professional organizer shares some pointers and ideas to get a jump start on your holiday photo gift giving.


Being deployed is the ultimate commitment that members of the armed services offer. Such deployments can occur many times over the course of a career and while it may bring anxiety to the service member and their family, there are some real financial benefits to a deployment.
This is a period of time where you have the ability to maximize your pay and minimize expenses.
Individuals can reduce discretionary income by up to 90% while being deployed. Those with families back in the states will not enjoy such a dramatic reduction in costs but can still strive for a significant reduction in living expenses.
During a deployment all meals are provided, and depending on the location of your deployment, there is usually free entertainment provided on base for service members while away from home and family. It is possible to go for weeks without ever spending money, if you pay attention and look for opportunities to be more frugal. There are local clubs, restaurants and bars that you can spend money at, but with the amenities provided, many time these costs are not necessary.
Other places to save include dropping the insurance on the car you drive, suspending services like your cell phone and maybe even cable or internet, depending on your family's needs. If needed, you are able to end a rental lease and put things in storage.
The SCRA (Servicemembers Civil Relief Act) also grants you the ability to reduce interest rates to 6% on everything from credit cards to personal loans. If your current rates are higher, communicate with your creditors with a phone call and submission of corresponding documentation of deployment. This will reduce the rates, thus reducing monthly costs.
These additional stipends can add up to hundreds of extra dollars a month. Add with the added benefit of tax free income if you are serving in designated combat zones, this could add another 15% to 20% increase in your income.
1) Pay down debt. Use this opportunity to reduce debt balances through extra payments.
2) Start or add to a retirement fund. Whether you open or contribute to a Roth IRA or a Roth TSP, set aside money for retirement that will grow tax free. Career military members also have the benefit of a pension, which when added to IRA balances can provide a lifetime of financial security.
3) Save for emergencies in a rainy day fund. Financial advisors recommend having 6 months set aside in short term investments that you can gain access to in the event of an emergency.
4) Save to purchase a home. While military benefits can offer VA loans with no money down, closing costs can still be several thousand dollars. Having a down payment may also provide a loan approval for a higher loan amount, if you choose.
5) Start a College Fund for your kids. College funds for children is another good use of additional funds once the first three items have been established.
Deployment provides the opportunity to take additional funds and using them to contribute towards building your financial security.


text:
February UTA News & Notes
By / Published January 29, 2010
MOFFETT FEDERAL AIRFIELD, Calif. -- This is a compilation of news bits Airmen and families can use to prepare for the upcoming UTA weekend.
Welcome New 129th Members!
Staff Sgt. Christina Andrews, 129th RQS
Staff Sgt. Douglas Brock, 129th LRS
Staff Sgt. Ryan Camp, 129th MXS
Staff Sgt. Steven Carroll, 129th MXS
Staff Sgt. Eileen Fair, 129th LRS
Staff Sgt. Mark Randolph Stiers, 129th AMXS
Senior Airman Keith Robert King, 129th MXS
Airman 1st Class Jordan Louis Amaral, 129th FSS
Airman 1st Class Rachel Ames, 129th LRS
Airman 1st Class Nicholas Anchondo, 129th MXS
Airman 1st Class Brenda Gonzalez, 129th RQS
Airman 1st Class Erin Mosakewicz, 129th AMXS
Airman 1st Class Juan Angel Ortiz, 129 MXS
Airman 1st Class Brian Pingel, 129th MXS
Airman 1st Class Allen Ray Sumabat Samson, 129th AMXS
Airman 1st Class Sara Van Til, 129th MDG
The Following Members Were Recently Promoted To Their Current Rank. Congratulations!
Tech. Sgt. Susan Avalos, 129th CEF
Tech. Sgt. Roderick Cabugao, 129th MDG
Tech. Sgt. Theresa Hechler, 129th MDG
Tech. Sgt. Emmanuel Matsamura, 129th OSF
Tech. Sgt. Michael Porter, 129th RQS
Tech. Sgt. Joseph Saia, 131st RQS
Staff Sgt. Robert Gardner, 129th MXS
Staff Sgt. Anhtoan Nguyen, 129th AMXS
Staff Sgt. Jared Robinson, 129th MXS
Staff Sgt. Derrick Starkel, 129th MDG
The Following Members Have Retired, Separated, Or Transferred To Another Unit. We Wish Them Well And Thank Them For Their Service.
Lt. Col. John Gammal, 129th RQS
Lt. Col. James Anderson, 130th RQS
Master Sgt. Roberto Dizon, 129th SFS
Staff Sgt. Jorge Cruz, 561st Band
Staff Sgt. Taylor Vihn, 129th SFS
Senior Airman Cesar Contreras, 129th FSF
Senior Airman Sarah Lewis, 129th RQS
2010 UTA Schedule
October 2-3
December 4-5
Religious Services Schedule
Services take place every Sunday morning of UTA drill weekend in Building 650
Catholic Mass: 10:15-10:45
Non-denominational services: 11:00 - 11:30
129th RQW Prayer Breakfast
Mar 7, 2010 (Sunday of UTA drill weekend) 11:30 - 12:30 in Building 650,maintenance conference room
Anheuser-Busch Offers Free Theme Park Admission
"Here's to the Heroes," a program sponsored by Anheuser-Busch, was launched in February 2005 to celebrate the service of military men and women and the sacrifices made by their families. The program has extended free admission to SeaWorld and Busch Gardens through 2010.
Free admission is for any active duty, active reserve, ready reserve service member or National Guardsman representing any of the five service branches and as many as three direct dependents. All servicemembers need do is register online at http://www.herosalute.com or in the entrance plaza of a participating park, and show a Department of Defense photo identification.
Each pass is valid for a one-day admission per person per year to five of Anheuser-Busch's seven theme parks. Visitors may choose Sea World Orlando, San Diego or San Antonio; Busch Gardens Tampa or Williamsburg; Pennsylvania's Sesame Place; Florida's Adventure Island; or Virginia's Water Country USA. Discovery Cove and Aquatica parks are not included in this offer.
Sea World Orlando, Busch Gardens Tampa and SeaWorld San Diego operate year round. The company's remaining parks are seasonal, with varying opening dates this spring. Each park's operating schedule is available at http://www.seaworld.com, http://www.buschgardens.com/bg, http://www.sesameplace.com/sesame2, http://adventureisland.com/Ai/default.aspx, and http://watercountryusa.com/wc/.
Free SF Giants Tours Available To Servicemembers
All servicemembers and dependants interested in getting a behind-the-scenes look at the San Francisco Giants can show their military ID card at the Giants Dugout Store at AT&T Park and receive one complimentary ticket to the 10:30 am or 12:30 pm public tour (a $12.50 value free!). The tour takes you where the players go, visiting a dugout, the field and the Visitors' Clubhouse. Tours are available almost every day all year round, except when Giants play afternoon games and during large public events. Tours last approximately 1 hour and 30 minutes. For more information, please call 415-972-2400.
Operation Welcome Home Offers Job Opportunities to Veterans
California veterans have sacrificed much and served our country well, protecting the freedoms we all enjoy. To help our veterans' transition to civilian life, after a deployment or once their military service ends, Governor Arnold Schwarzenegger recently launched an important new program: Operation Welcome Home.
As part of the Operation Welcome Home initiative, the Employment Development Department (EDD) plans to hire 325 limited-term employees (targeting recently released veterans) beginning January 2010. Working in coordination with EDD's veteran representatives, these new CALVET CORPS hires will be trained and deployed throughout the state to help redeploying or discharged veterans learn about the benefits and services available to successfully enter the civilian workforce.
CALVET CORPS will assist veterans in filing and certifying for Unemployment Insurance Program benefits, if eligible, to ensure continuity of income as they transition into employment. Additionally, CALVET CORPS will work closely with returning veterans to assess their needs for other benefits they may be entitled to, such as health care, education, disability compensation, and connect them with the appropriate service providers.
If you are interested in participating in the veteran outreach effort, have completed 60 semester units or 90 quarter units of college course work, and are an officer or non-commissioned officer, we encourage you to apply for one of these positions (salary range: $2817.00 per month plus medical benefits).
To learn more about these limited-term positions with the CALVET CORPS, please call Captain Peter Lewis at 916-806-1660 or email at peter.lewis@us.army.mil. In addition, please see the visit http://www.cdva.ca.gov/VetService/DocsAndImages/Vet%20Newsletter2.pdf to view the California Department of Veterans Affairs' Veterans Services Newsletter for application instructions.
Santa Clara County Offers Free Park Passes to E-4 and Below
In 2007 the Santa Clara County Board of Supervisors approved a program spearheaded by the Santa Clara County National Guard Veterans Affairs Commission that grants Annual Vehicle Entry Passes to California National Guard members in pay grades E-4 or below for parks operated by Santa Clara County.
There is a one-time administrative fee of $4. Servicemembers must reside in Santa Clara County and each family may receive one pass per year. Download the application at http://www.sccgov.org/SCC/docs%2FParks%20and%20Recreation%2C%20Department%20of%20%28DEP%29%2Fattachments%2FAnnual_Pass_for_Military_Form_8.pdf.
Because verification of eligibility status must be made, passes can only be obtained through the Parks Department Administration Office at 298 Garden Hill Drive, Los Gatos 95032.
Family Readiness Corner
Scholarships For Military Children
Applications for the 2010 Scholarships for Military Children Program are available in commissaries worldwide and online at http://www.commissaries.com. Only dependent, unmarried children, younger than the age of 21 (age 23 if enrolled as a full- time student at a college or university) of active duty personnel, reserve, guard and retired military members, survivors of servicemembers who died while on active duty, or survivors of individuals who died while receiving retired pay from the military may apply for a scholarship. The applicant must be planning to attend, or already be attending, an accredited college or university full time in the fall of 2010, or be enrolled in a program of studies designed to transfer directly into a four-year program. Applicants should prepare to submit an essay on the following topic: "You can travel back in time; however, you cannot change events. What point in history would you visit, and why?" Applications must be turned in to a commissary by close of business Feb. 17, 2010. At least one scholarship will be awarded at every store location with qualified applicants.
Military Onesource Webinar For Special Needs Families
Having a child with special health and/or educational needs can be especially challenging for military families. Services for special needs children vary from state to state and knowing where to go for high-quality, current information is critical.
Isabel Hodge from the Office of the Deputy Under Secretary of Defense for Military Community and Family Policy will provide a comprehensive overview of government and nongovernment resources useful to military special-needs families. Tune in Tuesday, Feb. 23 at 9 a.m. and Thursday, Feb. 25 at 3 p.m. to discuss locating local, state and community resources, government websites, evaluating online resources, and connecting with other families. Registration is currently open, to view more information and sign up, visit http://www.militaryonesource.com/Default.aspx?grm2catid=11&tabid=238
Podcast Series Addresses Post-Deployment Challenges
Servicemembers and their families can get help coping with post-deployment stress through a new series of podcasts profiling the personal stories of those who have lived it.
"Combat brings individuals face-to-face with the harshest demands imaginable. In fact, it's impossible to be unaffected by these experiences. Stress reactions, family and relationship difficulties, and work conflicts can affect an individual's emotional well being." These words set the stage for the premiere episode of "There and Back," an audio podcast series created by Web managers for afterdeployment.org, a Defense Department Web site developed by experts at the National Center for Telehealth and Technology and the Defense Centers of Excellence for Psychological Health and Traumatic Brain Injury.
The podcast series is directed to the entire military community to help manage some of the challenges faced by servicemembers and their families following a deployment, defense officials said. "Learning About Depression," the initial ten minute podcast in the "There and Back" series is a tapestry woven of education, encouragement and emotional intimacy. Dr. Jenifer Alford, a clinical psychologist and afterdeployment.org's functional director, guides listeners through the world of depression. "Depression can happen to just about anyone, given the right set of circumstances," Doctor Alford says. "Taking no action, or believing that time will heal the depression, could result in the depression getting worse or lasting longer."
The podcast is punctuated by servicemembers and their families telling their personal stories, allowing listeners to know that they are not alone in their struggles. Listen to "There and Back: Learning about Depression," or visit the Podcasts section of the DCoE Web site. To receive future episodes of "There and Back," subscribe free at iTunes.com. Upcoming episodes will discuss post-traumatic stress, anger management, sleep problems, and relationship issues.
Family Readiness Course
This course provides the essentials on establishing and maintaining a viable Family Readiness system in California National Guard units. Suggested attendees are unit volunteers, military points of contact for Family Readiness, commanders and other leaders. Topics include family program essentials, effective and legal fundraising, deployments, and more. The course will be held March 20-21, 2010 in Petaluma, Calif. For more information, contact June Sato at 916)-361-4957 or register at http://www.prestoregister.com/cgi-bin/order.pl?ref=Readyfamilies&fm=1.

redpajama_set_name: RedPajamaCommonCrawl


You have provided a nice reader of important texts from the summer as well as a good overview of major movements protecting public education as democratic spaces. I have issue with a few assertions made (because they don't regret my experience as a former charter starter/operator), but overall, you have effectively captured core concerns of the reform movement…and I appreciate seeing them all in one space.
That's a very revealing typo/misspelling in your second sentence.
You're absolutely right that charter schools are something to "regret." Hopefully, in the not-too-distant future, voters and taxpayers will also come to regret this parasitic and predatory "movement," and act accordingly.
Wow. I forgot about the anger and toxicity that exist on both sides of the conversation.
Please don't play the ingenue: when so-called education reformers use charter schools as part of their campaign to scapegoat teachers, bust unions, close and/or privatize existing public schools, and replace them with "No Excuses" apartheid boot camps, yes, people get angry.
Well clearly Daniel, this is no place for me. I didn't respond to your post to get into arguing and name calling.
I think this often a very difficult discussion for people to have across "sides" and sometimes we exaggerate the degree to which there are sides — please don't misunderstand me, there are some rapacious villains who show nothing but contempt for fully public schools, but there are many many others who do not fit comfortably into whatever basket someone like Eva Moskowitz belongs.
1) With extremely loose or non-existent regulations or oversight, it has attracted a disturbing number of outright fraudsters.
2) Even without fraud, the attraction of real estate plays and other investment vehicles make it easy for the financial sector to promote charter proliferation far beyond what can be accommodated.
3) Many of the "high achieving" charters are not being honest about HOW they get those results – especially the rigid discipline charters that suspend so many students until they leave. Many of these operations will not even admit how much they rely upon the fully public schools to sustain them by taking the students they will not accommodate.
4) Even if these matters were not prevalent, many school funding schemes leave host districts with serious problems when they get too many charter schools — resource allocation has to go up when you run a parallel, redundant, system with its own administrative costs that are often carried by the district. States that allow charter growth think they can get both systems for no more money and that is objectively untrue.
THAT said: charters are a very broad sector with 6,700 schools in operation. That leaves a lot of room for good people running good schools trying to serve needs and hopefully cooperating with host districts. I've seen schools like that. I know Julian Vasquez Heilig has written about some of them (they tend to be embedded in community concerns). I am unfamiliar with Dr. Dye's previous work but she has never given me reason to doubt her sincerity or integrity. I cannot let this conversation pass without saying that.
Here in Massachusetts, the New England Conference of the NAACP had the temerity to award Barbara Madeloni, President of the MA Teachers Association, the Chaney Goodman Schwerner Award.
Rather destroys the narrative DFER and their ilk keep trying to promote.
Daniel, I don't see how to delete myself from this thread. Please be so kind and delete for me. I deal with enough hate ("anger") as a black woman and don't need to invite more.
Dr. Dye, I apologize for the nature of the discourse and would like to invite you to remain. I have not had a chance to respond appropriately but will now do so. We do not follow each other's work closely, but I have never had reason to question your integrity or sincerity.


It's an email that many on Wall Street have received countless times by now, forwarded around from one bank to another, often with some minor details changed. It tells the story of an intern at a bank who emails his bosses about needing to take a day off work in October to take care of some family business in New York City. But his bosses discover a picture of him at a party in Worcester, Massachusetts, uncovering his duplicity. Worse, his boss attach ed the picture to a response email to him and BCC the entire North American staff of the bank. And, even worse, in the picture the intern—a young man named Kevin—is dressed a fairy—complete with green wings and a star-tipped wand. "Nice wand," the boss adds in his email.
But is it real? We received the email many times. Sometimes Kevin was an intern at Goldman Sachs. Once at Bear Stearns. Most frequently, however, he worked for Anglo Irish Bank, which has offices in Boston. The confused details—including a Yankee cap supposedly at a Worcester party—left an air of implausibility about the email. And, what's more, it seemed almost too perfect to be true.
Surprisingly, the email seems to be authentic. Yesterday we spoke to a man named Paul Davies—supposedly the name of Fairy Kevin's boss—at Anglo Irish who seemed not at all surprised by the story, or that his name was attached to it. He declined to comment on the story, and gave us the number of his press relations person. This is fairly typical behavior in well-trained bankers but there was something about his manner which suggested that—however improbably—this story actual might have some truth in it. Our suspicions were further raised when the spokesperson for Anglo Irish never returned our phone call.
What inspired us to follow-up on this story—rather than just ignore it—is that ValleyWag had actually decided to run with it. While we have no insight into the fact checking apparatus at ValleyWag or its parent, Gawker Media, we assume they don't just print these things willy-nilly. We continue to investigate but aren't drawing any firm conclusions yet. But we're less skeptical this afternoon than we were when we started.


I'd wear something smart, unless you're being observed doing the job which you'd wear the uniform for.
I work in NHS and it's definitely not allowed to wear uniform even for internal. May not be all jobs in NHS though.
Depends on the job, I too work for the NHS and on 1 occasion I wore my uniform for the interview (informal, internal type promotion) and on another occasion I changed beforehand. Both interviews went fine and were successful.
If in doubt perhaps drop whoever is listed as a contact a message to double check?


Get full use out of your class or work space with this highly functional and durable art center for two.
Your children will love time at this just-right-sized paint and art workplace. The Jonti-Craft® 2 Station Art Center is build solidly with standard hardboard easels that provide two work independent work areas. The easels can be easily removed and can be upgraded with optional acrylic, chalkboard or the popular Write-and-Write panels. The functional design provides great, easily accessible storage space. The included and portable clips and paint trays make it fun and easy for young folk to keep everything they need handy. This art center is another fine product from the highly respected Jonti-Craft, the company that has been providing quality wood art and crafts items for more than 30 years. The innovative a products from Jonti-Craft are designed and made in the USA and made from premium materials to ensure long and reliable use.


JP Gray is part of the SThree Group, a global recruitment organisation specialising in the STEM (Science, Technology, Engineering and Mathematics) industries. Our purpose is to bring skilled people together to build the future.
We deliver our services through 10 specialist brands, one of which is JP Gray. We have over 30 years of experience and operate in 16 countries with a network of 2,800+ employees. Would you like to be one of them?
We offer a number of opportunities to get involved with our CSR initiatives, including two paid volunteering days per year to share our skills and experience in the community.