text:
Posted on 13th June 2018 at 12:22 pm.
Mark Rasmussen and the Scottish Ballet
Harlequin Floors' Mark Rasmussen is a familiar and friendly face at global performing arts events where he regularly lectures and advises architects, school administrators, local government, unions and teachers about creating a safe environment for dance and performing arts.
In his article below for SiDI, he answers some key questions and outlines the advice he gives to the dance world about the important role the floor has in contributing to safe practice.
Is it difficult to lecture and advise when you're also representing a commercial organisation?
Not at all, Harlequin work closely with our friends such as you guys at Safe in Dance International, One Dance UK's Healthier Dancer team and the wider international dancers' health community to ensure that the advice we give is backed both by the latest research and, just as important, supported by health professionals who look after the needs of injured artists.
It's also vital that our advice is neutral in tone as the people I'm presenting to are professionals who want information, not a sales pitch! It's my job, even in a short presentation, to deliver some important "take home points" which enables people to ask the right questions when they find themselves in the position of specifying a space for dance, drama or musical theatre.
What sort of "take home points" do you give?
Initially, I point out the requirements for a space focusing on everything from ceiling height, barres, mirrors (including the arguments for and against), suitable sound systems and then, not surprisingly, floors. Various studies have shown that the wrong kind of floor is an injury risk and so, with current research highlighting that the majority of dance injuries are from overuse, a floor providing the right amount of force reduction is a vital contribution to the long-term health of the performer, student or teacher.
We put great emphasis on consistent force reduction rather the "trampoline effect". Force reduction is key and we work from around 60% up to 70%. If you imagine how often a dancer will jump (or otherwise impact the floor) in their career, that level of force reduction will reduce the risk of impact injuries such as shin splints and stress fractures.
My second point is that floors for performing arts, particularly dance, and floors designed for sport, are not the same. Sadly, some architects, school managers and producers don't know there are big differences between a sprung floor for performing arts and, say, a basketball court. This problem can be even harder to address when some floor manufacturers will confuse the market by taking products "suitable for sport", and then, almost as an afterthought, adding "and dance".
What isthe difference between sports floors and floors for dance?
In a nutshell, floors for sport tend to be harder or stiffer than floors for dance. They need to be because sports floors are designed to give adequate "ball bounce", in fact "ball bounce" is one of the standard tests for a sports floor, a requirement that is irrelevant to dancers and performers.
According to Sport England surfaces designed for sports can be found with force reduction as little as 25% or less and still be considered suitable for single sports applications (e.g. Tennis and Bowls) although such hard floors do fall outside the standard which starts at >25%.
Even when a floor designed for sports is properly sprung, DIN standards start at around 46%, which is still too hard compared to the softer 60-70% I mentioned earlier.
In sport, the impact of harder or stiffer floors is offset because most users of sports floors are supported by cushioned footwear whilst performers regularly rehearse and perform in bare feet, socks, ballet or character shoes which don't offer any protection at all.
What other points do you make when you present?
A floor needs to be consistent with a force reduction variation of no more than +/- 5%. Dr Luke Hopper and his colleagues have researched force reduction variation – he tested a stage floor where a company was experiencing greater than usual injuries and found that, depending on where you landed on the stage, the force reduction could vary between slightly above 20% to around 60%. "This creates a problem biomechanically for the dancer" he explains, because the performer is pre-stressing their body to what they expect the surface to be". I like to use the analogy of what happens when you land and you were expecting feathers and hitting concrete instead, which will send the shock of impact through your lower body.
Finally, I help to explain what the different types of sprung floors and vinyl performance surfaces are, and why you would specify one over another. For example, some vinyl surfaces have a cushioned foam backing which makes the floor more forgiving to the elbows and knees of contemporary or street dancers with their rigorous floor work, but that same cushioning will dampen the sound if used for percussive dance such as tap, flamenco and Irish dance.
Classical dancers tend to divide between the two surfaces with some preferring a cushioned surface and some preferring a floor without so we encourage companies to either test a sample first or visit some of our previous installations.
For further information, you can connect with Mark on LinkedIn www.linkedin.com/in/mark-rasmussen-ukor find details of your local team at www.harlequinfloors.com
https://www.sportengland.org/media/4553/floors-for-indoor-sports.pdf
Hopper, L.S., Allen, N., Wyon, M., Alderson, J.A., Elliot, B.C. & Ackland, T.R. (2014). Dance floor mechanical properties and dancer injuries in a touring professional ballet company. J Sci Med Sp, Jan, 17 (1), 29-33.


text:
typedef void(^TestCallback)(NSArray* event);

@interface TestDispatcher : NSObject <ADDispatcher>
{
    TestCallback _testCallback;
}

- (void)setTestCallback:(TestCallback)callback;
@end

@implementation TestDispatcher

- (void)setTestCallback:(TestCallback)callback
{
    _testCallback = callback;
}

- (void)dispatch:(NSArray*)event
{
    // call _testCallback when it receives telemetry event
    // this is for the purpose of unit test
    if (_testCallback)
    {
        _testCallback(event);
    }
}

@end

@interface ADTelemetryTests : XCTestCase

@end

@implementation ADTelemetryTests

- (void)setUp {
    [super setUp];
}

- (void)tearDown {
    [super tearDown];
}

- (void)testDefaultEventProperties {
    // new a dispatcher
    TestDispatcher* dispatcher = [TestDispatcher new];
    NSMutableArray* receivedEvents = [NSMutableArray new];

    // the dispatcher will store the telemetry events it receives
    [dispatcher setTestCallback:^(NSArray* event)
    {
        [receivedEvents addObject:event];
    }];

    // register the dispatcher
    [[ADTelemetry getInstance] registerDispatcher:dispatcher aggregationRequired:NO];

    // generate telemetry event
    NSString* requestId = [[ADTelemetry getInstance] registerNewRequest];
    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent"]];

    [[ADTelemetry getInstance] flush];

    // there should be 1 telemetry event recorded as we only generated one above
    XCTAssertEqual([receivedEvents count], 1);

    // make sure the default properties are recorded in the telemetry event,
    // i.e. sdk_id, sdk_version, device_id, device_name
    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"sdk_id"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"sdk_id"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"sdk_version"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"sdk_version"], 1);
#if TARGET_OS_IPHONE
    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"device_id"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"device_id"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"device_name"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"device_name"], 1);
#endif
    // application_name, application_version are also default properties,
    // but they are not available in unit test framework, so we omit them here

}

- (void)testSequentialEvents {
    // new a dispatcher
    TestDispatcher* dispatcher = [TestDispatcher new];
    NSMutableArray* receivedEvents = [NSMutableArray new];

    // the dispatcher will store the telemetry events it receives
    [dispatcher setTestCallback:^(NSArray* event)
     {
         [receivedEvents addObject:event];
     }];

    // register the dispatcher
    [[ADTelemetry getInstance] registerDispatcher:dispatcher aggregationRequired:NO];

    // generate telemetry event 1
    NSString* requestId = [[ADTelemetry getInstance] registerNewRequest];
    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent1"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent1"]];

    // generate telemetry event 2
    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent2"];
    ADDefaultEvent* event2 = [[ADDefaultEvent alloc] initWithName:@"testEvent2"];
    [event2 setProperty:@"customized_property" value:@"customized_value"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:event2];

    [[ADTelemetry getInstance] flush];

    // there should be 2 telemetry events recorded as we generated two
    XCTAssertEqual([receivedEvents count], 2);

    // make sure the 1st event has an event_name, start_time and stop_time
    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"event_name"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"event_name"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"start_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"start_time"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"stop_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"stop_time"], 1);

    // make sure the 2nd event has customized_property, event_name, start_time and stop_time
    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents objectAtIndex:1]
                                  propertyName:@"customized_property"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:1]
                             propertyName:@"customized_property"], 1);
    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"event_name"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"event_name"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"start_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"start_time"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"stop_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"stop_time"], 1);

}

- (void)testSequentialEventsWithAggregation {
    // new a dispatcher
    TestDispatcher* dispatcher = [TestDispatcher new];
    NSMutableArray* receivedEvents = [NSMutableArray new];

    // the dispatcher will store the telemetry events it receives
    [dispatcher setTestCallback:^(NSArray* event)
     {
         [receivedEvents addObject:event];
     }];

    // register the dispatcher with aggregation
    [[ADTelemetry getInstance] registerDispatcher:dispatcher aggregationRequired:YES];

    // generate telemetry event 1
    NSString* requestId = [[ADTelemetry getInstance] registerNewRequest];
    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent1"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent1"]];

    // generate telemetry event 2
    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent2"];
    ADDefaultEvent* event2 = [[ADDefaultEvent alloc] initWithName:@"testEvent2"];
    [event2 setProperty:@"customized_property" value:@"customized_value"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:event2];

    [[ADTelemetry getInstance] flush];

    // there should be 1 telemetry event recorded as aggregation flag is on
    XCTAssertEqual([receivedEvents count], 1);

    // make sure the aggregated event has 2 event_name, start_time and stop_time
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"event_name"], 2);

    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"start_time"], 2);

    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"stop_time"], 2);

    // the aggregated event should have 1 customized_property
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"customized_property"], 1);

}

