In one of my previous posts I wrote about using Font Awesome as an icon set in Ionic 2 apps. See https://chriztalk.com/ionic-2-font-awesome/.
But what about using other fonts in an Ionic 2 app?
In this blog I will focus on adding a Google Font to you Ionic 2 app, but it should work for any font as long as you have the source files of the font.
It's a step by step tutorial based on an empty Ionic application.
So let's get started by creating a new application or cd to your existing application folder.
Go to https://fonts.google.com and select a font you like.
For this example I use the Barrio font.
Copy the woff2 url from the latin font-face (used for most western-european countries) and open it in your browser.
The woff2 file will now be downloaded. For convenience, rename it to barrio.woff2.
Now you should copy this file to your ionic project.
Create a new folder called fonts in the src/assets folder of your project.
Copy barrio.woff2 to the src/assets/fonts folder.
Next we have to define the font in the style sheet.
NOTICE: This might not work on older Android devices. Check http://caniuse.com/#search=WOFF2 to see what browser support woff2.
Thanks for another awesome tutorial! I've followed all steps, and don't seem to work. I've pretty much exacted all options to test, any ideas how to track errors/mistakes? Many thanks!
Did you try it by using the GitHub source?
Thanks. It really helped me.
Thanks man. This is awesome!!
I tried the Github source. It doesn't work on Android 4.4.2, but it works perfectly nice on my latest phone Android 7.1.1. Thanks a lot.
Nice post. It helped me a lot. Thank you ?
Please have a look at my new Ionic 2 theme.


text:
<?php

namespace Fridge\Tests\DBAL\Schema;

use Fridge\DBAL\Schema\ForeignKey;
use Fridge\DBAL\Schema\Schema;
use Fridge\DBAL\Type\Type;

/**
 * Schema test.
 *
 * @author GeLo <geloen.eric@gmail.com>
 */
class SchemaTest extends \PHPUnit_Framework_TestCase
{
    /** @var \Fridge\DBAL\Schema\Schema */
    private $schema;

    /** @var \Fridge\DBAL\Schema\Table */
    private $tableMock;

    /** @var \Fridge\DBAL\Schema\Sequence */
    private $sequenceMock;

    /** @var \Fridge\DBAL\Schema\View */
    private $viewMock;

    /**
     * {@inheritdoc}
     */
    protected function setUp()
    {
        $this->tableMock = $this->getMockBuilder('Fridge\DBAL\Schema\Table')
            ->disableOriginalConstructor()
            ->getMock();

        $this->tableMock
            ->expects($this->any())
            ->method('getName')
            ->will($this->returnValue('foo'));

        $this->sequenceMock = $this->getMockBuilder('Fridge\DBAL\Schema\Sequence')
            ->disableOriginalConstructor()
            ->getMock();

        $this->sequenceMock
            ->expects($this->any())
            ->method('getName')
            ->will($this->returnValue('foo'));

        $this->viewMock = $this->getMockBuilder('Fridge\DBAL\Schema\View')
            ->disableOriginalConstructor()
            ->getMock();

        $this->viewMock
            ->expects($this->any())
            ->method('getName')
            ->will($this->returnValue('foo'));

        $this->schema = new Schema('foo');
    }

    /**
     * {@inheritdoc}
     */
    protected function tearDown()
    {
        unset($this->schema);
        unset($this->tableMock);
        unset($this->sequenceMock);
        unset($this->viewMock);
    }

    public function testInitialState()
    {
        $this->assertSame('foo', $this->schema->getName());
        $this->assertFalse($this->schema->hasTables());
        $this->assertEmpty($this->schema->getTables());
        $this->assertFalse($this->schema->hasSequences());
        $this->assertEmpty($this->schema->getSequences());
        $this->assertFalse($this->schema->hasViews());
        $this->assertEmpty($this->schema->getViews());
    }

    public function testTable()
    {
        $this->tableMock
            ->expects($this->once())
            ->method('setSchema')
            ->with($this->equalTo($this->schema));

        $this->schema->setTables(array($this->tableMock));

        $this->assertTrue($this->schema->hasTable('foo'));
        $this->assertSame($this->tableMock, $this->schema->getTable('foo'));
    }

    public function testCreateTableWithFullOptions()
    {
        $table = $this->schema->createTable(
            'foo',
            array(
                array('name' => 'foo', 'type' => Type::STRING, 'options' => array('length' => 20)),
                array('name' => 'bar', 'type' => Type::STRING),
            ),
            array('name' => 'foo', 'columns' => array('foo')),
            array(
                array(
                    'name'            => 'foo',
                    'local_columns'   => array('foo'),
                    'foreign_table'   => 'bar',
                    'foreign_columns' => array('bar'),
                    'on_delete'       => ForeignKey::CASCADE,
                    'on_update'       => ForeignKey::RESTRICT,
                ),
            ),
            array(
                array('name' => 'bar', 'columns' => array('bar'), 'unique' => true),
            ),
            array(
                array('name' => 'baz', 'definition' => 'baz'),
            )
        );

        $this->assertTrue($this->schema->hasTable('foo'));

        $this->assertSame('foo', $table->getName());

        $this->assertTrue($table->hasColumn('foo'));
        $this->assertSame(Type::STRING, $table->getColumn('foo')->getType()->getName());
        $this->assertSame(20, $table->getColumn('foo')->getLength());

        $this->assertTrue($table->hasPrimaryKey());
        $this->assertSame('foo', $table->getPrimaryKey()->getName());
        $this->assertSame(array('foo'), $table->getPrimaryKey()->getColumnNames());

        $this->assertTrue($table->hasForeignKey('foo'));
        $this->assertSame('foo', $table->getForeignKey('foo')->getName());
        $this->assertSame(array('foo'), $table->getForeignKey('foo')->getLocalColumnNames());
        $this->assertSame('bar', $table->getForeignKey('foo')->getForeignTableName());
        $this->assertSame(array('bar'), $table->getForeignKey('foo')->getForeignColumnNames());
        $this->assertSame(ForeignKey::CASCADE, $table->getForeignKey('foo')->getOnDelete());
        $this->assertSame(ForeignKey::RESTRICT, $table->getForeignKey('foo')->getOnUpdate());

        $this->assertTrue($table->hasIndex('bar'));
        $this->assertSame(array('bar'), $table->getIndex('bar')->getColumnNames());
        $this->assertTrue($table->getIndex('bar')->isUnique());

        $this->assertTrue($table->hasCheck('baz'));
        $this->assertSame('baz', $table->getCheck('baz')->getDefinition());
    }

    public function testCreateTableWithMinimalOptions()
    {
        $table = $this->schema->createTable(
            'foo',
            array(
                array('name' => 'foo', 'type' => Type::STRING),
                array('name' => 'bar', 'type' => Type::STRING),
            ),
            array('columns' => array('foo')),
            array(
                array('local_columns' => array('foo'), 'foreign_table' => 'bar', 'foreign_columns' => array('bar')),
            ),
            array(
                array('columns' => array('bar')),
            ),
            array(
                array('definition' => 'baz'),
            )
        );

        $this->assertTrue($table->hasPrimaryKey());
        $this->assertSame(array('foo'), $table->getPrimaryKey()->getColumnNames());

        $foreignKeys = array_values($table->getForeignKeys());
        $this->assertSame(array('foo'), $foreignKeys[0]->getLocalColumnNames());
        $this->assertSame('bar', $foreignKeys[0]->getForeignTableName());
        $this->assertSame(array('bar'), $foreignKeys[0]->getForeignColumnNames());

        $indexes = array_values($table->getIndexes());

        $this->assertSame(array('foo'), $indexes[0]->getColumnNames());
        $this->assertTrue($indexes[0]->isUnique());

        $this->assertSame(array('bar'), $indexes[1]->getColumnNames());
        $this->assertFalse($indexes[1]->isUnique());

        $checks = array_values($table->getChecks());
        $this->assertSame('baz', $checks[0]->getDefinition());
    }