- (void)testNestedEvents {
    // new a dispatcher
    TestDispatcher* dispatcher = [TestDispatcher new];
    NSMutableArray* receivedEvents = [NSMutableArray new];

    // the dispatcher will store the telemetry events it receives
    [dispatcher setTestCallback:^(NSArray* event)
     {
         [receivedEvents addObject:event];
     }];

    // register the dispatcher
    [[ADTelemetry getInstance] registerDispatcher:dispatcher aggregationRequired:NO];

    // generate telemetry event1 nested with event2
    NSString* requestId = [[ADTelemetry getInstance] registerNewRequest];
    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent1"];

    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent2"];
    ADDefaultEvent* event2 = [[ADDefaultEvent alloc] initWithName:@"testEvent2"];
    [event2 setProperty:@"customized_property" value:@"customized_value"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:event2];

    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent1"]];

    [[ADTelemetry getInstance] flush];

    // there should be 2 telemetry events recorded as we generated two
    XCTAssertEqual([receivedEvents count], 2);

    // the first event recorded is event2
    // make sure it has customized_property, event_name, start_time and stop_time
    XCTAssertTrue([[self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"event_name"] isEqualToString:@"testEvent2"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"event_name"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"customized_property"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"customized_property"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"start_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"start_time"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"stop_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"stop_time"], 1);

    // the second event recorded is event1
    // make sure it has event_name, start_time and stop_time
    XCTAssertTrue([[self getPropertyFromEvent:[receivedEvents objectAtIndex:1]
                                  propertyName:@"event_name"] isEqualToString:@"testEvent1"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:1]
                             propertyName:@"event_name"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents objectAtIndex:1]
                                  propertyName:@"start_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:1]
                             propertyName:@"start_time"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents objectAtIndex:1]
                                  propertyName:@"stop_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:1]
                             propertyName:@"stop_time"], 1);

}

- (void)testNestedEventsWithAggregation {
    // new a dispatcher
    TestDispatcher* dispatcher = [TestDispatcher new];
    NSMutableArray* receivedEvents = [NSMutableArray new];

    // the dispatcher will store the telemetry events it receives
    [dispatcher setTestCallback:^(NSArray* event)
     {
         [receivedEvents addObject:event];
     }];

    // register the dispatcher with aggregation
    [[ADTelemetry getInstance] registerDispatcher:dispatcher aggregationRequired:YES];

    // generate telemetry event1 nested with event2
    NSString* requestId = [[ADTelemetry getInstance] registerNewRequest];
    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent1"];

    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent2"];
    ADDefaultEvent* event2 = [[ADDefaultEvent alloc] initWithName:@"testEvent2"];
    [event2 setProperty:@"customized_property" value:@"customized_value"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:event2];

    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent1"]];

    [[ADTelemetry getInstance] flush];

    // there should be 1 telemetry event recorded as aggregation flag is ON
    XCTAssertEqual([receivedEvents count], 1);

    // make sure there is one customized_property, two event_name, start_time and stop_time
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"customized_property"], 1);

    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"event_name"], 2);

    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"start_time"], 2);

    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"stop_time"], 2);
}

- (void)testComplexEvents {
    // new a dispatcher
    TestDispatcher* dispatcher = [TestDispatcher new];
    NSMutableArray* receivedEvents = [NSMutableArray new];

    // the dispatcher will store the telemetry events it receives
    [dispatcher setTestCallback:^(NSArray* event)
     {
         [receivedEvents addObject:event];
     }];

    // register the dispatcher
    [[ADTelemetry getInstance] registerDispatcher:dispatcher aggregationRequired:NO];

    // generate telemetry event1 nested with event2
    NSString* requestId = [[ADTelemetry getInstance] registerNewRequest];
    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent1"];

    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent2"];

    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent3"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent3"]];

    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent2"]];

    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent1"]];

    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent4"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent4"]];

    [[ADTelemetry getInstance] flush];

    // there should be 4 telemetry events recorded as we generated four
    XCTAssertEqual([receivedEvents count], 4);

    // the first event recorded is event3
    XCTAssertTrue([[self getPropertyFromEvent:[receivedEvents firstObject]
                                 propertyName:@"event_name"] isEqualToString:@"testEvent3"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"event_name"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"start_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"start_time"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents firstObject]
                                  propertyName:@"stop_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"stop_time"], 1);

    // the second event recorded is event2
    XCTAssertTrue([[self getPropertyFromEvent:[receivedEvents objectAtIndex:1]
                                 propertyName:@"event_name"] isEqualToString:@"testEvent2"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:1]
                             propertyName:@"event_name"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents objectAtIndex:1]
                                  propertyName:@"start_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:1]
                             propertyName:@"start_time"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents objectAtIndex:1]
                                  propertyName:@"stop_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:1]
                             propertyName:@"stop_time"], 1);

    // the third event recorded is event1
    XCTAssertTrue([[self getPropertyFromEvent:[receivedEvents objectAtIndex:2]
                                 propertyName:@"event_name"] isEqualToString:@"testEvent1"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:2]
                             propertyName:@"event_name"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents objectAtIndex:2]
                                  propertyName:@"start_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:2]
                             propertyName:@"start_time"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents objectAtIndex:2]
                                  propertyName:@"stop_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:2]
                             propertyName:@"stop_time"], 1);

    // the fourth event recorded is event4
    XCTAssertTrue([[self getPropertyFromEvent:[receivedEvents objectAtIndex:3]
                                 propertyName:@"event_name"] isEqualToString:@"testEvent4"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:3]
                             propertyName:@"event_name"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents objectAtIndex:3]
                                  propertyName:@"start_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:3]
                             propertyName:@"start_time"], 1);

    XCTAssertNotNil([self getPropertyFromEvent:[receivedEvents objectAtIndex:3]
                                  propertyName:@"stop_time"]);
    XCTAssertEqual([self getPropertyCount:[receivedEvents objectAtIndex:3]
                             propertyName:@"stop_time"], 1);
}

- (void)testComplexEventsWithAggregation {
    // new a dispatcher
    TestDispatcher* dispatcher = [TestDispatcher new];
    NSMutableArray* receivedEvents = [NSMutableArray new];

    // the dispatcher will store the telemetry events it receives
    [dispatcher setTestCallback:^(NSArray* event)
     {
         [receivedEvents addObject:event];
     }];

    // register the dispatcher
    [[ADTelemetry getInstance] registerDispatcher:dispatcher aggregationRequired:YES];

    // generate telemetry event1 nested with event2
    NSString* requestId = [[ADTelemetry getInstance] registerNewRequest];
    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent1"];

    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent2"];

    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent3"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent3"]];

    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent2"]];

    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent1"]];

    [[ADTelemetry getInstance] startEvent:requestId eventName:@"testEvent4"];
    [[ADTelemetry getInstance] stopEvent:requestId
                                   event:[[ADDefaultEvent alloc] initWithName:@"testEvent4"]];

    [[ADTelemetry getInstance] flush];

    // there should be 1 telemetry events recorded as aggregation flag is ON
    XCTAssertEqual([receivedEvents count], 1);

    // // make sure there are four event_name, start_time and stop_time
    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"event_name"], 4);

    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"start_time"], 4);

    XCTAssertEqual([self getPropertyCount:[receivedEvents firstObject]
                             propertyName:@"stop_time"], 4);
}

- (NSString*)getPropertyFromEvent:(NSArray*)event
                 propertyName:(NSString*)propertyName
{
    for (NSArray* propertyValuePair in event)
    {
        if ([[propertyValuePair objectAtIndex:0] isEqualToString:propertyName])
        {
            return [propertyValuePair objectAtIndex:1];
        }
    }
    return nil;
}

- (NSInteger)getPropertyCount:(NSArray*)event
                 propertyName:(NSString*)propertyName
{
    NSInteger count = 0;
    for (NSArray* propertyValuePair in event)
    {
        if ([[propertyValuePair objectAtIndex:0] isEqualToString:propertyName])
        {
            count++;
        }
    }
    return count;
}

@end

redpajama_set_name: RedPajamaGithub


Ashleigh Murray Might Not Be Leaving 'Riverdale' For 'Katy Keene', This Co-Star Says | Ashleigh Murray | Just Jared Jr.
Ashleigh Murray dances on the runway for The American Heart Association's 2019 Go Red For Women Red Dress Collection held at Hammerstein Ballroom on Thursday night (February 7) in New York City.
The Riverdale star wowed in a striped Stella Nolasco dress for the annual event, which raises awareness for women's heart health.
Just recently, Ashleigh's co-star and new on-screen step brother Casey Cott opened up about the recent news that she'd be joining the Katy Keene spinoff series.
Can't wait to find out more details!


"The Lord was Baptized," explains St. Ambrose of Milan, "not to be cleansed Himself, but to cleanse the waters, so that those waters might have the power of Baptism". During His Ascension, He told His disciples to go and baptise all people and they did exactly that.
Saints have greatly valued this Sacrament. St Vincent Ferrer always celebrated the anniversary of his baptism and often went to kiss the baptismal font in the church of St Stephen in Valencia. After many years of absence, St Francis Solano went back to his hometown. Before doing anything else he knelt and rested his forehead on the font of the church where he was baptised and sang the Creed. When St Josemaría found out that they were discarding the font where he was baptised, he arranged for it to be brought to his chapel and kissed it every time he passed by it. Do you know the date of your baptism?
A young woman came to see the parish priest to discuss what was needed for her conversion to the Catholic Church. She explained that she had been reading the Gospel, fell in love with Jesus, and wanted to be a Catholic. The priest was surprised that no one had instructed her or talked to her about our faith. "No one has taught you anything about the faith?" asked the astonished priest. "That's strange! You must have had a bit of guidance from someone." The girl explained: "No one, father. Nobody, since I was baptised as a baby…" "But you were baptised?!…" the priest interrupted her, and with a smile he added: "I rest my case!" Of course Someone had been helping her. Baptism made her a temple of the Holy Spirit. He had been helping her for many years…from inside! Mary, my Mother, may I never forget to give thanks to God for my Baptism and to truly value it as the saints did.


Do you know about the Health & Safety at Work Act 2015?
Is your business compliant? How do you know this?
In April 2016, the new Health & Safety at Work Act 2015 came into force. Many New Zealand businesses are still unaware of their responsibilities under this new law. This ignorance could cost you dearly.
You could face a hefty fine or even imprisonment if your business doesn't comply.
If Worksafe decides to "cold call" your business, or if someone calls Worksafe to ask your business to be investigated, you could be in trouble in you don't comply with the Act.
1. Compliant with the Health & Safety at Work Act 2015. If you don't have a system in place, we will set you up with one. If you do have a system in place, we can assess whether it's adequate.
2. Efficient. Depending on the size of your business and your activities, we will recommend either a paper based or software based system.
Proper management of your business includes Risk Management. This includes not only internal controls, and adequate insurance protection – but also having a system in place to prevent incidents. Under the new Health & Safety at Work Act 2015 the government is placing the responsibility for accident prevention onto businesses as never before.
There are more than 130 fines, ranging from $5000 to $3 million for non-compliance.
Click on the link below to download a list of fines.
Offences and penalties under the Health and Safety at Work Act 2015.
Businesses that have a robust Health and Safety System will have reduced injuries (compared with others in a similar industry). This leads to reduced claims, and reduced ACC levies (as part of the ACC 'Experience rating' and 'no claims' system).