    public function testSetTablesDropPreviousTables()
    {
        $tableMock = $this->getMockBuilder('Fridge\DBAL\Schema\Table')
            ->disableOriginalConstructor()
            ->getMock();

        $tableMock
            ->expects($this->any())
            ->method('getName')
            ->will($this->returnValue('bar'));

        $this->schema->setTables(array($this->tableMock));

        $this->assertTrue($this->schema->hasTable('foo'));
        $this->assertFalse($this->schema->hasTable('bar'));

        $this->schema->setTables(array($tableMock));

        $this->assertTrue($this->schema->hasTable('bar'));
        $this->assertFalse($this->schema->hasTable('foo'));
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     * @expectedExceptionMessage The table "foo" of the schema "foo" does not exist.
     */
    public function testGetTableWithInvalidName()
    {
        $this->schema->getTable('foo');
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     * @expectedExceptionMessage The table "foo" of the schema "foo" already exists.
     */
    public function testAddTableWithInvalidName()
    {
        $this->schema->addTable($this->tableMock);
        $this->schema->addTable($this->tableMock);
    }

    public function testRenameTable()
    {
        $this->schema->addTable($this->tableMock);

        $this->assertTrue($this->schema->hasTable('foo'));
        $this->assertFalse($this->schema->hasTable('bar'));

        $this->schema->renameTable('foo', 'bar');

        $this->assertTrue($this->schema->hasTable('bar'));
        $this->assertFalse($this->schema->hasTable('foo'));
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     */
    public function testRemaneTableWithInvalidOldName()
    {
        $this->schema->renameTable('foo', 'bar');
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     */
    public function testRenameTableWithInvalidNewName()
    {
        $tableMock = $this->getMockBuilder('Fridge\DBAL\Schema\Table')
            ->disableOriginalConstructor()
            ->getMock();

        $tableMock
            ->expects($this->any())
            ->method('getName')
            ->will($this->returnValue('bar'));

        $this->schema->addTable($tableMock);
        $this->schema->addTable($this->tableMock);

        $this->schema->renameTable('foo', 'bar');
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     * @expectedExceptionMessage The table "foo" of the schema "foo" does not exist.
     */
    public function testDropTableWithInvalidName()
    {
        $this->schema->dropTable('foo');
    }

    public function testSequence()
    {
        $this->schema->setSequences(array($this->sequenceMock));

        $this->assertTrue($this->schema->hasSequence('foo'));
        $this->assertSame($this->sequenceMock, $this->schema->getSequence('foo'));
    }

    public function testCreateSequence()
    {
        $sequence = $this->schema->createSequence('foo', 2, 3);

        $this->assertTrue($this->schema->hasSequence('foo'));

        $this->assertSame('foo', $sequence->getName());
        $this->assertSame(2, $sequence->getInitialValue());
        $this->assertSame(3, $sequence->getIncrementSize());
    }

    public function testSetSequencesDropPreviousSequences()
    {
        $sequenceMock = $this->getMockBuilder('Fridge\DBAL\Schema\Sequence')
            ->disableOriginalConstructor()
            ->getMock();

        $sequenceMock
            ->expects($this->any())
            ->method('getName')
            ->will($this->returnValue('bar'));

        $this->schema->setSequences(array($this->sequenceMock));

        $this->assertTrue($this->schema->hasSequence('foo'));
        $this->assertFalse($this->schema->hasSequence('bar'));

        $this->schema->setSequences(array($sequenceMock));

        $this->assertTrue($this->schema->hasSequence('bar'));
        $this->assertFalse($this->schema->hasSequence('foo'));
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     * @expectedExceptionMessage The sequence "foo" of the schema "foo" does not exist.
     */
    public function testGetSequenceWithInvalidName()
    {
        $this->schema->getSequence('foo');
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     * @expectedExceptionMessage The sequence "foo" of the schema "foo" already exists.
     */
    public function testAddSequenceWithValidName()
    {
        $this->schema->addSequence($this->sequenceMock);
        $this->schema->addSequence($this->sequenceMock);
    }

    public function testRenameSequence()
    {
        $this->schema->addSequence($this->sequenceMock);

        $this->assertTrue($this->schema->hasSequence('foo'));
        $this->assertFalse($this->schema->hasSequence('bar'));

        $this->schema->renameSequence('foo', 'bar');

        $this->assertTrue($this->schema->hasSequence('bar'));
        $this->assertFalse($this->schema->hasSequence('foo'));
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     */
    public function testRemaneSequenceWithInvalidOldName()
    {
        $this->schema->renameSequence('foo', 'bar');
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     */
    public function testRenameSequenceWithInvalidNewName()
    {
        $sequenceMock = $this->getMockBuilder('Fridge\DBAL\Schema\Sequence')
            ->disableOriginalConstructor()
            ->getMock();

        $sequenceMock
            ->expects($this->any())
            ->method('getName')
            ->will($this->returnValue('bar'));

        $this->schema->addSequence($this->sequenceMock);
        $this->schema->addSequence($sequenceMock);

        $this->schema->renameSequence('foo', 'bar');
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     */
    public function testDropSequenceWithInvalidValue()
    {
        $this->schema->dropSequence('foo');
    }

    public function testView()
    {
        $this->schema->setViews(array($this->viewMock));

        $this->assertTrue($this->schema->hasView('foo'));
        $this->assertSame($this->viewMock, $this->schema->getView('foo'));
    }

    public function testCreateView()
    {
        $view = $this->schema->createView('foo', 'bar');

        $this->assertTrue($this->schema->hasView('foo'));

        $this->assertSame('foo', $view->getName());
        $this->assertSame('bar', $view->getSQL());
    }

    public function testSetViewsDropPreviousViews()
    {
        $viewMock = $this->getMockBuilder('Fridge\DBAL\Schema\View')
            ->disableOriginalConstructor()
            ->getMock();

        $viewMock
            ->expects($this->any())
            ->method('getName')
            ->will($this->returnValue('bar'));

        $this->schema->setViews(array($this->viewMock));

        $this->assertTrue($this->schema->hasView('foo'));
        $this->assertFalse($this->schema->hasView('bar'));

        $this->schema->setViews(array($viewMock));

        $this->assertTrue($this->schema->hasView('bar'));
        $this->assertFalse($this->schema->hasView('foo'));
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     * @expectedExceptionMessage The view "foo" of the schema "foo" does not exist.
     */
    public function testGetViewWithInvalidName()
    {
        $this->schema->getView('foo');
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     * @expectedExceptionMessage The view "foo" of the schema "foo" already exists.
     */
    public function testAddViewWithInvalidName()
    {
        $this->schema->addView($this->viewMock);
        $this->schema->addView($this->viewMock);
    }

    public function testRenameView()
    {
        $this->schema->addView($this->viewMock);

        $this->assertTrue($this->schema->hasView('foo'));
        $this->assertFalse($this->schema->hasView('bar'));

        $this->schema->renameView('foo', 'bar');

        $this->assertTrue($this->schema->hasView('bar'));
        $this->assertFalse($this->schema->hasView('foo'));
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     */
    public function testRemaneViewWithInvalidOldName()
    {
        $this->schema->renameView('foo', 'bar');
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     */
    public function testRenameViewWithInvalidNewName()
    {
        $viewMock = $this->getMockBuilder('Fridge\DBAL\Schema\View')
            ->disableOriginalConstructor()
            ->getMock();

        $viewMock
            ->expects($this->any())
            ->method('getName')
            ->will($this->returnValue('bar'));

        $this->schema->addView($this->viewMock);
        $this->schema->addView($viewMock);

        $this->schema->renameView('foo', 'bar');
    }

    /**
     * @expectedException Fridge\DBAL\Exception\SchemaException
     */
    public function testDropViewWithInvalidValue()
    {
        $this->schema->dropView('foo');
    }

    public function testClone()
    {
        $table = $this->schema->createTable('foo');
        $sequence = $this->schema->createSequence('foo');
        $view = $this->schema->createView('foo');

        $clone = clone $this->schema;

        $this->assertEquals($this->schema, $clone);
        $this->assertNotSame($this->schema, $clone);

        $this->assertEquals($table, $clone->getTable($table->getName()));
        $this->assertNotSame($table, $clone->getTable($table->getName()));
        $this->assertSame($clone, $clone->getTable($table->getName())->getSchema());

        $this->assertEquals($sequence, $clone->getSequence($sequence->getName()));
        $this->assertNotSame($sequence, $clone->getSequence($sequence->getName()));

        $this->assertEquals($view, $clone->getView($view->getName()));
        $this->assertNotSame($view, $clone->getView($view->getName()));
    }
}

redpajama_set_name: RedPajamaGithub


text:
Generic Glucagon for $200, Where's the Savings? Get it for $5...WITH a coupon
In December 2020, the U.S. FDA approved several long-delayed generic versions of traditional mix-and-inject form of glucagon emergency kits. Among them were from Amphastar Pharmaceuticals, Inc. of Rancho Cucamonga, CA https://www.globenewswire.com/news-release/2020/12/29/2151177/0/en/Amphastar-Announces-Approval-for-Glucagon-for-Injection-Kit-1mg.html which was the very first, followed by another from Fresenius Kabi USA based in Lake Zurich, IL (in suburban Chicago, the parent company is based outside of Frankfurt Germany) https://www.businesswire.com/news/home/20200205005106/en/Fresenius-Kabi-Introduces-Glucagon-Emergency-Medicine-Kit.
Sally Choe, Ph.D., director of the Office of Generic Drugs in the FDA's Center for Drug Evaluation and Research, noted the approval was a major step forward for people with diabetes.
"Glucagon for injection has been approved for use in the U.S. for more than 20 years [blogger note: it's actually been on the market nearly 50 years; the same old-school kits were the ones my parents had when I was a child, although they weren't biosynthetic versions back then], but until today, there has been no approved generic of this important drug that can save the lives of people who may experience the serious condition of very low blood sugar," she said in a statement.
The FDA statement suggests that FDA approvals for other generics would be a straightforward matter, but without a visit to the FDA orange book, I'm not sure there are any others right now.
The FDA decisions on generic glucagon were a very long-overdue move to lower prices, rather than innovating on glucagon, which has traditionally been a very cumbersome and inconvenient treatment. Given a choice, most patients or caregivers would prefer the newer glucagon autoinjector hypopens from Xeris or Zealand Pharma which are far more convenient for caregivers to use because neither requires reconstitution which the old-school kits require (and let's face it, by the time patients need glucagon, they usually can't give it to themselves).
FDA's own research proves that greater competition among generic drug makers is associated with lower overall generic drug prices. For products with a single generic producer, the generic Average Manufacturer Prices (AMP) reported to the Centers for Medicare and Medicaid Services (CMS) comes in 39% lower than the brand AMP before generic competition, compared to a 31% reduction using invoice prices. With two competitors, generic prices are 54% lower. With four competitors, generic prices are 79% less. With six or more competitors, generic prices using show price reductions of more than 95% compared to brand prices.
Accordingly, old-school glucagon emergency kits should be priced about 54% less than Lilly's or Novo Nordisk's glucagon emergency kits. That doesn't appear to be true on glucagon emergency kits, which is victimized by the PBM rebate scheme which also impacts insulin. So far, prices on the newer generic glucagon kits are only marginally lower (IF they are even lower; sometimes they are not) than the brand-name old-school products from Lilly and Novo Nordisk.
For example, the prices for the Fresenius Kabi glucagon kits sell for about $200.00 a kit (or even more) compared to the average prices for the branded products from Lilly and Novo Nordisk, which are now priced about $209.25 assuming one uses a GoodRx coupon to get the lower price from a local pharmacy. McKesson's ScriptHero (which is powered internally by CoverMyMeds, SingleCare and the PBM MedImpact's own ScriptSave WellRx) won the lowest price, coming in at $127.37 at Walgreens. Currently, manufacturer coupons on Zegalogue pens brings the cost of that down to about $25.00 for a 2-pack. Based on my review of the coupon fine-print, I also believe that Zealand Pharma's Zegalogue coupon also works for non-insured cash-paying customers; many coupon offers exclude cash-payers, so this one is different.
Still, one must ask why FDA had done absolutely nothing until December 2020? Something was badly broken about that.
Patients with commercial healthcare insurance CAN now get the Fresenius Kabi glucagon kit for a mere $5.00 with a coupon https://kabicare.us/wp-content/themes/kabicare/documents/Glucagon-Emergency-Kit-CoPay-Saving-Card.pdf so the cost is very reasonable with that. I'm not certain why there's a Medicare/Medicaid/VA exclusion, but most coupons seem to try excluding those (that said, the coupon does appear to work for cash-payers up to a maximum dollar amount), but one part I don't understand is why it even requires a coupon to get that price?
It's a GENERIC!
Aren't generics SUPPOSED to be much cheaper in the first place?
We know that ongoing FDA inaction on generics, combined with FDA prioritization of newer, branded products, is a reason prices still remain sky-high on old-school glucagon rescue kits. Especially now that multiple generic versions are available. Let's face it: there's no reason for an old-school generic glucagon product first developed in the 1930's should cost patients nearly $200.00, and yet that's the case in the badly-broken U.S. prescription drug market. Why?!
In the end, its yet another example of how completely dysfunctional the U.S. prescription drug market really is.
Author P.S., March 18, 2022: Since this post, I reached out to a several people who might be in a position to influence Civica Rx to also include old-school, mix-and-inject glucagon rescue kits along with insulin when it anticipates a launch in early 2024. I heard back from virtually all of them, specifically people at Civica Rx and JDRF's CEO Aaron Kowalski. The consensus was the same for all of them: "Good idea. Glucagon rescue kits are not new, nor are they innovative like new Xeris Gvoke or Zealand Pharma's Zegalogue products (and maybe Lilly's Baqsimi) are, yet they are all victimized by the same rebate-driven market dysfunction, and in spite of several generics, prices on these are all stubbornly high, therefore it makes sense to also consider mix-and-inject glucagon rescue kits." Watch this space!
Author P.S., July 2, 2022: diaTribe reports that Eli Lilly & Company has just announced that it will discontinue manufacturing its old-school, mix & inject Glucagon Emergency Kits. Lilly already sells a much more "modern" glucagon rescue treatment called Baqsimi, and with two rival generic products from Amphastar and Fresnius Kabi USA already on the market, sales of the Lilly kits have declined.
at Monday, March 07, 2022

redpajama_set_name: RedPajamaCommonCrawl


Aggravated Static is an Industrial/Gothic/Noise band from Orlando FL. We are trying to brake into the electronic scene with a new sound and Feel that people would enjoy and appreciate.
Aggravated Static was formed back in 1997 by Jonathan Feltner and Roger Brink. They both came from different styles of music ranging from Rock, Punk, Death Metal, Black Metal, Gothic and Industrial and from this Aggravated Static were born. A year after Aggravated Static was formed they released a demo tape. After the release of there demo they played numerous live shows and small tours in conclusion of this they realized that they wanted more out of there music so they decided there differences where to great and decided to go there separate ways. Aggravated Static ended in 1999. In 2001 Jonathan Feltner has brought the band back by himself and is trying to create a new sound for the band that's more synthetic and fewer guitars.
Computers,Samplers,Keyboards,Cubase vst, Reason, Pro Tools and a bunch of other stuff.


text:
Love Business EXPO
Book Your Exhibition Stand
FREE Delegate Booking
Exhibitor Announcements
Previous EXPOs
Love Business Networking
Networking Directory
Inspiring Business by Sharing Success
Macildowie appoints Head of Talent
Added by Love Business East Midlands | 8 August 2019
UPDATED: 8 August 2019
Midlands-based recruitment consultancy, Macildowie, has welcomed a new head of talent to its Nottingham headquarters.
Sarah-Louise Bussey returns to the company following a five-year spell as recruitment manager with national retailer Next, having previously spent ten years working at Macildowie's Leicester office.
The appointment is part of Macildowie's continued growth plans, with Sarah-Louise heading up the learning and development programme, aiming to refine the process of hiring, developing and retaining talent on offer across all divisions.
Explaining the significance of Sarah-Louise's return, chief executive officer at Macildowie, James Taylor, said:
"For a whole decade, Sarah-Louise demonstrated an outstanding ability for identifying and supporting talent, and I'm delighted to see her return to the Macildowie team, re-affirming our commitment that employees are the cornerstone of our business.
"Sarah-Louise's return is testament to the business' success, and a fundamental part of that success has come from our experienced and knowledgeable team working tirelessly to build a company we are all proud to be a part of.
"I'm looking forward to seeing how Sarah-Louise thrives in the new office, as our plans for growth continue. It's a pleasure to have her back in the Macildowie 'nest' – here's to the next ten years."
Commenting on her return, Sarah-Louise, added:
"I'm delighted to be back in the Macildowie office, particularly as I have such fond memories of my time with the company. I gained so many valuable skills that opened up some fantastic opportunities, both in my career and personal life.
"Very much at the heart of Macildowie, is James Taylor, who throughout my time away from Macildowie, continued to keep in touch. I was delighted to hear about the current team, recent success in prestigious awards and ambitious plans for the future. It became too good an opportunity to pass up. I'm excited to see how my role will benefit the team around me, and the overall success of the business."
Sarah-Louise joins the company at an exciting time, as for a sixth time running, Macildowie has been included in The Sunday Times Best Small Companies to Work For in 2019, coming in 23rd in the prestigious rankings. It also took home third place in the Midlands Best Companies to Work For, among a 75-strong list.
Macildowie operates across the Midlands and recently appointed industry heavyweight, John O'Sullivan, to its ranks, bringing with him over 30 years' experience.
For further information on Macildowie visit www.macildowie.com.
Image caption: Chief executive officer, James Taylor alongside new head of talent, Sarah-Louise Bussey.
Mercia Marina is celebrating after winning a series of top gold tourism and wildlife accolades.
Experienced property litigation solicitor strengthens Lincolnshire legal firm
Love Business East Midlands
Talbot Street
Whitwick
LE67 5AW
Email: info@lovebusinesseastmidlands.com
Holywell Park Conference Centre
Holywell Way,
Loughborough University Science and Enterprise Park
LE11 3GR
Terms and Conditions | Privacy Policy | Cookie Policy | Contact Us | Site Map
© 2020 Love Business | Website Design Quiet Storm Solutions Ltd
Your Friend's Details
Your Friend's First Name
Your Friend's Surname
I saw this on the Love Business EXPO website and I thought that you would be interested... ##SharePageTitle## ##SharePageURL##


S.E.ED.S. offers childcare for school-aged children at Lanai. We offer meaningful and stimulating daily activities before and after school. Click on the titles or pictures for more information.
Before you start, have the following information ready.
by clicking its title or picture.
Registration is required for each new school year. All new and returning students must register for the new school year. Registration is limited and on a first come first serve basis. Once you have completed your registration you MUST complete the forms attached with your families most current information.
IF registration fee and forms are not completed before the school year begins your child will not be permitted into the Seeds Afterschool Care Program. The childcare program has a 2 day per week/monthly minimum requiremnt.
All new and returning students must complete the registration process for the Fall school year 2018/2019. The registration fee will save your spot for the new school year.
Our staff will engage your students with different projects including arts & crafts, music, dance and science. The staff will go over skills learned in the classroom to reinforce your student's learning. Each day the program will provide a snack, homework assistance, enrichment classes, and the final hour of the day will be Kid's Choice. Kid's Choice includes games, indoor/outdoor structured activities, playground time and opportunities to finish homework and/or projects.
Students will have daily activities in art, computers, science, sports and fitness. Each day the program will provide a snack, homework assistance, enrichment classes, and the last hour will be Kid's Choice. Kid's Choice includes games, indoor/outdoor structured activities, playground time and opportunities to finish homework and/or projects.
Sign up for sports, games, fun activities and supervised play. Morning and Afternoon snacks will be provided. Students must bring their own lunch.
Seeds Care is open during specific school breaks.
If you have a Middle schooler or High School student, that needs something to do, send them to Seeds Care as a camp volunteer. They will receive community activity credit. Just ask our administration for more information.
If you have a Middle schooler or High School student, that needs something to do, send them to Seeds Summer Camp as a camp volunteer. They will receive community activity credit. Just ask our administration for more information.


text:
Ford's Compact car Lineup
If you're on the hunt for quality compact cars, look no further than your Southern California Ford Dealers. Each location has a wide variety of quality compact cars for sale, including the Ford Fiesta, Ford EcoSport, Ford Focus, Ford C-Max, and Ford Escape. Learn more about these amazing vehicles.
With the 2018 Ford Fiesta, you get the choice of one of four models. Each one is packed with features that make driving easier and more enjoyable. You also benefit from an interior that's shockingly spacious. Plus, the rear hatch allows you to load larger items without any struggle.
All Ford Fiestas come with a rearview camera, which makes avoiding obstacles as you're backing up far easier. You can choose one of 10 available paint colors, like the vibrant Outrageous Green Metallic Tinted Clearcoat and Hot Pepper Red Metallic Tinted Clearcoat.
Many have grown to love the versatile nature of the Ford Focus. You can get this compact car as a sedan or hatchback, so accommodating your lifestyle is even easier. Whatever you select, the car serves up plenty of classy styling touches, a nice interior, and clever technologies.
For example, the available 1.0-liter EcoBoost engine combines turbocharging and direct injection for surprising performance and unrivaled efficiency. Adding the Sync 3 infotainment system means everything responds quicker, and you use intuitive voice commands, instead of having to memorize odd phrases.
To drive with a truly clear conscious, the Ford C-Max cuts down on or eliminates tailpipe emissions. Just plug it in while you're at home, work, or anywhere else, and feel the good vibes as you travel using electricity. The included SmartGauge with EcoGuide teaches you how driving habits affect vehicle range. It will help you with getting the most out of the car as you maximize drivetrain efficiencies.
Driving the Ford C-Max daily is a joy. The interior has plenty of space on both rows, and the cargo area is quite substantial. A large hatch and folding rear seats mean you can accommodate larger items like pieces of furniture, bicycles, and more.
Get to know the 2018 Ford EcoSport, the latest addition to Ford's lineup. It packs quite a few features in a small package, so you enjoy amazing value. Depending on the model you select, this small SUV features premium interior finishes and cutting-edge technologies.
Among the options is a blind spot information system, hill-start assist, auto start-stop, and four-wheel drive, to name a few.
There's a reason why the Ford Escape has been a dominant force in the market. The compact SUV has a refined design that balances on-road performance, utility, comfort, and efficiency. That makes it a great vehicle for commuting to work, running errands, and even going on weekend adventures.
When you're out having fun, folding down the rear seats expands the cargo capacity to 68 cubic feet. If you have a passenger or two you must put in the rear, the backseats are on a 60/40 split, making it possible to accommodate everyone and everything.
See these compact Ford vehicles today at your Southern California Ford Dealers.


text:
VERSIÓN EN ESPAÑOL I
Corrientes Becomes Corrientes Again
Natural Values
Conservation Training
Wildlife Restoration
The Restoration of Species
Giant Anteater
Pampas Deer
Collared Peccary
Green-Winged Macaw
Volunteer Jobs in Iberá
Tourist Destination Iberá
Iberá as a Tourist Destination
Routes of Iberá
Access Portals
Park and Reserve
The Park (Public Lands)
The Reserve (Private Farms)
Future Iberá National Park
Threats to Iberá
Iberá Project Staff
Landscapes of Iberá
Environmental Education and Promotion
Located in the central northeast part of the province of Corrientes of Argentina, with an area of 1,300,000 hectares, the Iberá is one of the most important natural regions of the Southern Cone. Simply put, it is a drainage basin that is continuously filled with rainwater which, due to the low runoff associated with a virtually flat terrain, has more than half of its surface covered by water. This makes Iberá one of the most important freshwater wetlands in South America. However, the region is much more than only "esteros" or "wetlands". Iberá also encompasses dry grasslands, savannahs, and forests. This integrated combination of wet and dry ecosystems harbors a great diversity of flora and fauna as well as spectacular landscapes.
Iberá is also a Provincial Natural Reserve, declared as such in 1983. The Reserve's boundaries are set by the borders of the drainage basin, and therefore contain the entire basin within its limits. This coincidence between hydrological and administrative borders aids in the protection of Iberá offering great conservation potential. Apart from beautiful landscapes and diverse flora and fauna, the Iberá region also harbors a rich culture kept by its people. Interesting history and traditions have arisen around Iberá's landscape and bring together two worlds: terrestrial and aquatic.
Presently, the Iberá region has great potential to develop a strong local economy based on the sustainable use of natural resources, primarily in the form of ecotourism. Thanks to the work of reserve authorities, many species of flora and fauna have been able to spectacularly recover after the last few decades of non-ecologically sound land use. Nonetheless, Iberá still requires creative actions to secure long-term ecological integrity. These actions need to reverse the extreme environmental degradation that occurred during the 20th century. During this time of careless land use, a variety of species emblematic to Iberá disappeared, such as the glaucous macaw (globally extinct), the jaguar, the giant river otter, the collared peccary, the tapir, and the pampas deer. Actions must also address the political-environmental pressures to which Iberá is subject because, unfortunately, they threaten its long-term survival and integrity.
The climate of Iberá is subtropical. The temperatures for the month of July (the coldest month of the year) vary between 15 and 16 degrees Celsius. In the summer, the average temperature for the month of January is 26.5 degrees Celsius. The average precipitation per year is 1500 mm. The warmer months (November to March) have higher rainfalls averaging 600-700 mm. The atmospheric pressure is fairly uniform throughout the region, ranging from 1002 to 1005 hPa. The winter months tend to have the higher pressures and the summer months the lower ones. The variation of solar radiation during the year is very small. On average the solar radiation oscillates between 220 calories/cm2/day in the Southern part of Iberá and 290 calories/cm2/day in the Northern part during the winter. In the summer, these values change to 500 and 650 calories/cm2/day, respectively.
Geological Origins
The Iberá Water Basin was molded by the Paraná River approximately 1.8 million years ago during the Pliocene-Pleistocene era. During this time, the river crossed the Province of Corrientes Northeast to Southwest, from Ituzaingo to Esquina. In these remote times, the Paraná flowed through what is today known as the depression of Iberá, leaving space for the Carambola/Corriente river. In its trajectory, a barrier of basalt rock impeded the Paraná from flowing west; but when the river finally broke through the barrier, its waters spilled over into the Yabebiry, a tribuitary of the Paraguay River. This established the river's current flow in the areas of Ituzaingó and Confluencia. In passing over the basalt rock barrier, water rapids in Apipé, Santa María, 25 de Mayo and Jupiter were formed, and the barrier caused the river to split creating many islands such as Apipé Grande (Castellanos, 1975).
The Conservation Land Trust Argentina (CLT Argentina) I E-mail: cltprensa@gmail.com
Visit www.tompkinsconservation.org


Rockaway Township is fortunate to have thousands of acres of public open space and parkland located in the community. Listed below are some of the areas with a brief description of park amenities. For a complete listing of parks locations within the Township, click on the link below to access a detailed map depicting all recreation and other public facilities as well as street locations.
The Rockaway Township Park and Recreation Facilities map is available here.


text:
University Information, Campus and History
(Bath, Somerset, England, UK)
Bath University is one of England's youngest universities. Its history spans only 40 years, but it is highly regarded for its quality of education. Bath University received its Royal Charter from the Queen in 1966, but it traces its history more than 100 years before that. The Bristol Trade School was its predecessor, and it was established in 1856. Since then, the school had changed its name five times and had changed its academic aims as well. In 1960, it changed its name to the Bristol College of Science and Technology when it decided to focus on technical skills and vocational learning. This laid the groundwork for Bath University.
Bath has two campuses: the Claverton campus located in Claverton Down and the Oakfield campus located in Swindon. The university campus is structured like a town and is complete with restaurants, bars, a beauty salon, and a supermarket. However, its architecture is different from the city where it takes its name. In contrast to the Georgian and Gothic architecture that is popular the City of Bath is the university's functional and modern design. It is mostly made of glass, steel, and concrete. Pedestrian and motorist traffic are separate from each other. Cars and other vehicles move about on street level, while pedestrians and students traverse the walkway above the street's surface called the Parade. While critics claim that this design eliminates the charm of the traditional red-brick university, it is hard to argue with the functionality and safety of the structure.
Bath University has three academic faculties and two schools. The faculties are comprised of several academic departments, while the schools are comprised of programs and departments. The Division for Lifelong Learning works closely with these institutions to help mature students pursue or continue their higher education.
The faculties and schools of Bath University are:
Faculty of Engineering and Design
School for Health
Students of Bath University have access to many different facilities like hostel kitchenettes, several cafés, the Sports Training Village, and the Library and Learning Centre. More than 650 study bedrooms are available at surrounding residences, while students in their second year often choose to stay off campus, in rented properties within the city itself. Information about student accommodation.
The Sports Training Village is a state-of-the-art facility built in 1992 and refurbished in 2003. Bath takes pride in its success in athletics, and it is home to TeamBath, the term used to refer to all of the university's sports teams. The Sports Training Village features eight indoor tennis courts; football and rugby fields; a 25-meter swimming pool; a multipurpose wooden court for basketball, volleyball or badminton; four separate fitness suites complete with gym equipment and staffed with training and sports medicine professionals; and an outdoor track. This facility is located in the Claverton campus.
The Library and Learning Centre is the heart of the Claverton campus. It is a huge library that operates all day and every day and allows night-owl students to study at any time. Competent research assistants and aides help students with their research queries.
Famous Students
Some of Bath University's famous alumni are Justin King (CEO of the supermarket chain Sainsbury's); Vedat Tavsanoglu (professor of Circuits and Communications History and a widely acknowledged electronic engineer); Neil Fox (radio DJ and TV personality); and Mansoor Hekmat (the Iranian Communist leader).
Contact University of Bath:
Address: University of Bath, Claverton Down, Bath, BA2 7AY, United Kingdom
Email: info@bath.ac.uk
http://www.bath.ac.uk
© Copyright TravelSmart Ltd
Bath University Information and Campus
Colleges and Facilities
University Faculties and Departments
University Accommodation
Directions, Transport and Travel
About Bath Tourist Attractions
Map of Bath
England World Guide
Bath University
© TravelSmart Ltd: University Guides - Copyright and Privacy Policy 2000-2015
Bath, England - Bath University Information and Campus - 3/3/2016 -


Have you ever felt done for the day but you still had to push on and produce your great work and ideas?
That situation happened to me a few weeks ago at my Productivity Ninja training session.
It was close to the end of a long day and we were all feeling the effects of the warm room and full brains. It was only 3:00 pm and we still had another 2 hours to go.
I wasn't sure how I was going to make it through. All I wanted to do was go back to the hotel and do something mindless.
The presenter made us all get up and move to another area of the room. He asked us to stand for the next part of the training.
Ugh. I felt so tired and now I had to stand? Really? Was this a good idea?
Then it started to happen. At first it was a slow trickle … barely noticeable. But then it gushed. It was my mojo returning. I sensed ideas brimming. I participated fully in the discussion.
My brain absorbed all the great information. It was amazing!
It took movement to create momentum.
Change the font you're using on your document while you write and then change it back when you're done.
Expand the view of your document to fill the computer screen.
When you're done for the day, give yourself a jolt and create the change you need to keep going.
Valeri Hall Little is chief business efficiency designer at intandem. She is also publisher of Beyond Burnout magazine. Applying her Keep It Simple System, she helps overwhelmed and overstretched entrepreneurs create organized, streamlined and efficient businesses. You can sign up for her free digital magazine and newsletter at www.intandem.ca.


Description: This is a detailed map of the city Baxter in Baker County, Florida. Section Township Range (STR) is shown. This map shows state roads, railroads, inland waters, a sawmill, schools, farm units and dwellings other than farms. Key to Florida Highway maps.


Exiled Tibetan spiritual leader the Dalai Lama warned that the situation in his homeland was "very tense" and that an uprising was possible.
Exiled Tibetan spiritual leader the Dalai Lama warned on Wednesday that the situation in his homeland was "very tense" and that an uprising was possible.
"Today there is too much anger. (The) situation is very tense," he said during a visit to the western German city of Baden Baden. "At any moment, an outburst could happen.
"This is my worry because with more uprising, there will be more crackdown," he continued. "Things are very sad.
"As soon as people are arrested, they use torture, and sometimes they kill them. Since public execution is difficult, they use torture when Tibetans are detained."
"In many places, schools are closed, especially private funded schools."
The Dalai Lama was in the spa town of Baden Baden for a ceremony yesterday in which he received the 2008 German Media Prize, which is warded every year by a panel of German editors and journalists.
Previous recipients have included Bill Clinton former US president; Nelson Mandela, the Nobel laureate and former South African president; and Helmut Kohl, Germany's former chancellor.


Sport-Tek youth full zip jacket. Poly/Spandex moisture management and antimicrobial performance fabric, cadet collar, and hidden hip pockets. SME Soccer Crest logo embroidered on the left chest.
Also available in Ladies and Unisex sizes.


text:
Q: Do package managers check the hashes of packages? Do package managers such as Synaptic and Apper check the hashes of installed as well as updated/downloaded packages by comparing them to online databases?
Do they maybe even identify packages by their hashes?

redpajama_set_name: RedPajamaStackExchange


text:
Justia Patents Plural Nitrogens In Alcohol MoietyUS Patent for Carboxylic acid esters of 2-hydroxy-5-isoalkyl-beta-methylstyrene Patent (Patent # 6,077,970)
Carboxylic acid esters of 2-hydroxy-5-isoalkyl-beta-methylstyrene
Oct 6, 1998 - Henkel Corporation
The present invention relates to carboxylic acid esters of 2-hydroxy-5-isoalkyl-beta-methylstyrenes wherein the said isoalkyl substituent comprises 8-18 carbon atoms.
Latest Henkel Corporation Patents:
DISPENSE FOR APPLYING AN ADHESIVE TO A REMOTE SURFACE
Methods and apparatus for controlled single electron transfer living radical polymerization
PREPREG CURING PROCESS FOR PREPARING COMPOSITES HAVING SUPERIOR SURFACE FINISH AND HIGH FIBER CONSOLIDATION
ADHESIVE COMPOSTIONS WITH WIDE SERVICE TEMPERATURE WINDOW AND USE THEREOF
This invention relates to a process for the preparation of hydroxyarylaldehydes from 4-alkylphenols by a new route. The invention further relates to the novel compositions that are prepared from the 4-alkylphenols. Among other uses known in the art, hydroxyarylaldehydes are particularly useful as intermediates in the preparation of oximes which find utility as metal extractants.
The end compounds produced by the processes of the present invention are particularly useful as intermediates for the production of oximes that in turn are useful for the extraction of copper and other metals from aqueous solutions. In this recovery process, the metal extractant is dissolved in a solvent, and is contacted with an aqueous metal solution to form a complex with the metal which is soluble in an organic solvent. The organic phase is then separated from the aqueous phase and the metal is stripped from the organic phase, usually by means of an acid.
The water immiscible solvents usually employed for this purpose are hydrocarbon solvents such as the petroleum-derived liquid hydrocarbons, either straight chain or branched, such as kerosene, fuel oil, etc. Various aromatic solvents may also be used, such as, for example, benzene, toluene, xylene and other aromatic solvents, particularly those derived from petroleum processing which may contain alkyl substituted aromatic materials. In addition to the simple hydrocarbon solvents, the chlorinated hydrocarbons may also be used and in some instances may improve solubility. Accordingly, both the unsubstituted and the chlorinated solvents are contemplated by the term "liquid hydrocarbon".
The extractants that are made from the intermediates that are produced by the processes of the present invention are characterized as having sufficient solubility in one or more of the above solvents or mixtures thereof to make about a 2% solution, and they are essentially insoluble or immiscible with water. At the same time, they each should form a complex with a metal, such as copper, which complex, likewise, is soluble in the organic solvent to at least the extent of about 2% by weight.
These characteristics are generally achieved by having alkyl substituents on the ring, that have at least 3 alkyl carbon atoms. Usually it is preferred not to have more than 25 carbon atoms total in the alkyl substituents since these substituents contribute to the molecular weight of the oxime extractant without improving operability. Large substituents, also, increase the amount of oxime needed for a given copper loading capacity. In general, the branched chain alkyl substituents effect a greater degree of solubility of the reagent and of the copper complex and, accordingly, these are preferred, especially those of 6 to 18 carbons.
As described in U.S. Pat. No. 4,868,334, for example, oxime extractants are often produced by reacting an organic carbonyl compound such as an aldehyde or ketone with hydroxylamine, usually generated from a hydroxylamine salt such as hydroxylammonium sulfate or hydroxylammonium chloride.
Current oximation procedures employ standard oximation processes with an alcohol such as methanol as a solvent, hydroxylammonium sulfate, and sodium acetate. An improved oximation process is described, for example, in U.S. Pat. No. 5,300,689.
The oximes, such as the hydroxy aryl ketoximes and hydroxy aryl aldoximes, which are substantially insoluble in water but soluble in water-immiscible organic solvents, such as kerosene, are useful in solvent extraction processes for the recovery of metals, particularly copper, from aqueous solutions. U.S. Pat. No. 4,507,268 describes a number of such oxime reagents prepared from ketones and aldehydes, and the use thereof in liquid/liquid extraction processes.
Reagents frequently employed in commercial processes for copper recovery are included among those offered by Henkel Corporation under the LIX.RTM. trademark, viz., LIX.RTM.63, LIX.RTM.065N, LIX.RTM.64, LIX.RTM.64N, LIX.RTM.70, LIX.RTM.71, LIX.RTM.73, LIX.RTM.34, LIX.RTM.54, LIX.RTM.605, LIX.RTM.617, LIX.RTM.622 and LIX.RTM.6022, LIX.RTM.860, LIX.RTM.984, LIX.RTM.973, and LIX.RTM.84.
Briefly noted, LIX.RTM.63 extractant includes, in addition to a liquid hydrocarbon diluent, an aliphatic .alpha.-hydroxy oxime extractant (5,8-diethyl-7-hydroxy-dodecan-6-oxime) of the type illustrated in Swanson U.S. Pat. No. 3,224,873. The LIX.RTM.65N extractant includes an alkyl substituted hydroxy benzophenone oxime (2-hydroxy-5-nonyl benzophenone oxime) as set out in Swanson U.S. Pat. No. 3,592,775. The LIX.RTM.64 extractant and the LIX.RTM.64N extractant incorporate benzophenone oxime extractants (2-hydroxy-5-dodecyl benzophenone oxime and 2-hydroxy-5-nonyl benzophenone oxime, respectively) in combination with an aliphatic .alpha.-hydroxy oxime as described in U.S. Pat. No. 3,423,449.
Formulation of the LIX.RTM.70 extractant involves the combination of a benzophenone oxime extractant containing an electron withdrawing substituent (2-hydroxy-3-chloro-5-nonyl benzophenone oxime) with an aliphatic .alpha.-hydroxy oxime. The LIX.RTM.71 and LIX.RTM.73 formulations both include a mixture of two benzophenone oximes, one of which has an electron withdrawing substituent (i.e., a mixture of 2-hydroxy-5-nonyl benzophenone oxime and 2-hydroxy-3-chloro-5-nonyl benzophenone oxime) with the latter reagent further including an aliphatic .alpha.-hydroxy oxime.
The LIX.RTM.34 extractant and the LIX.RTM.54 extractant incorporate alkaryl sulfonamido quinoline and .beta.-diketone extractants, respectively. The LIX.RTM.605 extractant, the LIX.RTM.617 extractant, the LIX.RTM.622 extractant, and the LIX.RTM.6022 extractant, on the other hand, employ alkyl substituted hydroxy benzaldoxime (salicylaldoxime) extractants according to Parrish, J. South African Chem. Inst., 23, pp. 129-135 (1970). Thus, the LIX.RTM.605 extractant and the LIX.RTM.617 extractant include 2-hydroxy-5-nonyl benzaldoxime extractants with, respectively, nonylphenol and tridecanol additives. The LIX.RTM.622 extractant and the LIX.RTM.6022 extractant comprise formulations of 2-hydroxy-5-dodecyl benzaldoxime and a tridecanol additive in approximately 4:1 and 1:1 w/w ratios, respectively. Acorga PT-5050 extractant is offered for sale by Acorga, Ltd., Hamilton, Bermuda, as a formulation comprising 2-hydroxy-5-nonyl benzaldoxime and a tridecanol additive in an approximately 2:1 w/w ratio. See also, Ackerley et al., U.S. Pat. No. 4,020,105; Ackerley et al., U.S. Pat. No. 4,020,106; and Dalton, U.S. Pat. No. 4,142,952.
There exists a general need in the art for more efficient processes for producing such oxime extractants. In the usual processes, the hydroxyarylaldehydes may be prepared by a number of routes. A summary and review of the synthesis of aromatic hydroxyarylaldehydes may be found in H. Fiege, K. Wedemehyer, K. A. Bauer, A. Krempel and R. G. Molleken, Fragrance Flavor Subst. Proc. Int. Haarmann Reimer Symp. 2nd, 1979 (Publ. 1980), pp. 63-73, which discusses in particular three processes of preparation.
One of these processes is the Reimer-Tiemann reaction which involves the reaction of a phenol with chloroform under very basic conditions to yield the salicylaldehyde. Yields tend to be low and recovery of the product difficult. U.S. Pat. No. 4,324,922 relates to improvements in the process, citing as further background Hans Wynberg, "Chemical Reviews", Vol. 60, 169 (1960) and Ferguson, "Chemical Reviews", Vol. 38, 229 (1946). Other U.S. patents, U.S. Pat. No. 3,206,513 and 3,972,945, provide further background.
A second industrially useful approach involves condensation of the phenol with formaldehyde followed by oxidation with oxygen and a catalyst. While reasonable yields of salicylaldehyde are obtained, the process consists of two steps and involves the use of expensive catalysts. Illustrative of some of the patents relating to this process are U.S. Pat. Nos. 3,173,956, 3,321,526, 3,673,257, 3,780,110, 4,026,950 and 4,190,605.
Other variations have been introduced. One which is described in U.S. Pat. No. 4,151,201, involves heating paraformaldehyde with phenol in the presence of anhydrous stannous chloride and pyridine. A second, which is described in U.S. Pat. No. 4,231,967, involves replacing the stannous chloride with an iron or chromium compound, preferably chromium acetylacetonate. Good yields are obtained via both processes. Both processes require relatively high levels of the catalyst promoter, pyridine, which must be recycled and requires special handling on an industrial scale. The use of heavy metals also presents problems in waste disposal. Further, iron and chromium compounds tend to promote adverse side reactions. A third variation which is described in U.S. Pat. No. 4,638,096, involves reacting a corresponding phenolic compound with formaldehyde in the presence of a titanium or zirconium containing catalyst.
Another process, disclosed in U.S. Pat. No. 4,085,146 directed specifically towards production of alkylsalicylaldehydes, involves formation of a Mannich base, followed by oxidation and hydrolysis to the alkyl-salicylaldehyde. While good yields are said to be obtained, the process is economically burdensome due to the number of steps involved.
It is an object of the instant invention to provide a new process for making substituted hydroxyaryl aldehydes, particularly, alkyl substituted salicylaldehydes, which process affords substantial product yields.
In one preferred embodiment, the invention relates to novel processes for the production of substituted hydroxyarylaldehydes (substituted salicylaldeydes) which, after oximation, are useful metal extractants.
In another embodiment, the invention relates to novel precursors that are produced during the reaction steps of the above preferred embodiment processes. More specifically, the invention relates to precursors that are useful in the synthesis of hydroxyarylaldehydes, such as, for example, 4-isoalkylphenyl allyl ethers; 2-allyl-4-isoalkylphenols; and 2-hydroxy-5-isoalkyl-beta-methylstyrenes. In another and related embodiment, the invention relates to processes for making each of these and other novel precursors useful in the production of hydroxyarylaldehydes, and particularly, 5-alkyl salicylaldehydes.
In still another embodiment, the invention relates to a process comprising the ozonization of solutions of 2-hydroxy-5-alkyl-beta-methylstyrenes, whereby substantial amounts of 5-alkyl-substituted salicylaldehydes are formed, and from which the desired metal extractants may be produced by oximation.
FIG. 1 is a schematic diagram illustrating new processes for the preparation of substituted hydroxyaryl aldehydes, especially alkyl substituted salicylaldehydes that are useful intermediates in the production of metal extractants.
The process of the invention uses 4-alkylphenols as starting materials. Preferably, the starting materials are 4-isoalkylphenols. However, the alkyl moiety in the starting material can be a straight chain alkyl, or other alkyl isomer. In the following discussion, for simplicity's sake, it is generally assumed that preferred starting materials are used.
The 4-alkylphenols are and can be manufactured by the alkylation of phenol with olefins as shown as a first reaction step in FIG. 1 of the drawing. Suitable olefins are: octenes; nonenes including tripropylenes; decenes; undecenes; dodecenes including triisobutylenes; tetraisopropylenes; tridecenes; and so on. Since the preferred alkyl-substituted salicylaldehydes are those with isoalkyl substitution, it is preferred that this step produce a 4-isoalkyl phenol, such as, for example, a phenol substituted in the 4 position with an isononyl or an isododecyl substituent.
As illustrated in FIG. 1, the alkylphenols are then alkylated at the phenolic oxygen atom with allyl derivatives, to produce the corresponding allyl ethers (I), preferably the 4-isoalkylphenyl allyl ethers (I). The allyl ethers are rearranged via the classical Claisen rearrangement, by heating to a temperature in the range from about 140.degree. C. to about 220.degree. C., to the corresponding 2-allyl-4-alkylphenols (II), which are then isomerized to 2-hydroxy-5-alkyl beta-methylstyrenes (III).
These suitably alkyl-substituted styrenes, or their derivatives, are then cleaved at the propenyl moiety, to produce the corresponding alkyl substituted benzaldehydes. The cleavage is accomplished by ozonolysis. When the 2-hydroxy-5-alkyl beta-methylstyrene is subjected to ozonolysis in methanol, and the ozonized solution is then reduced with 0.1 molar sodium thiosulfate, and the product is isolated, TLC indicates that the major component present is 5-alkyl salicylaldehyde.
When the ozonolysis is carried out on a solution of the 2-acetoxy-5-alkyl beta-methylstyrene in glacial acetic acid, the acetate functionality is not affected by the ozonolysis, but the beta-methylstyrene substituent is converted to an aldehyde group, --CHO, and the acetate group can then be removed by hydrolysis. The final product is a 5-alkyl salicylaldehyde, again present as the major component. The alkyl substituted benzaldehydes per se or their hydrolysates are substituted salicylaldehydes, which, after oximation, are useful metal extractants.
The ozonolysis can be carried out in a number of solvents including alcohols such as methanol, ethanol or isopropanol; ketones such as acetone; hydrocarbons such as toluene or heptane; carboxylic acids such as acetic acid; esters such as butyl acetate, and ethers such as dimethoxyethane or tetrahydrofuran.
The reactions of the invention are generally straightforward and may be repeated fairly easily by those with skill in the art.
In the following examples that demonstrate the invention, the allyl derivative used to produce the first precursor (I) was allyl chloride (H.sub.2 C.dbd.CHCH.sub.2 Cl). However, other allyl compounds such as allyl bromide, allyl iodide, and allyl sulfate can be used as well as corresponding substituted allyl compounds.
Ruthenium acetylacetonate, a precious metal complex, was used to isomerize precursor II. Other precious metal complexes or supported precious metal catalysts may be used to isomerize precursor II. For instance, five percent ruthenium on carbon may be used instead of ruthenium acetylacetonate.
The processes and products of the invention will now be described with reference to the schematic diagram shown in FIG. 1.
Except in the operating examples below, all numbers expressing quantities of ingredients or reaction conditions are understood to be modified by the word "about". Throughout, all parts and percentages are by weight, unless expressly indicated to be otherwise. All temperatures are in degrees Celsius unless expressly stated otherwise.
Example 1 below describes the preparation of the 4-alkylphenyl allyl ether of Product I. Example 2 describes the preparation of Product II, a 2-allyl-4-alkylphenol, from Product I. Example 3 describes the production of a beta-methylstyrene.
Examples 4-10 each describe one of the steps that were used to make the desired final desired product, a substituted salicylaldehyde.
Lastly, the oximation of Product IV is described in Example 10.
EXAMPLE 1 Preparation of p-isododecylphenyl allyl ether (I)
273 grams (1.042M) p-isododecylphenol in 300 ml of toluene, 17.7 grams of tetra butyl ammonium hydrogen sulfate, and 395 grams of 50% NaOH aqueous solution were reacted together to give a semisolid material; and then heated to 60.degree. C., when this initial reaction product became fluid.
Next, 363 grams (4.75M) of allyl chloride were added, and mixed with the fluid initial reaction product. The mixture was then heated to 63.degree. C., and exothermed slowly to 73.degree. C. A sample was taken at this point, then acidified and stripped under reduced pressure. TLC revealed the presence on the sample of a small amount of unreacted p-isododecylphenol.
The temperature of the mixture was then held at 75.degree. C. for 8 hours. During this period of time, periodic TLC analyses indicated that the content of unreacted isododecylphenol gradually decreased. At the four hour mark, the TLC analysis indicated that a trade of the isododecylphenol remained. GC/IR revealed that the product was mostly the 4-isododecylphenyl allyl ether, together with the unreacted isododecylphenol, and a small amount of ortho isododecylphenol.
The reaction mixture, at the end of the 8 hours of maintained temperature, was washed with water, then washed with sulfuric acid, then again with water. The reaction had not gone to completion.
Next, 12 grams of 50% sodium hydroxide aqueous solution and 11.5 grams of allyl chloride were added, mixed in, heated to 75.degree. C., and allowed to react for 3 more hours for a total of 11 hours. The 11 hour product in sequence was washed with water, the aqueous layer formed being discarded, washed with H.sub.2 SO.sub.4, and then washed with water three more times. After each washing, the aqueous layer formed was discarded. Then the end product was stripped under reduced pressure, and 316 grams of end product were recovered.
Gas chromatography/infra red (GC/IR) analysis showed that the end product comprised only 1-2% of isododecylphenol, 1-2% of a diallyl isomer, and that the primary constituent was p-isododecylphenyl allyl ether (I).
EXAMPLE 2 Preparation of 2-hydroxy-5-isododecyl allyl benzene (II)
All of the end product I recovered in Example 1 was heated at 210.degree. C.-215.degree. C. for 8 hours, then distilled using a vacuum jacketed packed column. Several fractions were taken using the vacuum jacketed packed column, a first one at BP 115.degree. C.-150.degree. C. at 2 mm pressure. Analysis of the 8.3 g product by GC/IR. indicated the presence of about 9% of aliphatic hydrocarbon, about 1.5% as alkyl substituted diallyl phenol where the alkyl has many fewer than 12 carbons, about 30% ortho nonyl phenol, and about 50% of the desired product, 2-hydroxy 5-isododecyl allyl benzene.
A second fraction was taken off under 2 mm pressure, at 150.degree.-165.degree. C. GC/IR analysis of this fraction indicated that it contained about 98% of the desired product, i.e. 2-hydroxy 5-isododecyl allyl benzene.
A third fraction, taken under 2 mm pressure, at 165.degree.-170.degree. C., analyzed about 91% of the desired product, and about 9% 2-hydroxy 5-isododecyl diallyl benzene. These fractions, when taken together, yielded 251 grams, of which 97% by weight was 2-hydroxy-5-dodecyl allyl benzene (II).
EXAMPLE 3 Preparation of 2-hydroxy-5-isododecyl-beta-methylstyrene
The product of Example 2, 2-allyl 4-isododecyl phenol was isomerized to produce 2-hydroxy-5-isododecyl beta-methylstyrene. This involved making up a mixture consisting of 125 g of 2-allyl 4-isododecyl phenol and 0.25 g of ruthenium acetylacetonate by stirring them together at 130.degree. C. under a nitrogen atmosphere for 8 hours.
The resulting reaction mixture was distilled and a fraction was taken in a temperature range of 150.degree. C. -155.degree. C. at 90 micrometers pressure, to produce 93 g of distillate material. This distillate material, upon analysis by GC/IR, appeared to be about 95% 2-hydroxy 5-isododecyl beta-methylstyrene.
Preparations of Substituted Salicylaldehydes from 2-hydroxy-5-dodecyl-beta-methylstyrene (III)
The following five examples demonstrate the preparation of substituted salicylaldehydes from 2-hydroxy-5-isododecyl-beta-methylstyrene (IV).
EXAMPLE 4 Ozonolysis in the Presence of Glacial Acetic Acid
A solution of 6.19 grams of 2-hydroxy-5-isododecyl-beta-methylstyrene (III where R=C.sub.12 H.sub.25) in about 150 ml of glacial acetic acid was ozonized at 20-25.degree. C., using gaseous ozone bubbled through the solution, until no more starting material was detected by thin layer chromatography (TLC), using silica gel, 75% toluene, and 25% heptane.
The resultant mixture was reduced with Zn dust to reduce any peroxides, hydroperoxides, ozonides, etc., by stirring for 15 minutes at 40.degree.-45.degree. C. This mixture was then diluted with water and extracted two times with toluene. The combined toluene extracts were washed two times with water, after which the volatiles were removed at reduced pressure to leave a residue of 6.1 grams. Analysis by TLC showed the major component present to be 5-isododecylsalicylaldehyde (V) (DSA).
Analysis by thin film Infra Red (IR) showed the product to contain about 80% 5-isododecylsalicylaldehyde (DSA).
EXAMPLE 5 Ozonolysis of Compound IV in Methanol
The ozonolysis was repeated by bubbling gaseous ozone through a solution of 6.25 grams of compound IV in about 150 ml of methanol. Compound IV is compound III where R=C.sub.12 H.sub.25 is isododecyl. The ozonized solution was reduced with 0.1 molar sodium thiosulfate and the product isolated to yield 6.0 grams of material. Analysis by TLC showed the major component present to be DSA. Analysis by IR showed the product to contain about 67% DSA.
EXAMPLE 6 Ozonolysis of Compound IV in Acetone
The ozonolysis was conducted on a solution of 6.10 grams of compound IV in about 150 ml of acetone. The product was isolated, with a yield of 6.0 grams of product, which also was rich in DSA by TLC analysis. Analysis by IR showed that the product contained about 77% DSA.
EXAMPLE 7 Ozonolysis of Compound IV in Toluene
The ozonolysis was conducted on a solution of 6.10 grams of compound IV in about 150 ml of toluene. Again the product was isolated to yield 6.7 grams of material which was also rich in DSA by TLC analysis. Analysis by IR showed that the product contained about 59% DSA.
EXAMPLE 8 Ozonolysis of Compound IV in Heptane
The ozonolysis was conducted on a solution of 6.07 grams of compound IV in about 150 ml of heptane. The product was isolated, with a yield of 6.8 grams of residue which is rich in DSA by TLC analysis. Analysis by IR showed that the product contained about 54.5% DSA.
EXAMPLE 9 Production of DSA by a Two Step Process in which Compound IV is First Ozonized in Glacial Acetic Acid in Step One, Then Hydrolyzed in Step Two Step 1
In the first phase of this example, a solution consisting of 6.9 grams of 2-acetoxy-5-isododecyl-beta-methylstyrene, compound VI, in about 150 ml of glacial acetic acid, was ozonized by passing gaseous ozone through the solution at about 20.degree. C., until no more starting material was detected by TLC. The reaction mixture was reduced with zinc dust at 40.degree.-45.degree. C. for about 15 minutes.
The resultant mixture was then diluted with water, extracted two times with toluene and the combined toluene, extracts washed two times with water. The volatiles were then removed at reduced pressure to leave 6.7 grams of residue.
Thin film infra red analysis showed the product to contain DSA with some DSA acetate.
In the second phase of this example, the crude product residue from Step 1 was stirred at room temperature for 48 hours in about 50 ml of methanol which contained 2.4 grams of 50% sodium hydroxide. The reaction mixture was then acidified with aqueous sulfuric acid and extracted two times with toluene.
The toluene extracts were combined, washed two times with water, then stripped of volatiles at reduced pressure, to leave 5.35 grams of material which TLC showed to contain a substantial amount of DSA. Analysis by IR showed the product to contain about 77% DSA.
EXAMPLE 10 Oximation of Crude DSA and Demonstration of Copper Extraction
A mixture consisting of 2.60 grams of the product of Ex. 4, 1.4 grams of hydroxylamine sulfate, 1.5 grams of sodium acetate, and about 25 ml of methanol, was heated at reflux temperature for 5.5 hours. Analysis by TLC showed no detectable residual DSA.
The reaction mixture was then diluted with water and extracted with toluene. This toluene extract was washed two times with water before the toluene was removed at reduced pressure to leave 2.64 grams of residue. Analysis by IR showed the oximation to be substantially complete.
After removal of the analytical sample, the remaining oxime was dissolved in 48 ml of SX-11 kerosene. This kerosene solution was shaken for 10 minutes with 25 ml aqueous copper sulfate solution which contained 7.01 grams of copper per liter. After extraction of the copper, the aqueous raffinate contained only 0.74 grams of copper per liter.
The purpose of the alkyl substituents on the ring of both the intermediate compounds with the production of which this invention is concerned, and the final oxime extractants themselves, is to enhance solubility in organic solvents. Consequently, the alkyl substitution preferably consists of a substituent inserted or attached to the ring at one location, providing a long chain that will enhance solubility, and that preferably is an isoalkyl, to optimize solubility. Since the size of the alkyl substituent increases the molecular weight of the metal extractant, the shorter the chain the better, consistent with enhanced solubility.
While the invention has been illustrated with reference to the use of an isododecyl alkyl substituent at the 4 position on the ring of the initial alkyl phenol reactant, and also as present in the metal extractant, other substituted alkyl chains, and particularly isoalkyl chains, can be used. The respective efficacy of a particular substituent in a particular metal extractant may depend upon the conditions under which the particular metal extractant is to be used.
Although the invention has been illustrated with reference to the use of an isododecyl alkyl substituent at the 4 position on the ring of the initial alkyl phenol reactant, it will be understood by those with skill in the chemical arts that many, many other alkyl chains can be substituted for isododecyl alkyl to thereby create other new compositions of the invention.
For instance, some of the new compositions of the invention can be represented as follows: ##STR1## where R=isohexyl or isononyl
R'=isopentyl or isooctyl
Z=allyl or 2 propenyl.
In addition, other new compositions of the invention can be represented as ##STR2## where R" is a straight chain octyl, nonyl or decyl alkyl and wherein R" is attached to the ring by way of any carbon atom making up R".
Other products of the invention include the use of a totally branched octyl substituent (i.e., 1,1,3,3-tetra methyl butyl) or a highly branched nonyl or a highly branched decyl substituent and mixtures thereof.
In short, there are many products taught by the invention which are new although they may not be described herein in detail. Mixtures of two or more of the new products are, of course, also new and useful.
The salicylaldehydes that can be produced by the invention provide, at present, relatively inexpensive materials for oximation, for the production of metal extractants. The initial raw materials are readily available and the reaction steps of the present invention are straightforward.
While the invention has been described in connection with particular embodiments thereof, it should be understood that the invention is not confined to what has been demonstrated in this application to be useful, and the invention is one of broad scope as defined in the appended claims.
1. A carboxylic acid ester of 2-hydroxy 5-isoalkyl beta-methylstyrene, wherein said isoalkyl group has at least 8 carbon atoms.
2. The compounds of claim 1 wherein said isoalkyl group has up to 18 carbon atoms and said carboxylic acid has 2-6 carbons.
3. The compounds of claim 2 wherein said isoalkyl substituent comprises isononyl or isododecyl.
4. The acetic acid ester of a 2-hydroxy 5-isoalkyl beta-methylstyrene.
5. The ester of claim 4 wherein said isoalkyl substituent comprises an isoalkyl substituent that has 8 to 18 carbons.
3173956 March 1965 Grinstead
3206513 September 1965 Budde
3224873 December 1965 Swanson
3321526 May 1967 Marchand
3423449 January 1969 Burk, Jr. et al.
3592775 July 1971 Swanson
3673257 June 1972 Di Bella
3780110 December 1973 Gay et al.
3972945 August 3, 1976 Albright
4020105 April 26, 1977 Ackerley et al.
4026950 May 31, 1977 Le Ludec
4085146 April 18, 1978 Beswick
4124643 November 7, 1978 Martan et al.
4142952 March 6, 1979 Dalton
4151201 April 24, 1979 Casnati et al.
4190605 February 26, 1980 Muench et al.
4231967 November 4, 1980 Matsuda et al.
4324922 April 13, 1982 Smith
4377555 March 22, 1983 Hancock
4507268 March 26, 1985 Kordosky et al.
4638096 January 20, 1987 Virnig
4868334 September 19, 1989 Mathew et al.
5300689 April 5, 1994 Krbechek et al.
4104835 August 1991 DEX
54-26900 February 1979 JPX
Allied Signal Chemicals, "MOC -55 Extractant" Product Data sheets, 3 pages, 1994. R. E. Ford et al. : "Synthesis and quantitative structure-activity relationships of antiallergic 2-hydroxy-N-1H-tetrazol-5-benzamides", J. Med. Chem., vol. 29, 1986, pp. 538-549 XP002109293. Ferguson, "The Synthesis of Aromatic Aldehydes", Chemical Reviews, vol. 38, pp. 227-254 (1946). Parrish, "Derivatives of Salicylaldoxime", Journal of the South African Chemical Institute, vol. XXIII, pp. 129-135, (1970). Wynberg, "The Reimer-Tiemann Reaction", Chemical Reviews, vol. 60, pp. 169-184 (1960). Krbechek, L., Labatory Notebook No. 7510, p. 47, Jun. 6, 1994. Krbechek, L., Laboratory Notebook No. 7537, p. 46, Feb. 8, 1994.
Filed: Oct 6, 1998
Date of Patent: Jun 20, 2000
Assignee: Henkel Corporation (Gulph Mills, PA)
Inventor: Leroy Krbechek (Santa Rosa, CA)
Primary Examiner: Sreeni Padmanabhan
Attorneys: John E. Drach, Frank E. Robbins, Garrett V. Davis
Current U.S. Class: Plural Nitrogens In Alcohol Moiety (560/251); Acyclic Acid Moiety (560/129); Esterified Phenolic Hydroxy (560/130); Salicylic Acid Or Functional Derivative (560/143)
International Classification: C07C 69017;


text:
2021 Top 10 Most Beautiful Women in Trinidad & Tobago That Every Man Would Die For
Topmost10 outlines the 2021 top 10 most beautiful women in Trinidad & Tobago that every man would die for. These are pretty celebrities and top models in Trinidad & Tobago. 2021 Top 10 Most Beautiful Women in Trinidad & Tobago 10. Brianna Shim With perfect symmetry, classic appeal and undeniable charisma, Shim is so near …
2021 Top 10 Most Beautiful Women in Trinidad & Tobago That Every Man Would Die For Read More »
2021 Top 10 Richest People from Fiji
Topmost10 reveals the 2021 top 10 richest people from Fiji. For some reasons, their net worth can not be disclosed at this time. The richest people from Fiji consists of athletes and politicians. Take a look: Here are the 2021 top 10 Richest People from Fiji 10. Lote Tuqiri Lote Daulako Tuqiri is a Fijian-Australian former …
2021 Top 10 Richest People from Fiji Read More »
2021 Top 10 richest celebrities in Puerto Rico and their Expensive homes
This article seeks to give the top 10 expensive homes of Puerto Rico celebrities making in big in USA and the world at large. Top 10 expensive homes of Puerto Rico celebrities 10. Carlos Beltrán Carlos Iván Beltrán is a former Puerto Rican professional baseball outfielder. He played in Major League Baseball (MLB) from 1998 to …
2021 Top 10 richest celebrities in Puerto Rico and their Expensive homes Read More »
This article seeks to give the2021 top 10 expensive cars of Puerto Rico celebrities making in big in USA and the world at large. 2021 Top 10 expensive homes of Puerto Rico celebrities 10. Roselyn Sánchez Roselyn Sánchez (born April 2, 1973) is a Puerto Rican singer-songwriter, model, actress, producer and writer. On television, she is best …
2021 Top 10 expensive cars of Puerto Rico celebrities Read More »
The 2021 Best Private K-12 Schools ranking is based on rigorous analysis of key statistics and millions of reviews from students and parents. Ranking factors include SAT/ACT scores, the quality of colleges that students consider, student-teacher ratio, private school ratings, and more. Data sourced from the U.S. Department of Education, Niche users, and the schools …
2021 Best Private K-12 Schools in Puerto Rico Read More »
Top 10 Best Public High Schools in 2021
The 2021 Best Public High Schools ranking is based on rigorous analysis of key statistics and millions of reviews from students and parents using data from the U.S. Department of Education. Ranking factors include state test scores, college readiness, graduation rates, SAT/ACT scores, teacher quality, and high school ratings. Top 10 Best Public High Schools …
Top 10 Best Public High Schools in 2021 Read More »
2021 Top 6 Largest High Schools in Puerto Rico
What is the Largest High Schools in Puerto Rico? This article outlines the 2021 top 6 Largest High Schools in Puerto Rico based on statistics from niche.com. Explore the largest high schools in your area based on student enrollment using data from the U.S. Department of Education. T 2021 Top 6 Largest High Schools in …
2021 Top 6 Largest High Schools in Puerto Rico Read More »
2021 Best Public Middle Schools in Puerto Rico
The 2021 Best Public Middle Schools ranking is based on rigorous analysis of key statistics and millions of reviews from students and parents using data from the U.S. Department of Education. Ranking factors include state test scores, student-teacher ratio, student diversity, teacher quality, middle school ratings, and the overall quality of the school district. 2021 …
2021 Best Public Middle Schools in Puerto Rico Read More »
2021 Ranking of the Top 10 Best Jamaican Secondary Schools
2021 Ranking of the top 10 best Jamaician Secondary Schools is here againThe rankings are based on the performance of schools in obtaining five (5) or more subjects in the most recent CSEC examinations. The figures are calculated based on each secondary school enabling their cohort at the end of their 5 years of statutory …
2021 Ranking of the Top 10 Best Jamaican Secondary Schools Read More »
Pages: 1 2 3 4 5 6 7 8 9
2021 Top 10 best Girls Schools in Jamaica
This article outlines the top 10 Best Girls Schools in Jamaica 2021. These top 10 schools scored 90% and above in their Caribbean School Examination Certificate (CSEC). Topmost10 looked at each school and calculated the percentage of students, at the end of grade 11, achieving a minimum of 5 CSEC subjects (including Mathematics and/or English) …
2021 Top 10 best Girls Schools in Jamaica Read More »


text:
Woking FC defender Fabio Saraiva seeks improvement after draw with Maidenhead
November 20, 2017 Football, Radio Woking Sport, Woking FC 1206 Views
FABIO SARAIVA believes Woking should be doing better as a team, despite being in the top ten of the Vanarama National League and in the second round of the FA Cup.
The Cards again fought back from behind to secure a 1-1 draw against Maidenhead United at the Laithwaite's Community Stadium on Saturday afternoon.
Saraiva then had two further chances to win it only to be brilliantly denied by Carl Pentney on both occasions, and the versatile left-back believes his side should be improving and testing sides more.
SARAIVA IN ACTION FOR WOKING – PHOTO BY DAVID HOLMES – A FULL SET CAN BE VIEWED AT www.wokingfc.co.uk
In an interview with Peter Moore, he said: "I think we dominated the game in terms of possession, but possession doesn't win you games."
"We should be doing better as a squad, we know that as individuals. We weren't quite at it in terms of our end product and how we moved the ball and we gave the ball away sloppily at times and we didn't get into our rhythm."
"We need to create chances and take our chances so in the end we'll take a point, but we're undefeated in four so you've got to look at the positives."
SARAIVA PLAYING AGAINST BURY – PHOTO BY DAVID HOLMES, A FULL SET CAN BE VIEWED AT www.wokingfc.co.uk
After their FA Cup heroics last week, there may have been signs of weariness when Adrian Clifton fired Maidenhead ahead after ten minutes following a neat exchange with Jake Hyde.
However, Charlie Carter scrambled home an equaliser at the back post in the 40th minute, and after yet again gaining points from losing positions, Saraiva was pleased with the response of his players, and thought that Saturday's was more important for the team than the trip to Bury.
CHARLIE CARTER EQUALISES FOR WOKING – PHOTO BY DAVID HOLMES, A FULL SET CAN BE VIEWED AT www.wokingfc.co.uk
He added: "We have that belief of character in our team and in our squad and that comes from the management down to our players."
"If we go a goal down, we know that we'll come on strong in the second half and we shown that a lot of times this season."
"We knew this game was as important if not more important to us as a team wanting to strive on in the league and do the best we can so as players we were all focused."
SARAIVA HAS MADE JUST THREE LEAGUE APPEARANCES THIS SEASON – PHOTO BY DAVID HOLMES, A FULL SET CAN BE VIEWED AT www.wokingfc.co.uk
The former Merstham man played his first full 90 minutes since March after a frustrating injury-hit season due to an ankle, and was delighted to back playing again after playing just three times this season.
"It was good for me to be back on the pitch after a frustrating start to the season so I'm grateful to be out there and playing and doing what I love."
He may also be back in action on Tuesday evening when Woking host Ebbsfleet United in search of their first league win since 7 October, and Saraiva believes three points is a must.
"We need to improve on the performance because there was a lot we could have improved on. A point is a point and its another one of the table but on Tuesday we really need to look for those three points and do everything we can to get those three points."
Ebbsfleet United, Fabio Saraiva, Maidenhead United, National League, Radio Woking, Woking, Woking FC


Kids will be amazed to create and watch the progress of this fun kit. Take one of the pre-cut plasti..
The ultimate set to spoil yourself, and your feet. Includes a SPA for your feet treatment, nail poli..
A creative workshop for decorating and personalizing fashion I.D. tags. Use gemstones and paints, to..
A creative workshop for decorating and personalizing fashion I.D. tags. Use gemstones and paints,to ..
A fancy fashion pre-printed bag, to personalize and decorate With the special markers which are prov..
A stunning collection of 1200 letter beads to make, create and personalize your own necklaces and br..
A truly glamorous set including two ceramic-like shoes, to color, paint and decorate. Great creative..
To create and decorate fashion rings with hot looking gemstones. Setting the gemstones and gluing th..


This is a very simple idea but with really cute results. Learn how to make tiny paper clips and a mini box to keep them inside with this tutorial.
They also appeared in the "Doll diary tutorial" video but I hadn´t still shown how to make them, so hope some of you could find this video useful to complement the other one.
I show you two materials to make them but wire craft is usually more easy and softer to bend (anyway if you don´t have it you can use paper clips too).
Where do you purchase the flat wooden picks?


The price of garlic shoots has recently been fairly stable, and supply has been slow. The market conditions in December, 2018, were stable and the sales volume showed a slight increase. The price increased by 30% in comparison to the same period last year. Only a small number of traders made a loss, but in general there is a good profit margin in the market for garlic shoots.
The stable price of garlic shoots is on the one hand caused by the approach of Chinese Spring Festival [February 5th, 2019] when sales pressure grows, and on the other hand by recent weather conditions. The number of cold days with snow is small, and the production of seasonal vegetables continues as before, which softens the price increase associated with Spring Festival.
Price stability is further strengthened by a limited supply and great profit. The current volume of garlic shoots in storage is around 260-270 million kg, which is 20% less than last year around this time.


Have you hired Ateliers Jolicoeur Inc (Les)? Write a review and earn our First to Review badge.
Ateliers Jolicoeur Inc (Les) has not added any photos.
Looking for Kitchen & Bathroom - Cabinets & Design pros in Iroquois Falls?


I would like to use Mach threads in one of my applications. However, I'm having trouble getting a simple "Hello, world" program using Mach threads to work on OS X 10.9.4. The following MWE always crashes with a segmentation fault. Perhaps I am not setting up the stack correctly, but I can't figure out where I'm going wrong. Do you have any ideas?
// Give the thread a chance to run.
My immediate suspect would be that you need to convert Mach threads to Pthreads in order to use std* functions (like printf). You can look at the code injection sample I put up a while ago in the bonus section. Said "promotion" wasn't explained in the book, but surely will be, in the second edition.
Thanks for the reply! I don't think it's the call to printf that's the problem: I removed the call to printf (so that the test function is empty), and allocated the stack, adjusted the stack pointer, and created the thread in the same way that is done in the code injection example. Unfortunately, the segmentation fault still persists. I have included the updated C++11 MWE below. In case you want to compile it, you can do so using clang++ -std=c++11 <file>.
Ill have a look see. I'm currently traveling with no clang (still good ol' GCC) so I'll need some time to make this compile in plain C and resolve the issue.
- Without anything in test(), the function actually does execute, then returns - i.e. pops the RA - but you didn't set anything on the stack, so you get a POP of a NULL value, hence a segfault.
- With something (e.g. printf()) in test, you fail, as I mentioned earlier, because of pthread_getspecific, since you did not convert the mach thread to a pthread thread.
Thanks so much for taking the time to look into this, and for introducing me to LLDB! It has been immensely helpful.
I am now able to get the "Hello, world!" to show up using the raw write() system call. Since I don't want to return to anything from test(), I would like to tell the kernel to terminate the current thread. The following code results in a crash after printing "Hello, world!", despite the fact that mach_thread_self() is returning the correct thread ID (which I confirmed).
// Just to illustrate that this crash is not because of popping an invalid RA.
You mentioned in your book that "the implementation of get_ active_thread() wraps CPU_DATA_GET(cpu_active_thread,thread_t), which is inline assembly (relying on the GS register)". I tried to search online to get any hints as to what the cause of the problem is, but was unable to solve the issue. Do you know how I would go about correctly terminating the thread at the end of test()?
Like Administrator said, if you don't use pthread_set_self() at the beginning of your mach thread, you will eventually crash.
The issue is that a lot of functions will make a call to (g/s)et_thread_specifics() and that will crash because GS is not properly set (will be 0). Therefore, you get a segmentation fault or something like that.
You certainly can use native functions but you will need to figure out which function make references to GS and which don't.
I obtained the constant 50331651 by expanding SYSCALL_MDEP_CONSTRUCT(3), since thread_fast_set_cthread_self64 occupies the third slot in the machine-dependent system call table on x64. The value moved into RDI should be replaced by the value to which we wish to set the thread ID. Is this right?
Also, to which value do I set the thread ID? I'm pretty sure it's not the value returned by thread_create, so what should it be?
* I put up a code listing that does everything in the above paragraph here: https://gist.github.com/adityaramesh/8a ... 4a0db411ac. Each thread prints out the x2APIC ID of the processor on which it is running. In case you would like to compile the listing, you will need the small library available here: https://github.com/adityaramesh/ctop.


The Group has a Company-wide water policy that includes a commitment to limiting freshwater withdrawals and consumptions, and to ensuring that the quality status of the water bodies where effluents are discharged remains good, so that the impact on humans and natural biota is minimized.
Solvay's 2015-2020 environmental plan focuses on reducing two impacts: freshwater withdrawal, and chemical oxygen demand (COD) emissions. The number of sites potentially exposed to water scarcity is no longer reported, as it reflected a Solvay internal program with an indicator that cannot be benchmarked against peers.
Freshwater withdrawal (million m3/year): this is the amount of incoming water from freshwater sources (surface and groundwater) and from alternative sources such as drinking water.
Chemical Oxygen Demand: this is the amount of reducing substances (mainly dissolved organic matter) discharged to aqueous receivers. COD is expressed as metric tons of oxygen per year. In addition to nitrogen and phosphorus species, COD contributes to aquatic eutrophication.
Due to a change in corporate reporting rules regarding waste water plants treating effluents from third parties, the COD on the site of Spinetta-Marengo (Italy) has been recalculated over the whole period 2014-2016.
mothballing of the soda ash plant at Alexandria (Egypt) since March 2015 (-1.8 million m3).
Because of an increased production volume, there was a higher water intake (+ 7.6 million m3) at the Chalampé site in France.
deconsolidation of the divested Acetow and Emerging Biochemicals businesses (-211 metric tons).
The left side of the graphic above shows water intakes (million m3/year) from the main water sources. Other intakes include additional water sources: water recycled from third-party, rainwater, etc. The Group's total water intake in 2016 reached 580 million m3, 85% of which was freshwater.
The right side of the graphic above shows water discharges (million m3/year) to the most important receiving environments. Water discharges to other receptors (external waste water treatment plants, underground injection, etc.) are in the category "other". The Group's total water discharge in 2016 amounts to 535 million m3, 80% of which discharged to the freshwater receptors.
Water loss by evaporation (19 million m3) takes place in ICTs (Industrial Cooling Towers) or basins.
The circular arrow at the center-bottom of the graphic shows the total volume of water which was recycled with closed-loop cooling systems or re-used. Based on the data in this diagram, we calculate that recycled water accounts for around 58% of the total volume of water used in 2016.
The flask on the right-hand side corresponds to the volume of water exported through manufactured aqueous end-products (commercial hydrogen peroxide, for instance, typically contains 30-70% water), whereas the waste bin symbolizes the estimated amount of water losses through disposal or incineration of our waste materials (sludge, etc.).
Solvay's 2016 achievement for freshwater intake intensity is slightly better than the expected 2016 target. For the COD emission intensity, our progress is even 8 % better than foreseen.