We bought a new camping trailer which arrived early in 2017. It is an elegant-looking machine, with beautiful cabinets … so much so that we realized it was time to update our 20+ year old kitchen cabinets. This page chronicles the project from start to finish.
The project began with construction of prototype doors for all cabinets to ensure we really liked what we'd have to live with. The style chosen was an arts & crafts (craftsman) style just a bit fancier than shaker style but still somewhat simple and lacking sharp edges. For the prototype doors, all frame pieces were made from poplar and were cut with rail & stile cutters. The center panel is made of oak lauan: it was pre-painted white before inserted into the frame pieces (craftsman style door do not usually have raised panels as they would be considered 'too flashy'). Once assembled (using every clamp I own), the outside of the frame was routered with a "wave" profile. Finally, five coats of paint were applied with each coat sanded between for a very smooth finish (at this stage, we prototyped the finish as well).
Having selected the style and finish we wanted (we lived with the prototype doors in the breakfast nook for months, even changing the finish from high gloss to semi-gloss), cabinets were built for the kitchen. The consistent style on all cabinets features full face frames with 1/2 inch reveal all around. The frames are made of white oak and the cabinets of high-grade Baltic (Russian) birch plywood (the stuff with the really thin ply's). We had flattened and planed a load of oak before the project started and rough-cut the eleven sheets of plywood we bought for the project.
The rough oak used for the face frames is seen here before machining. These boards are 2″ thick white (live) oak, covered in mouse poop, and very rough. They are also warped in both directions and needed to be flattened with a sled passed through a thickness planer (many, many times given that they are oak and the largest cut one can take is about 1/32″).
ONE 12 foot board weighs 95 pounds and even a 4 foot board weighs about 30 (almost 40 with the metal sled attached which is required for the first passes through the planer to flatten it!). They were cut into lengths four or six feet in length, flattened with a thickness planer, and cut into 1-by-2 pieces (actually one inch by 1.75 inches to be later planed to 3/4 inch thick by 1.5 inches wide). This process took days.
Here we are laminating two 1-by-2's to make a 1-by-3″ board for the top header of the cabinet. The cabinets will be only 1/2″ down from the ceiling and the wide top header will allow addition of a small crown molding later. This board still needs to be planed to a finished thickness of 3/4″ (after the laminating glue dries).
Armed with flattened oak stock, frames were built first and the cabinet built around this. This frame, for the largest wall cabinet at the rear of the kitchen, was almost too large for my workshop and the cabinet needed to be built face-down on the workbench. Built of white oak, the frame measures 84″ wide by 40.5″ high and will feature five doors.
All joints are glued and pocket-screwed from the rear so not a single nail or screw is visible! Grooves (3/4″) were routered into the back of the frame pieces for the plywood and in the bottom frame piece a groove was routered for wires for low-voltage LED strips which will be added under the cabinet.
The frame above screwed and glued onto the cabinet. This one-piece five door cabinet will be hung on the rear wall of the kitchen after it is painted. The left two openings hold two doors each (which close against each other) and the right opening a single door. The face frame is of white oak and will carry Euro hinges (not visible from the outside) … wood this strong was found to be necessary to carry the weight of the doors and the torque when the doors are opened.
The insides of the cabinet were drilled with blind 1/4″ holes for shelf clips, around 120 plus holes.
We bought an old dining tent cheap on Kijiji and set it up in the garage for a spray booth since I'm using an HVLP gun to do all the painting – nothing produces a nicer finish than an air gun. Ten computer fans (sealed with no sparks) and fiberglass air filters were added to exhaust spray from inside the tent during spraying (and prevent it from escaping which would coat the vehicles outside in the driveway). Finally, cardboard was put on the floor so I have a clean little booth to spray everything ('little', maybe not, since it is 10′ by 10′ and takes up most of the garage). The tent also keeps the damned yellow jackets out!
As seen in the photo to the right, I dressed for painting (or a major plague). I had a few old cleanroom suits that are perfect for the job since the spray gets everywhere (that green suit is now white) and a proper organic respirator is a must! The paint is pretty nasty stuff while spraying.
Since the cabinets were placed inside the tent for painting, we mounted two 40W tubes in there as well for better lighting.
The upper cabinets were installed first. The process began with removal of the old cabinets – easy enough since this involves only removal of screws – but then the problem became removal of the bulkheads above the old cabinets. These bulkheads were open to the attic above and were filled with pink insulation. After removing the insulation (which was blown-in and so a real mess) the bulkheads were cut out leaving long holes open to the attic. The next problem became relocating wires which were run inside those bulkheads. With little slack to spare, wiring was run into slots cut into the wall and top header 2-by-4's. As per code, nailing plates of thick metal were secured over the wire where it was close to the surface of the studs.
One wire was relocated entirely, and a few spare wires removed. A six mil vapour barrier was taped over the openings and new drywall screwed in place to the ceiling. The exposed area in the attic was then re-insulated with fiberglass batts. A quick coat of drywall compound on the corner and joints and the cabinets were ready to go up (a "quick" coat since the majority of the joints are behind the cabinets and so will never be seen).
And during all of this, we were still using the kitchen so we kept moving dishes, glasses, and everything else in the cupboards around! One cabinet at a time was removed then a new one installed.
After the base cabinets were installed, a cracked-glass backsplash was eventually installed behind the sink and rear cabinets in the kitchen (over twenty feet of wall).
With the cabinets installed, doors were next, unfortunately this had to wait until spring as November was getting too cold to paint (and there was no way we were painting inside the house – this stuff smells AWFUL). So, we lived all winter with a kitchen with no doors – convenient, but a little sparse for our liking. Well, spring of 2018 came soon enough and it was time to close those open shelves.
Drawer fronts were made of MDF. I had originally planned on using laminated poplar however MDF is harder and flatter (and easy to work with) but requires treatment to seal it against water infiltration. Drawer fronts were first cut as rectangles with a half-inch overlap on all sides to the frame then a 'wave' profile routered on all four edges. Next watered-down white PVA glue was applied with a roller to bring the fibers out and seal the wood on all sides. When dry, the now rough doors were sanded, a second coat of glue was then applied, and sanded again. This glue treatment seals the wood (especially the edges) and prevents paint from soaking into the edges. Finally, five coats of paint were applied (three thicker coats with a 2.4mm spray gun, sanded after each coat, and two finishing coats with a finer 1.4mm HVLP gun).
While all lower drawers and doors were 'slab', upper doors were of rail & stile construction almost identical to the prototpyes. An oak-veneered lauan panel was painted with two coats before being used. Like the drawers, MDF was used, cut into 2.5 inch strips. MDF routers well and is very flat. Like the drawers, two coats of sealing glue were applied followed by five coats of paint.


text:
Displaying items by tag: Machinery
New WAFIOS CNC Tube Bending Machine RBV 42 R Premieres at Tube Show!
WAFIOS presents this new development in Düsseldorf together with the machine's bigger brother, the RBV 60 R, which was presented in 2013.
The series couples power with innovative technology and new ergonomic design.
The RBV machines are new, extremely versatile and profitable tube bending machines for the production of 2D and 3D parts with more flexibility in the production of parts and higher repeat accuracy. Thanks to the new, more robust design of the machine, significant process improvements could be achieved. More performance, despite increased energy efficiency, is guaranteed due to the use of the most modern control and drive technology from the robot industry. High service and operating convenience increase the machines' availability.
WAFIOS CNC Tube bending machine RBV 60 R
Thus the RBV series becomes a long-lasting solution for the effective production of a large spectrum of parts also in small batch sizes.
The exhibition program will be completed by the successful BMU 50 R bending machine which will be exhibited for the first time as a machine for bending tube from the coil. Visit WAFIOS in hall 5, booth A 21 at the Tube show!
Dos and Don'ts When Buying a Second-Hand Machine
So Your Second-Hand Machine Does Not Become a "Failure"
Lower investment volume, adequate production capacity – the arguments for buying a second-hand machine are obvious. Is it that simple though? Particularly in the case of complex tube bending machines, there is a whole range of factors determining the efficiency of using a second-hand system. In the worst case, the new, second-hand machine becomes a "failure" in the production sequence because the component quality and output performance do not match.
Who buys a car without a test drive and without knowing its features? Yet, investment in a second-hand system resembles precisely this scenario more often than you would think. This is particularly true if complex tube bending machines from a niche area are bought without consulting the original manufacturer. Pipe bending processing on an industrial scale is a good example of this: customer-specific system solutions are used in many sectors, ensuring high-precision bending results by means of CNC control, high performance drives and bending tools with a complex structure. The sophisticated plant technology cannot be simply dismantled and reconstructed to produce new components in a different company. "Detailed questions of component geometry, material and output quantity have a decisive impact on the possible applications of the machine," explains Hartmut Stöhr, Managing Director of bending machine specialist Schwarze-Robitec (producer of machines in the brands Schwarze-Robitec, Robitec and Schwarze-Wirtz). "In our case, the procedure itself complicates the sale of second-hand machines by third parties. If one of our tube bending machines has been designed for example to process thin-walled exhaust pipes in mass production, it might not be suitable for bending thick-walled high-pressure tubes for plant construction. Ultimately, whether the drive concept and machine design can produce perfect component quality under the new conditions can be judged only by one of our specialists."
Exceptionally High Risks
The fact that second-hand special-purpose machines are bought time and again without consulting the manufacturer is the result of economic considerations, as Stöhr knows: "It naturally sounds attractive if a machine from a prestigious manufacturer can be offered at an apparently very reasonable price for one's own production." Consequently, however, buyers of bending machines frequently take excessive risks. Machines are therefore taken over with no prior testing. Initial testing takes place only on the new production site. Under these conditions, it is of course impossible to verify whether the system has the required capacity. "Before buying, it should at least be ensured that the machine actually works properly. The control must show no errors, the mechanics must not be worn and the machine must be complete in terms of its components," Schwarze-Robitec Managing Director Bert Zorn points out perhaps the simplest basic conditions. "It must then be presented in test mode, in order to be able to clarify for example that all of the axles still work properly. However, these criteria are really the absolute minimum and they are adequate in only the rarest of cases. There is generally a lot more to be considered."
Small Things Can Tip the Balance
Time and again, the bending specialists are confronted with enquiries from users who have already bought a second-hand machine and encounter great problems a short time after the start of production. "We are contacted when the horse has bolted and the machine does not work," Zorn says. Even small things can tip the balance here – for example if incorrect hydraulic filters are used, resulting in problems with the hydraulic pumps after a short time.
Information in the Manufacturer's Database
On the other side, rogue sellers sometimes exploit the ignorance of buyers: old plants are repainted then even given false type references and accordingly sold more expensively. It is also a problem if original components have been replaced or improper repairs or alterations carried out on the machine. Customers are additionally left in the dark about possible difficulties with obtaining spares for very old parts. In the event of production problems, even the original manufacturer's fitters are sometimes baffled, as they cannot repair the foreign parts and the result may then be expensive downgrading to original condition. Ultimately, Schwarze-Robitec therefore recommends asking at some point before any investment decision. "There are various options if you contact us," explains Jürgen Korte, Authorised Representative at Schwarze-Robitec. "We can look at our records to see exactly which machine is being offered. In addition to the delivery condition and the exact age of the machine, we can then also provide statements about whether the machine has undergone regular maintenance by the manufacturer. This is at least an initial indication of the current condition of the plant. Moreover, we can assess whether the machine type offered is an option at all for the application area."
Focus on Safety Technology in the Case of Second-Hand Machines
Of course, these indicators also provide no absolute guarantee. The ideal way when buying second-hand machines is therefore to buy from the original manufacturer. As well as factory-tested second-hand machines, Schwarze-Robitec also supplies reconditioned machines. In the case of the bending specialist, reconditioned means: the manufacturer restores the machine to mint condition by complete dismantling and reconstruction from scratch – naturally including the latest control, electrical installation, hydraulics etc. Furthermore, the reconditioned system is also always compliant with the current safety regulations and therefore has CE marking. This is a very important topic, particularly when buying a second-hand machine. If machines display no CE marking and their safety technology is incomplete, they must not be placed in operation. In some cases, even the lack of operating instructions – with directions on the correct procedure in case of damage – might be enough for a second-hand machine to not comply with the safety regulations. "For an original manufacturer, such things naturally go without saying. The customer also receives a full guarantee on our reconditioned machines," Authorised Representative Korte explains the advantages of buying from the manufacturer.
If There are No Spares
The issue of spares is of similar importance when buying a second-hand machine. Here, of course, the older the machine, the less reliable our stock. Generally, only the machine manufacturer is able to say whether it is still possible to obtain vital components in case of damage. Here again, the database provides information on the components used in a machine. However, from this perspective, a reconditioned machine is always the first choice. In this case, all obsolete components are replaced – from the control to the smallest sealing ring. Moreover, the manufacturers guarantee lasting operation of the system through an extensive service provision. The question of spares is then resolved from the outset.
Better Brand New?
In which case should a second-hand machine be avoided and a completely new system chosen? In the view of the specialists, the product range and daily use of the machine are critical. "If no series parts are to be produced and enough time is scheduled for maintenance and repair, a second-hand machine is certainly an option that can be considered," Managing Director Bert Zorn states. "However, if production is dependent on a high level of availability of the plant and you want to benefit from the advantages of the latest control generation then the company is better advised to have a new machine or a reconditioned plant. A new machine can then also be completely customised to the requirements of the customer. We recommend that any company interested in a tube bending machine or wanting to pass on their old machine first contact us, the manufacturer."
Haven Manufacturing helps keep Jobs in America
According to a recent academic paper, titled "The China Toll", the United States lost more than 2.7 million jobs to China in the years between 2001 and 2011. Haven Manufacturing, the well-known Georgia based manufacturer of machinery and equipment for tube and bar processing, is doing their part to fight the trend of continued American job and manufacturing loss to Asia.
Last year Oddello Industries, a Tennessee based manufacturer of high quality metal, tube, pipe, composite, and MDF components for OEMs in a variety of industries, purchased a dual-blade cutoff machine from Haven as part of the development of a process to manufacture several individual parts from 1" square tube to be packaged, along with a variety of sheet-metal stampings, into high quality adjustable mattress foundations. The state of Tennessee alone has lost well over 56,000 manufacturing jobs, more than 2% of the state's total employment, to China based companies in the past decade. Oddello, by partnering with proven America based equipment suppliers like Haven Manufacturing, has shown itself to be able to compete for, and win, business back from China based manufacturing concerns. Oddello's capable engineering staff partnered with Haven's engineers to develop a fully programmable process which couples a piercer, designed and manufactured by Criterion Machinery, with a Haven Servo Dual-Blade Shear Cutoff machine. The resulting process has proven able to process nearly 15 miles of tube per day into 38 unique parts (SKUs) within length tolerances that never exceed 0.0015 inch.
The Oddello-Haven collaboration has proven so successful that Oddello's management recently decided to expand the tube stamping and cutting operation. Not only is this great news for the company and its employees, but it is great news for the people and community of Morristown. The additional jobs and income provided by the expansion will undoubtedly improve the quality of life for many people in the region. The original Haven cut-off machine has proven so reliable and efficient that the company has ordered an additional Haven Model 873 Servo Dual-Blade Shear Tube Recut Machine to handle increased demand from both new customers and the customer for which this process was originally designed. The Haven 873 is capable of cutting tube from square or round stock, in lengths from 2" up to 120" and employs a programmable closed-loop servo drive to assure accuracy.
New mill for Bolivia
OTO just completed the production of a 1 ½" high productivity tube mill for delivery to Ferrotodo, a leading tube manufacturer located in Santa Cruz, Bolivia.
This is the third tube mill that OTO havesupplied to this customer in ten years of extremely fruitful collaboration. With this mill in place Ferrotodo will increase their share in the export market, and in particular, the automotive industry.
The tube mill has been installed with the aim of entering in the automotive industry, and will principally be used for the production of headrests, and the main frame for the seats for two top car manufacturers.
The machine is capable of manufacturing tubes in the range from 10mm up to 38mm, with thicknesses up to 2mm, and the capability to process special high resistance steel, the mill is also able to produce stainless steel tubes.
Among the various features, the mill will be capable to produce tube having very robust tolerance in diameter in order to satisfy the extremely stringent requirements of the automotive industry. This is the fourth mill of this specific size that OTO has manufactured so far, and one more is on order for delivery to South America next year.
Trilogy Takes Over Representation of Schwarze-Robitec in North America
Trilogy Machinery, Inc. becomes the exclusive North American distributor for Schwarze-Robitec tube bending machines.
Schwarze-Robitec is one of the world's leading manufacturers of tube cold bending machines. The traditional company from Germany, which was founded in 1903, develops and produces tube and pipe bending systems for the automotive, shipbuilding and offshore industries, power plant construction and the chemical industry as well as special bending solutions for many other sectors of industry.
The bespoke quality products will now be sold throughout North America exclusively by prestigious partner agency Trilogy Machinery, Inc. "For our customers in the USA, Canada and Mexico, we have gained the ideal partner in Trilogy, which will now continue the successful work of Charles Russell Jr. and Tony Granelli," Schwarze-Robitec Managing Director Bert Zorn reports. "Agency president Allan Flamholz has worked in the area of metal processing machines for over 33 year and has exact knowledge of the latest market requirements.
With his trained team, he offers the best possible advice for our entire range of products and solutions." In addition to customer advice and customer care, the new appointment of Trilogy Machinery includes the complete sale including import of bending machines and tools.
Bending, Measuring and Further Bending in One Go
To accurately bend steel or stainless steel tubes and tube systems must accept long auxiliary processing times for the generally unavoidable measuring and adjusting process. This is because the rebound behaviour of the materials can differ widely – even if the tubes come from a single batch. The production of prototypes and individual items is similarly time and labour-intensive. The Springmatic optical measuring system provides a remedy here: the new development from Schwarze-Robitec, which is integrated into the bending tool, measures the bent tubes directly whilst tensioned on the bending machine and immediately starts the required further bending process if desired or saves the required correction value for subsequent bends.
Instead of removing the tube after the bending process, checking it on an external measuring system then retensioning it for subsequent bending, tube processing companies can bend, measure and adjust in a single stage with the aid of Springmatic. Immediately after the bending of a tube, the new optical measuring system that Schwarze-Robitec is integrating into its bending tools records the rebound value, from which the CNC control of the tube bending machine calculates the required subsequent bending angle. Subsequent bending is carried out immediately afterwards – either fully automatically if desired or after clearance by the machine operator. "This integrated form of dimensional stability check and tube post-processing takes only a few seconds per work piece on average. This is contrasted with around three to five minutes required for measuring and adjusting in the conventional way," Schwarze-Robitec Plant Manager Jürgen Korte reports.
Broad range applications
When developing the measuring system, the tube bending specialists from Cologne placed particular emphasis on a very broad range of applications: Springmatic reliably checks both thick and thin-walled tubes in the broadest range of materials and diameters. The system can be integrated into almost any bending tool and combined with almost all tube bending machines from Schwarze-Robitec. "The measuring accuracy from Springmatic is naturally equivalent to the accuracy of conventional external systems," Schwarze-Robitec Managing Director Bert Zorn adds. "Furthermore, users not only save up to nine tenths of the auxiliary processing times previously required; in individual item and prototype production, they additionally benefit from a noticeable material saving as almost every component is now also a useable bulk component. These advantages have an effect particularly in tube production for the automotive, machine and plant engineering, and shipbuilding industries."
Siemens Subsea Products adopts all-electric tube bending for production of subsea hydraulic flying leads
Siemens Subsea Products has chosen an all-electric tube bender from Unison to improve the quality and speed the production of the small-bore hydraulic tubes it uses on subsea hydraulic flying leads with Multiple Quick Connections (MQC), Cobra Heads and associated offshore oil and gas recovery equipment. The tubes feature complex bends of extremely high accuracy, and until now the company has either fabricated them manually or bought them in as pre-formed sub-assemblies.
Siemens Subsea Products produces a wide range of subsea electric, fibre optic and hydraulic power and control systems for offshore oil and gas subsea applications. Its hydraulic workshop at Kongsberg in Norway operates world-class fabrication and assembly processes, producing systems for direct sales and third-party suppliers. As part of its strategy to expand manufacturing capabilities in this specialist field, the company recently reviewed tube bending automation, starting by comparing the performance of a number of leading hydraulic and all-electric tube bending machines.
According to Terje Barth Andersen, Technical Advisor for Subsea Products in Siemens, "It was quickly apparent that electric tube benders offer a number of advantages over hydraulic machines; including more accurate and repeatable results, lower energy consumption and lower noise. In the all-electric sector, Unison's machines stand out from the competition because they allow much faster tool changeover - which is important for us because we produce many of our tubes in very small batch sizes. Another key factor behind our choice was Unison's willingness to develop a machine configuration specifically for our needs."
The tube bender supplied to Siemens Subsea is a 25 mm model based on Unison's popular Breeze platform of all-electric machines, and incorporates a 'rise and fall' pressure die which enables it to perform right- and left-handed bending; this increases manufacturing flexibility and throughput by allowing long and complex parts to be produced from a single length of tubing in one continuous cycle. Installed at Siemens' Kongsberg facility at the end of last year, the machine is currently undergoing commissioning and due to commence operation during January 2013.
The subsea equipment produced by Siemens Subsea is designed for long term deployment - many of the systems have a design life of 30 years and are intended for operation at depths up to and beyond 3,000 metres. As a consequence, the tubes used within the equipment that convey hydraulic fluid for power and control purposes are subject to extremely high internal and external pressures and need to be manufactured to exceptionally high standards. A key requirement is to minimise stressing of the tubes at their bend points - which could lead to in-service failure - by avoiding use of small bend radii. Whereas many conventional tube bending machines are incapable of handling large bend radii, the Unison machine supplied to Siemens features 'full stroke' programmable positioning of the pressure dies and clamps, enabling it to create bends with a CLR (centre-line radius) up to five times the diameter of the tube, with fully automatic set up.
All critical movement axes on the Unison tube bender are controlled by precision servomotors, enabling fast and repeatable fabrication of parts with accuracies to within fractions of a millimetre. The machine is also capable of generating the high torque needed for bending tubes fabricated from exotic alloys such as Inconel, Duplex and Super Duplex, which are used extensively for subsea applications to improve corrosion resistance.
Siemens Subsea's first project involving the Unison machine will be the South Belut Project production of 800 tubes, all made from 316 and requiring complex bends and orbital welding in both ends, for use on umbilical termination units known as MQCs. These are used on various subsea structures, including Christmas trees, and Siemens' versions can accommodate up to 13 hydraulic lines, demanding extremely tight manufacturing tolerances. Each tube is designed on a Inventor 3D CAD system, and the company generally then produces a prototype to verify its accuracy and feed any necessary corrections back into the production process to ensure the quality of subsequent parts. Automating the tube bending process is set to accelerate this procedure - the CAD system and bending machine are linked by a production computer network - and will help Siemens Subsea Products maintain the fully traceable manufacturing records needed for this industry.
Terje Barth Andersen points out that the accuracy and throughput capabilities of Unison's tube bender offer major economic benefits to companies working with expensive materials. "We calculate that the machine will pay for itself in less than two years, based solely on the number of tubes that we can now process in-house instead of purchasing as ready-made parts. Furthermore, the machine's automated set-up capabilities and control software flexibility will help us significantly reduce scrap material by 'right first time' manufacturing. We also envisage selling excess tube bending capacity to the market, making this an even more cost-effective investment."
Steve Haddrell of Unison adds, "This order from Siemens Subsea Products demonstrates a growing awareness of the benefits of all-electric tube bending. The traditional market for high-performance machines of this type is in the aerospace industry, where precision bending of exotic alloy materials is a common requirement. But companies serving the offshore oil and gas industries also face similar demands, as their products are used in ever more hostile environments."
Nanshan Aluminum Project: Demonstrating ABB's High Competitiveness
According to relevant industry analysis, in China, production lines for aluminum plate processing has been developing toward wide plates, and as the most typical representative, the 2800mm single stand 6 rolling mill project of Nanshan Aluminum is being currently implemented as scheduled (Nanshan Aluminum is the only listed company focusing on aluminum products in China, and the Company has been topping other large aluminum enterprises in terms of corporate size and production output) and is expected to put into operation by the end of 2014. This project was undertaken by ABB China and SMS, which may mill aluminum products with a maximum width of 2650 mm, reaching a record in width of cold rolling mills for aluminum plates in China.
ABB has cooperated with Nanshan Aluminum for a long time. Early in 2003, ABB built two 2300mm wide single stand production lines for Nanshan Aluminum, which set a benchmark for the construction of the same type roller mills, and construction of the same type of roller mills had become all the rage across China and ABB had also undertaken more than 10 high-end aluminum rolling mill projects in China afterwards. In 2012, ABB built a three stands continuous cold rolling mill production lines for Nanshan Aluminum, which was the first in Asia and the second in the world. This time, Nanshan Aluminum builds this 2800 mm single stand rolling mill project, aiming at the global high-end market, and the fact that it cooperates with ABB again demonstrates its recognition of ABB's comprehensive strengths.
ABB is responsible for the design, debugging of the electrical and automation systems for the project as well as the follow-up services. ABB mainly supplies equipment and systems, including distribution systems, MCC, primary and secondary automatic control systems, motors and transmission systems, special instruments, operating floors and cases, and fields sensors.
This project has many features in electrical systems and automation systems and we would like to introduce as below:
Feature 1: All final transmission systems for the rolling line utilize imported ABB motors
Rolling mill stands imported from ABB Finland are equipped with main motors with a power up to 6,500 kW and a voltage grade of 3,150 V, and are also equipped with ABB ACS6000 medium voltage drive transmission systems. Most motors equipped for other parts are also imported ABB products.
Feature 2: DTC core technology provides the transmission systems unbeatable excellent dynamic properties
Medium- and low-voltage motor driving systems utilize ABB's traditional DTC technology. Compared with PWM and other control modes, DTC has a significant advantage in response time: at a frequency of less than 40 Hz, the typical torque response time may reach a super level of 1-2 ms, 10 times faster than that of traditional control modes. DTC technology may easily achieve high precision control on motor speed and torque without speed encoders.
The nature of DTC technology determines its high energy conservation. When the system works, the adaptive motor model-based high-speed digital microprocessors might capture actual flux and torque from motors at a speed of 40,000 computations per second and compare the captured values with settings, and the system may only make adjustments when there is any difference between the settings and readings. As a result, in terms of the principle of operation, DTC technology provides theoretical basis for energy saving.
Feature 3: This is the first time for EDT milling mode to be used in aluminum mills in China, which ensures features of ordinary rolling and roughen rolling
In order to better meet the market demands, Nanshan Aluminum demanded that this rolling mill shall provide roughen rolling features, and some final products require surface texturing by EDT rolling. . In consideration of this, ABB designed EDT rolling mode for this rolling mill, in other words, use the upper intermediate roll extended bending system instead of the hydraulic screw down cylinder for rolling, so as to achieve roughen rolling with low rolling force. In addition to special electric spark roughen rollers for working rolls and special roller types for intermediate rollers, for EDT rolling, it is even more important to achieve stable rolling with small rolling reductions (rolling force ≤200t, far below the normal rolling force level). However, when the rolling reduction is less than 10%, if we continue to use normal hydraulic pressure cylinders (which provide a maximum rolling force of 30MN), we cannot meet requirements on rolling stability and control precision for roughen finishing.
As a result, for ABB, the key point is how to integrate the existing general rolling strategies and roughen finishing, and based on the mathematical model rolling mill and secondary process control, the system may switch rolling modes safely and reliably optimize rolling process control.
Feature 4: Achieve highest standard in the industry for all indicators
Nanshan Aluminum has always been strict with precisions of systems and equipment. The reason why it has long been cooperating with ABB is that, ABB may provide a wide range of mature technologies and products across electrical and automation entire industry chains, covering motors, transmission systems, instruments and meters as well as control systems, so that Nanshan Aluminum may achieve the highest indicators in the industry and lead the development of the industry. For example, for this Project, thin aluminum plate may achieve 8I-Units, and the thickness control may achieve a precision of 2 um, static tension may achieve a control precision of 1.5%, and the speed control precision may achieve 0.01%.
Mr. Sun Yongming, Head of Paper, Metals & Cement in China said, "ABB will continue to serve global high-end metallurgy projects, and provide total solutions for upgrade and renovation of electrical and automation systems to both new and existing customers.
With advantages in excellent technology, product, service and project management in electrical and automatic systems and its great success in localization and a strong service capability, and based on win-win cooperation with international mechanical equipment suppliers, ABB has dominated most of high-end aluminum rolling mill projects market in China.
In face of the current downturn in Chinese metallurgy, Sun from ABB said honestly that, "ABB will strongly support steel, nonferrous metal enterprises to upgrade and renovate their plants, including both process upgrading or periodic equipment replacement, ABB will provide personalized and marketed-oriented total solutions in solution design, equipment selection and control strategy as well as other steps in consideration of corporate situation and latest technology development trend. ABB has also obtained good practical experiences in Panzhihua Steel, Ningbo Baoxin Steel and many other enterprises."
Revolutionary, rotating in-line dimension measurement
Zumbach Electronics, the Swiss manufacturer of inline measuring and monitoring systems, has developed a rotation-based laser scanning process that maps round and polygonal shapes up to 6000 times per second - a first for the industry.
To make production processes as efficient as possible, modern in-line measurement devices are required, not only to measure parameters such as diameter, ovality, width and height at very high speed, but also to instantly detect shape deviations and rolling errors.
Some suppliers claim that in steel production, mechanical solutions are more than adequate for these purposes. But, not all manufacturers in the industry agree. Zumbach Electronics has been an innovation leader in the market since 1957, and its experience has shown it pays to continually develop new technologies, and solutions that deliver more precise measurements, thus contribututing to higher productivity. The company also believes in user-friendly operation and close-to-zero maintenance.
These very standards were applied to their latest product series, the Steelmaster SMR. Steelmaster units have been used in steel production for many years, as a tried-and-tested solution to improve the monitoring of hot rolling and cold processes. Until now, dimensional measurement and error detection have always been carried out by static or oscillating devices, depending on the application. These devices can measure with great accuracy the outer dimensions and diagonals of both round and non-round products such as squares, hexagons and flat products, regardless of twist and angle of twist. Yet until recently, the level of precision achievable in manufacturing processes involving high rolling speeds and short lengths left much to be desired. The new Steelmaster SMR product generation, comes with sophisticated technology in the shape of an innovative and much faster rotational measurement system. With its superior performance, the system opens up a whole new range of applications. The system is based on up to three fully synchronised high-tech laser measuring heads of the ODAC® series, which uses an innovative rotational principle to measure outer dimensions, diagonals, diameters and cross-sections with 3600 coverage. Each laser measuring head rotates at a speed of 100 rpm and maps the scanned products up to 2000 times per second to create a precise product profile. In this way up to 600 profiles can be generated every minute. This allows manufacturers to significantly reduce scrap while maintaining stricter tolerances of ½ and ¼ DIN. There are no longer any restrictions as to the shapes the system can cope with. These models can handle any asymmetrical, polygonal and irregular shapes made of steel and metal to a diameter of approximately 135mm and temperatures of up to 12000 C.
Enhanced Profile
Measurement The innovative rotary movement isn't the only technical refinement, because there is also the unique, non-contact transmission of power and signals within the measurement unit. The software is very flexible, allowing data statistics, numerical and graphical displays, logs and so on, to be freely configured in line with requirements and working practice in the production environment. Zumbach developed a novel method, EPM (Enhanced Profile Measurement, pat. pend.) for geometries with irregular or asymmetric shape aberrations (e.g. asymmetric overfill or underfill). In particular it is also able to capture and calculate polygonal shapes, which can occur in certain rolling processes or after subsequent peeling / grinding operations. For any shape it will measure at high accuracy not only min., max. and mean diameters but also the true out-of-round deviation RONt as defined by ISO / TS 12181-1 as well as the inscribed circle MICI and the circumscribed circle MCCI.
An optional module named FPS, especially for 3-roll blocks, calculates accurate values corresponding to the diameter values which would be found by manual 3-point micrometer screws (if both readings are related to room temperature). This FPS module additionally calculates the "Touch" and "Gap" diameters which are essential for the initial roll setting. The dynamic regression analysis included in the software package means that twist and angle of twist no longer influence the measurement result. This results in lower scrap rates and ensures compliance with strict tolerances. The technology also performs regardless of position, vibration, material temperature and light intensity.
The measuring units have the same tried-and-tested architecture as the proven static and oscillating systems. Zumbach delivers 100% quality inspection with virtually 0% outlay for repairs and maintenance. The fully contact-free transmission of power and signals also ensures maximum operating safety. An efficient air flushing and cooling system keeps the unit functioning reliably and can be supplemented if necessary by a water circuit. All Steelmaster systems can be extended to include up to four measuring units with a single data acquisition and processing system. Any combination of static, oscillating and rotating SMR measurement units may be used. By opting for the measuring system, manufacturers can benefit from high-precision measurements and the resulting competitive advantages, such as faster start-up, less downtime and lower personnel requirements. This results in new quality standards and opens up new, multiple applications.

redpajama_set_name: RedPajamaCommonCrawl


text:
What the Paste Staff is Listening to This Week
We're not sure when it will be safe to hug our friends or gather in public again, so that means you likely have more free time on your hands than normal—and perhaps more than you'd like to have given that we're all stuck inside. The Paste HQ in Atlanta has been closed for almost two months now, which means our writers have had to keep ourselves occupied and sane while we work from home. Here are a few music releases that have brought us joy or eased our minds while we aggressively type away.
Romero: "Honey" b/w "Neapolitan"
Here's a reminder that bands can be good, sometimes. Romero brings us an urgent power-pop chug on their first single, with the wrist-shredding strums of the Wedding Present, some great melodic guitar lines and the invigorating robotic plod of every good Australian band from the last however many decades. Alanna Oliver's vocals and the slightly blown-out guitars will reap Sheer Mag comparisons, but this is the real deal. It's hard to pick a winner between two evenly matched champs, so just add both songs to your 2020 playlist and let 'em rip. —Senior Editor Garrett Martin
Johanna Warren: "Twisted"
Ahead of her new album Chaotic Good, out this Friday on Wax Nine/Carpark Records, Johanna Warren has decided to start a brash folk riot in the form of her fourth and final promo single "Twisted." It might very well be the angriest and most impassioned folk track of the year—gurgling screams ring out over gleaming guitars, but even fans of dainty folk will gravitate to her simmering raw emotions. "I used to be too concerned with maintaining a certain crystalline prettiness in my high register to ever let myself go there," Warren says. "It was a very restrictive approach to such a versatile instrument as the human voice. But now that prettiness is something I specifically try to avoid. I'd much rather my voice sound rough and textured. I'm more interested now in trying to make as many different kinds of sounds as I can." —Associate Music Editor Lizzie Manno
Fruit Bats: Gold Past Life
I've always been a Fruit Bats fan, but when Eric D. Johnson released his seventh album under the alias last year, I blew through it a few times and swiftly forgot it ever existed. For some reason, it just didn't stick. That is, until last week when a friend sent album opener "The Bottom of It" my way as a rainy day recommendation, and the record entered my consciousness once again, where it has been taking up space ever since. Gold Past Life is way groovier than anything Johnson has released before: It very often verges on '70s disco or funk (the title track sounds like a Bee Gees song—full stop) or maybe even ambling folk-rock in the vein of The Byrds, whereas something like 2016's Absolute Loser or 2009's The Ruminant Band was more firmly planted in the indie-folk sphere. Gold Past Life is thoughtful and smart all the way through, sometimes cheerful and sometimes sad and always brisk—like a gust of wind slapping your face as you stare at the ocean, or a gentler cool breeze guiding you up a mountain on a long, peaceful hike. I find more to enjoy in each listen, and I only wish I had given it more credit last year upon its initial release. But, as they say, better late than never! —Associate Music Editor Ellen Johnson
I've had the time to explore and revisit so much music during the quarantine, but this week in particular it's been all about Madonna. Madonna makes me feel empowered, badass and like I can do anything even during the pandemic. Her Celebration album—a compilation of her biggest hits—has been blasting through my Bluetooth speaker on repeat during the past week. When I decide to actually put a little mascara on and maybe something cute, "Vogue" is the ultimate tune to dance around the house to. Plus, my hopeful anthem has been "Holiday," because, "You can turn this world around and bring back all of those happy days." —Editorial Intern Daniella Boik
AURAGRAPH: Memory Tracer
This glorious synthwave album will remind you of sensations you forgot about. There's a numbness to sitting inside all day, far removed from the daily hustle and bustle and vibrant nightlife of the city. Memory Tracer, the new album from Los Angeles experimental artist AURAGRAPH, will reacquaint you with those bewitching textures, helping you reconnect with your exhilarated side while tapping into your current blurry state. Minimal synths trickle in, building to dramatic '80s soundscapes and wisps of moody vaporwave. —Associate Music Editor Lizzie Manno
Alice Longyu Gao: "Rich Bitch Juice"
I've been bumping Alice Longyu Gao's track "Rich Bitch Juice" everyday since the start of quarantine. Many discovered Gao, a DJ and performance artist, during 100 gecs' recent Minecraft concert "Square Garden" (Dylan Brady co-produced the track) or through Laura Les' recent remix of the song, but she's got an array of relatable tracks perfect for any confrontational mood, including sister song "Dumb Bitch Juice" and "Karma is a Witch." Somehow, no other song captures my entire range of emotions as this manic party song: "You should chill, don't be mad / What about lying by the pool?" Unfortunately, I don't have access to a private pool, but Gao is right. I should chill. "I'm fucking tired / Don't you tell me to be happy / Don't you dare talk to me," she yells, flaunting her resting bitch face. When I'm as fed up as Gao, I need "Rich Bitch Juice" to get through it. The recipe? Champagne with some lime salt to taste. Take a sip and shut up. —Editorial Intern Austin Jones
Oasis: "Don't Stop…" (Demo)
Oasis used to pride themselves on the fact that they rarely wrote throwaway tracks. Their b-sides are just as beloved as their singles, and so much so that many fans thought the band was terrible at picking album tracklists. Noel Gallagher's response is fair enough: "Well, I don't write shit songs!" Because of their incredible b-sides and rarities, any time the Gallagher brothers unveil another, it's an event. This week brought a lost demo called "Don't Stop…," previously only available via crappy soundcheck audio on YouTube. The recorded version was recently discovered when Noel was digging around in boxes while in quarantine. "As fate would have it I stumbled across an old demo which I thought had been lost forever," he wrote in a statement. If you love Noel's acoustic b-sides like "Talk Tonight" and "Half the World Away," you'll latch onto this one immediately. —Associate Music Editor Lizzie Manno
Arctic Monkeys Share New Live Video for "Arabella"
The Fest Postponed to 2021, More Bands Added
Alexia Avina Announces New Album Unearth, Shares Breathtaking New Single "Fit Into"
The 10 Albums We're Most Excited About in May
Exclusive: Dierks Bentley Talks Mullets & Hot Country Knights' Blazing New Album


THINK IT�S GREAT! IWe appreciate everything about our new chair. Size: exquisite for more compact frames. I am 5'2 and my husband is 5'9". Fits either of us, plus a grandchild because of wider seat. Comfort: simple to fall asleep in with the soft glide or total out recline. Convenience: swivel makes it easy to turn from conversation to the TV. Price:in your means. And if that's not enough, it is lovely piece of furniture, too.
Looking for inspiration to repurpose old materials and remodel your kitchen on a shoestring budget, ideas for successfully mixing and matching materials and styles, or how-to tips and guides on modernising an old kitchen then the book below is packed with lots of great ideas, tips and illustrative photos.
Use a bright rug to liven up space and neutralize it with a concrete coffee table.
Upholstery Material: Faux leather Upholstery Material Details: Bonded Leather Faux Leather Type: Bonded Leather Design: Reclining Overall Product Weight: 220 lb.
Wooden garden furniture: It is popular since the beginning and meets the needs of all kinds of home settings.
Unfortunately, rubberwood is not well-suited for adhesion and will reject painted finishes unless you properly condition it first.
Upholstery Material: Faux leather Upholstery Material Details: Bonded leather Faux Leather Type: Bonded Leather Design: Loveseat Overall Product Weight: 68 lb.
A heavy linen or lace tablecloth covers less formal tables.
Upholstery Material: Polypropylene/Olefin Upholstery Material Details: 59% Polypropylene, 41% Polyester Design: Standard Overall Product Weight: 200 lb.
Make your furniture more comfortable, add color, and coordinate it with the rest of your décor using cushions to decorate your wicker furniture.
Spray paints work the best and when applied correctly, they will make your furniture look brand new.
Patio furniture can make a huge difference to your enjoyment of your backyard, and well-chosen pieces can become attractive features of your garden design.
Cast aluminum furniture has steadily replaced cast iron furniture for several reasons.
They include the table and four chairs in most cases, though some also include other accessories to be put around the area or an umbrella.
All you need to get started are some plywood and sheet metal to make the molds and a supply of Portland cement,sand,gravel and water.
3. 2,000 - 3,000 PSI: more power for cleaning a large wood deck or washing aluminum or vinyl siding.
Bars: Create a true oasis with multi-piece outdoor bar sets including stools and three-side bars, bar carts or bar tables to set up your drink station.


text:
Economics x Art Forms x Manufacturing x clear all
Decorative Arts, Furniture, and Industrial Design
Drawing and Pastels
Financial Aspects of Art
Literary Studies (Poetry and Poets)
Christian Churches and Denominations
Alken, Sefferin (1717–1782)
Reference Entry. Subjects: Sculpture and Carving; Manufacturing; History of Manufacturing and Construction; Construction. 3 words.
See Alken family
Anderson, Alfred (1896–2005), joiner and soldier
John M. MacKenzie.
Reference Entry. Subjects: Military History; Warfare and Defence; Art Forms; Manufacturing; History of Manufacturing and Construction; Construction. 1041 words.
Anderson, Alfred (1896–2005), joiner and soldier, was born on 25 June 1896 at 20 Kinloch Street, Dundee, the third son of Andrew Anderson (1864–1945) and his wife, Christina, née Emmerson...
Anderson, Janet (1697–1761), milliner and maker of graveclothes
Elizabeth C. Sanderson.
Reference Entry. Subjects: Manufacturing; History of Manufacturing and Construction; Fashion, Jewellery, and Body Art. 1005 words.
Anderson, Janet (1697–1761), milliner and maker of graveclothes, was born on 1 January 1697 and baptized in Edinburgh two days later. She was the daughter of James Anderson (1662–1728),...
Arne, Thomas (bap. 1682, d. 1736), upholsterer and theatre servant
Reference Entry. Subjects: Decorative Arts, Furniture, and Industrial Design; Manufacturing; History of Manufacturing and Construction; Fashion, Jewellery, and Body Art; Theatre. 3 words.
See Arne family
Ashington group [pitmen painters] (act. 1934–1983)
William Feaver.
Reference Entry. Subjects: Manufacturing; History of Manufacturing and Construction; Drawing and Pastels; Painting. 2963 words.
Ashington group [pitmen painters] (act. 1934–1983), originated in October 1934 when men, mainly coalminers, from Ashington, Northumberland, began classes in art appreciation. It was a...
Barnsley family (per. 1885–1987), architects, designers, and craftspeople
Alan Crawford.
Reference Entry. Subjects: Architecture; Art Forms; Manufacturing; History of Manufacturing and Construction; Construction. 3199 words.
Barnsley family (per. 1885–1987), architects, designers, and craftspeople, came to prominence with (Arthur) Ernest Barnsley (1863–1926), architect and designer, and Sidney Howard Barnsley...
Barnsley, Sidney Howard (1865–1926), architect and furniture maker
Reference Entry. Subjects: Decorative Arts, Furniture, and Industrial Design; Architecture; Manufacturing; History of Manufacturing and Construction. 3 words.
See Barnsley family
Barnsley, (William) Edward (1900–1987), designer and craftsman
Reference Entry. Subjects: Art Forms; Manufacturing; History of Manufacturing and Construction; Construction. 3 words.
Barron, (Mabel) Phyllis (1890–1964), designer and textile printer
Barley Roscoe.
Reference Entry. Subjects: Manufacturing; History of Manufacturing and Construction; Fashion, Jewellery, and Body Art. 890 words.
Barron, (Mabel) Phyllis (1890–1964), designer and textile printer, was born on 19 March 1890 in Taplow, Buckinghamshire, the younger of two daughters of Walter Barron and his wife, Alice...
Browne, Alexander (d. 1706), miniature painter and auctioneer
Antony Griffiths.
Reference Entry. Subjects: Drawing and Pastels; Painting; Manufacturing; History of Manufacturing and Construction; Financial Aspects of Art. 475 words.
Browne, Alexander (d. 1706), miniature painter and auctioneer, was also one of the first publishers of mezzotints. Of his parents and education nothing is known. In 1669 he wrote and...
Browne, Carl
Carlos A. Schwantes.
Reference Entry. Subjects: Drawing and Pastels; Painting; Political Theory; Journalism; Manufacturing; History of Manufacturing and Construction. 1382 words.
Browne, Carl (1846–16 January 1914), political agitator, reform journalist, and organizer of "Coxey's Army", political agitator, reform journalist, and organizer of "Coxey's Army," was born...
Bulloch, John (1805–1882), brass-finisher and literary scholar
Sidney Lee.
Reference Entry. Subjects: Manufacturing; History of Manufacturing and Construction; Literature; Literary Theory and Cultural Studies; Metalwork. 193 words.
Bulloch, John (1805–1882), brass-finisher and literary scholar, was a native of Aberdeen. For most of his life he worked as a brass-finisher, and lived in very humble circumstances, but he...
Byfield, Louis (1816–1886)
Reference Entry. Subjects: Manufacturing; History of Manufacturing and Construction; Prints and Printmaking. 3 words.
See Byfield family
Carder, Frederick
Dwight P. Lanmon.
Reference Entry. Subjects: Manufacturing; History of Manufacturing and Construction; Ceramic Arts, Pottery, and Glass. 1127 words.
Carder, Frederick (18 September 1863–10 December 1963), glassmaker and founder and managing director of Steuben Glass Works in Corning, New York, was born in Brockmoor, Kingswinford,...
Richard Martin.
Carnegie, Hattie (15 March 1886–22 February 1956), fashion designer and merchandiser, was born Henrietta Könengeiser in Vienna, Austria, the daughter of Isaac Könengeiser and Hannah...
Carter, John (1815–1850), silk weaver and draughtsman
T. F. Henderson.
Reference Entry. Subjects: Fashion, Jewellery, and Body Art; Manufacturing; History of Manufacturing and Construction. 282 words.
Carter, John (1815–1850), silk weaver and draughtsman, was born in Coggeshall, Essex, on 31 July 1815, the son of a labourer. After attending the local school he went to a charity school...
Chamberlain, Robert (bap. 1736?, d. 1798), enameller and porcelain manufacturer
Sonia F. G. Parkinson.
Chamberlain, Robert (bap. 1736?, d. 1798), enameller and porcelain manufacturer, may have been the 'base son' (baptismal register) of Sarah Chamberlain and an unknown father, baptized at St...
Chaplin, Ralph Hosea
Anne Huber Tripp.
Reference Entry. Subjects: Journalism; Drawing and Pastels; Painting; Manufacturing; History of Manufacturing and Construction. 1307 words.
Chaplin, Ralph Hosea (30 August 1887–23 May 1961), radical labor editor and artist, was born in Cloud County, Kansas, the son of Edgar Chaplin and Clara Bradford, farmers. Hard times forced...
Cliff, Clarice (1899–1972), ceramic designer and art director
Alun R. Graves.
Cliff, Clarice (1899–1972), ceramic designer and art director, was born on 20 January 1899 at 19 Meir Street, Tunstall, Staffordshire, one of eight children of Harry Thomas Cliff,...
Cobb, John (c. 1715–1778), cabinet-maker and upholsterer
Geoffrey Beard.
Reference Entry. Subjects: Decorative Arts, Furniture, and Industrial Design; Manufacturing; History of Manufacturing and Construction; Fashion, Jewellery, and Body Art. 1074 words.
Cobb, John (c. 1715–1778), cabinet-maker and upholsterer, is presumably the person of that name put as apprentice in 1729 to Tim Money, a Norwich upholsterer (Boyd MSS). The Norfolk...


In a large bowl, mix zucchini, all-purpose baking mix, onion, salt, eggs, Cheddar cheese, vegetable oil and garlic.
Spread zucchini mixture into the prepared baking dish. Bake in the preheated oven 25 minutes, or until bubbly and lightly browned. Cut into bite-sized pieces to serve.
No comments for: "Best Zucchini Appetizer Recipe"