text:
<?php

namespace ZendTest\Db\Sql;

use Zend\Db\Sql\Insert;
use Zend\Db\Sql\Expression;
use Zend\Db\Sql\TableIdentifier;

class InsertTest extends \PHPUnit_Framework_TestCase
{
    /**
     * @var Insert
     */
    protected $insert;

    /**
     * Sets up the fixture, for example, opens a network connection.
     * This method is called before a test is executed.
     */
    protected function setUp()
    {
        $this->insert = new Insert;
    }

    /**
     * @covers Zend\Db\Sql\Insert::into
     */
    public function testInto()
    {
        $this->insert->into('table', 'schema');
        $this->assertEquals('table', $this->readAttribute($this->insert, 'table'));

        $tableIdentifier = new TableIdentifier('table', 'schema');
        $this->insert->into($tableIdentifier);
        $this->assertEquals($tableIdentifier, $this->readAttribute($this->insert, 'table'));
    }

    /**
     * @covers Zend\Db\Sql\Insert::columns
     */
    public function testColumns()
    {
        $this->insert->columns(array('foo', 'bar'));
        $this->assertEquals(array('foo', 'bar'), $this->readAttribute($this->insert, 'columns'));
    }

    /**
     * @covers Zend\Db\Sql\Insert::values
     */
    public function testValues()
    {
        $this->insert->values(array('foo' => 'bar'));
        $this->assertEquals(array('foo'), $this->readAttribute($this->insert, 'columns'));
        $this->assertEquals(array('bar'), $this->readAttribute($this->insert, 'values'));

        // test will merge cols and values of previously set stuff
        $this->insert->values(array('foo' => 'bax'), Insert::VALUES_MERGE);
        $this->insert->values(array('boom' => 'bam'), Insert::VALUES_MERGE);
        $this->assertEquals(array('foo', 'boom'), $this->readAttribute($this->insert, 'columns'));
        $this->assertEquals(array('bax', 'bam'), $this->readAttribute($this->insert, 'values'));

        $this->insert->values(array('foo' => 'bax'));
        $this->assertEquals(array('foo'), $this->readAttribute($this->insert, 'columns'));
        $this->assertEquals(array('bax'), $this->readAttribute($this->insert, 'values'));
    }

    /**
     * @covers Zend\Db\Sql\Insert::prepareStatement
     */
    public function testPrepareStatement()
    {
        $mockDriver = $this->getMock('Zend\Db\Adapter\Driver\DriverInterface');
        $mockDriver->expects($this->any())->method('getPrepareType')->will($this->returnValue('positional'));
        $mockDriver->expects($this->any())->method('formatParameterName')->will($this->returnValue('?'));
        $mockAdapter = $this->getMock('Zend\Db\Adapter\Adapter', null, array($mockDriver));

        $mockStatement = $this->getMock('Zend\Db\Adapter\Driver\StatementInterface');
        $pContainer = new \Zend\Db\Adapter\ParameterContainer(array());
        $mockStatement->expects($this->any())->method('getParameterContainer')->will($this->returnValue($pContainer));
        $mockStatement->expects($this->at(1))
            ->method('setSql')
            ->with($this->equalTo('INSERT INTO "foo" ("bar", "boo") VALUES (?, NOW())'));

        $this->insert->into('foo')
            ->values(array('bar' => 'baz', 'boo' => new Expression('NOW()')));

        $this->insert->prepareStatement($mockAdapter, $mockStatement);

        // with TableIdentifier
        $this->insert = new Insert;
        $mockDriver = $this->getMock('Zend\Db\Adapter\Driver\DriverInterface');
        $mockDriver->expects($this->any())->method('getPrepareType')->will($this->returnValue('positional'));
        $mockDriver->expects($this->any())->method('formatParameterName')->will($this->returnValue('?'));
        $mockAdapter = $this->getMock('Zend\Db\Adapter\Adapter', null, array($mockDriver));

        $mockStatement = $this->getMock('Zend\Db\Adapter\Driver\StatementInterface');
        $pContainer = new \Zend\Db\Adapter\ParameterContainer(array());
        $mockStatement->expects($this->any())->method('getParameterContainer')->will($this->returnValue($pContainer));
        $mockStatement->expects($this->at(1))
            ->method('setSql')
            ->with($this->equalTo('INSERT INTO "sch"."foo" ("bar", "boo") VALUES (?, NOW())'));

        $this->insert->into(new TableIdentifier('foo', 'sch'))
            ->values(array('bar' => 'baz', 'boo' => new Expression('NOW()')));

        $this->insert->prepareStatement($mockAdapter, $mockStatement);
    }

    /**
     * @covers Zend\Db\Sql\Insert::getSqlString
     */
    public function testGetSqlString()
    {
        $this->insert->into('foo')
            ->values(array('bar' => 'baz', 'boo' => new Expression('NOW()'), 'bam' => null));

        $this->assertEquals('INSERT INTO "foo" ("bar", "boo", "bam") VALUES (\'baz\', NOW(), NULL)', $this->insert->getSqlString());

        // with TableIdentifier
        $this->insert = new Insert;
        $this->insert->into(new TableIdentifier('foo', 'sch'))
            ->values(array('bar' => 'baz', 'boo' => new Expression('NOW()'), 'bam' => null));

        $this->assertEquals('INSERT INTO "sch"."foo" ("bar", "boo", "bam") VALUES (\'baz\', NOW(), NULL)', $this->insert->getSqlString());
    }

    /**
     * @covers Zend\Db\Sql\Insert::__set
     */
    public function test__set()
    {
        $this->insert->foo = 'bar';
        $this->assertEquals(array('foo'), $this->readAttribute($this->insert, 'columns'));
        $this->assertEquals(array('bar'), $this->readAttribute($this->insert, 'values'));
    }

    /**
     * @covers Zend\Db\Sql\Insert::__unset
     */
    public function test__unset()
    {
        $this->insert->foo = 'bar';
        $this->assertEquals(array('foo'), $this->readAttribute($this->insert, 'columns'));
        $this->assertEquals(array('bar'), $this->readAttribute($this->insert, 'values'));
        unset($this->insert->foo);
        $this->assertEquals(array(), $this->readAttribute($this->insert, 'columns'));
        $this->assertEquals(array(), $this->readAttribute($this->insert, 'values'));
    }

    /**
     * @covers Zend\Db\Sql\Insert::__isset
     */
    public function test__isset()
    {
        $this->insert->foo = 'bar';
        $this->assertTrue(isset($this->insert->foo));
    }

    /**
     * @covers Zend\Db\Sql\Insert::__get
     */
    public function test__get()
    {
        $this->insert->foo = 'bar';
        $this->assertEquals('bar', $this->insert->foo);
    }

    /**
     * @group ZF2-536
     */
    public function testValuesMerge()
    {
        $this->insert->into('foo')
            ->values(array('bar' => 'baz', 'boo' => new Expression('NOW()'), 'bam' => null));
        $this->insert->into('foo')
            ->values(array('qux' => 100), Insert::VALUES_MERGE);

        $this->assertEquals('INSERT INTO "foo" ("bar", "boo", "bam", "qux") VALUES (\'baz\', NOW(), NULL, \'100\')', $this->insert->getSqlString());

    }

}


text:
Q: Unattended/Silent Install Notepad++ I've been trying to install Notepad++ version 7.5.6 on numerous remote servers completely unattended. I've researched and found the silent switch '/S' but it doesn't work as I intended in my local environment. When I run the following code, it still generates a popup for the language, just as if I had clicked on the installer manually.
start-process -FilePath "$Path\npp.7.5.6.Installer.x64.exe" -ArgumentList '/S' -wait

As far as I can tell, this shouldn't produce any popups, but it does, starting with the User Account Control.
Can anyone figure out what I'm doing wrong and how to get the installer to run completely unattended without any popups?

A: As @TheIncorrigible1 said you need to use -Verb runas
start-process -FilePath "$Path\npp.7.5.6.Installer.x64.exe" -ArgumentList '/S' -Verb runas -Wait

A: Adding a bit more to the original answer.
I wanted the latest version to be installed everytime so I ended up doing this with a PowerShell script:
$LocalTempDir = $env:TEMP
$href = ((Invoke-WebRequest -Uri 'https://notepad-plus-plus.org/downloads/').Links | Where-Object { $_.innerText -match 'current version' }).href
$downloadUrl = ((Invoke-WebRequest "https://notepad-plus-plus.org/$href").Links | Where-Object { $_.innerHTML -match 'installer' -and $_.href -match 'x64.exe' }).href
Invoke-RestMethod $downloadUrl -OutFile "$LocalTempDir/np++.exe"
start-process -FilePath "$LocalTempDir\np++.exe" -ArgumentList '/S' -Verb runas -Wait

redpajama_set_name: RedPajamaStackExchange


text:
Delivering weekly news and breaking updates in from scenic Lovell, Wyoming.
Practices begin Monday
August 11, 2011 ChronicleAdmin News, Sports Comments Off on Practices begin Monday
Practices for fall high school sports across Wyoming begin Monday, including practices at Lovell and Rocky Mountain high schools.
All athletes must have had physicals before they can participate, coaches said.
Third-year Lovell head football coach Doug Hazen was to hand out equipment Wednesday from 4 to 6:30 p.m., and he said practice will begin Monday at 7 a.m. LHS will hold two practices per day next week, running from 7 to 9 a.m. and from 4 to 6 p.m. The week will conclude with a blue and white scrimmage Saturday, Aug. 20, at 7 p.m. at Robertson Stadium.
Only one practice per day will be held the following week, with practice running from 4 to 6 p.m. daily. The Bulldogs will play a "week zero" game at Douglas with both varsity and junior varsity competition on Saturday afternoon, Aug. 27, Hazen said. He said he was unsure of the exact time of the game.
The Bulldogs open the season Friday, Sept. 2, when they host the Wright Panthers at 7 p.m. Hazen will be assisted this year by Craig Winterholler, Daniel Robertson and Bob Weber.
Second-year Rocky Mountain head football coach David Hayes will start practice in Cowley Monday at 7 a.m. and hold a second practice at 3 p.m., following that schedule through Wednesday, Aug. 17, then shift practices to 6 a.m. and 4 p.m. through Tuesday, Aug. 23. There will also be a single practice on Saturday, Aug. 20, at 7 a.m.
Hayes said the staff held a coaches meeting Saturday and will hold a senior night next Tuesday and a meet-the-squad night on Thursday, Aug. 25, at 6 p.m.
The Grizzlies will open the season Friday, Sept. 2, at Normative Services in Sheridan. Kickoff is scheduled for 6 p.m. Hayes is assisted this year by Joe Davis, Justin Moss and Brandon May.
Second-year coach Stormy Jameson will lead the Lovell Lady Bulldogs into practice Monday at 7 a.m. at Winterholler Gym, with a second practice at 4 p.m. She said the morning practices will be concentrated on conditioning, with drills held during the afternoon sessions. Two-a-day practices will continue throughout the week., then from Monday through Thursday, Aug. 25, coaches will hold one practice per day at 4 p.m.
The Lady Bulldogs will co-host the North Big Horn Invitational Aug. 26-27 with Rocky Mountain High School. Jameson is assisted again this year by junior varsity coach Dana Christiansen and freshman coach April Nicholls.
Carol McMillin, coach of the defending state champion Rocky Mountain Lady Grizzlies, will hold two-a-day practices Aug. 15-19 and Aug. 22-23, from 7 to 9:30 a.m. and from 3 to 5:45 p.m. From Aug. 24 (the first day of school) on, the team will practice at 3:30 p.m. weekdays. Practices will be held in the main gym at Rocky Mountain Middle/High School and will focus on conditioning in the morning practices and drill and offensive and defensive strategies in the afternoon sessions, McMillin said.
McMillin is being assisted again this year by Camaren Boettcher (JV) and Kayla Honeyman (freshmen).
The Lady Grizz will open the season at the North Big Horn Invitational in Cowley and Lovell Aug. 26-27.
Lovell cross country coach Caleb Sanders said both middle school and high school cross country team members will gather Monday at 8 a.m. at the high school gym lobby. Grades 6-12 are welcome to participate, he said.
Sanders will run practices at 8 a.m. the first week and at 4 p.m. the following week.
The Lovell harriers will open the season at the Billings Invitational Friday, Sept. 2, at 4 p.m. at Riverfront Park in Billings.
An advertisement in last week's newspaper stated that the Rocky Mountain cross country team will start practice Monday at 6 p.m. at Coach John Bernhisel's house in Cowley. Bernhisel could not be reached for further details.
Lovell High School golf coach Ben Fowler said he will open practice Monday at 4 p.m. at Foster Gulch to begin preparing for the fall season, which begins with a tournament later that week – Aug. 18-19 – in Lander. The tournament tees off at noon Thursday and 9 a.m. Friday, Fowler said.
Fowler said the Bulldogs have three strong returners on the boys team in senior Cody King and sophomores Brandon Wolvington and Chase Tippetts.
"Those two young sophomores coming back have been playing a bunch of golf this summer and have been scoring well," Fowler said. "I think they're really going to turn it on. Cody played baseball this summer. I hope he can turn his baseball swing into a golf swing."
Other returners, Fowler said, include senior Jesse Bassett, junior Kaleb Hitz and sophomore Isaac Schroeder.
On the girls side, longtime standout Mason Fowler has graduated, leaving senior Jordan Frost as the sole returner from last fall.
"I hope we end up with a pretty full squad," Fowler said. "I expect some younger players to come out. I'd like to see more girls come out.
"I'm optimistic. I think we'll do pretty well. Kemmerer is the team to beat again, and Thermop has dropped down from 3A."
By David Peck
LHSRMHS
Previous Post:Bar and grill license to Brandin' Iron
Next Post:Pigs win

redpajama_set_name: RedPajamaCommonCrawl


text:
61 Reforms to C-61, Day 24: TPMs – No Exclusion of Non-Infringing Access
Bill C-61's anti-circumvention approach ranks among the broadest of any statute in the world. One area where it is particularly (over)broad is in its failure to exclude non-infringing access. Under the current bill, Section 41.1(1) simply states that "no person shall circumvent a technological measure within the meaning of paragraph (a) of the definition of 'technological measure'". Technological measure "means any effective technology, device or component that, in the ordinary course of its operation controls access to a work. . . "
By using such a broad approach – any circumvention of any effective access control – the statute prohibits the circumvention of TPMs that have absolutely nothing to do with infringing copying. The most obvious example of this comes from the region coding found on DVDs and many computer games. Many DVDs include Macrovision (designed to stop copying a DVD to VHS), Content Scramble System or CSS (the subject of important litigation involving DeCSS, a software program created to allow Linux users to play DVDs since they were otherwise unable to do so due to CSS), and region coding.
July 24, 2008 —	6 comments —	News
Varsity on C-61
The Varsity focuses on the effects of the Canadian DMCA on students.
July 24, 2008 —	3 comments —	Must Reads
Hamilton Chamber of Commerce Challenges National Chamber IP Approach
As Copyright Watch recently chronicled, local Chambers of Commerce have been singing from the same songbook as Industry Minister Jim Prentice in letters to the editor on Bill C-61. This is consistent with the national Chamber, which earlier this year formed a new lobby group to push for copyright reform and issued a press release supporting the introduction of the copyright bill – complete with local quotes – within 90 minutes of the tabling of the bill.
Notwithstanding these lobbying efforts, a crack in the coalition has emerged. At least one chamber of commerce has decided that it wants to look at the bill with an eye to the impact on small and medium sized businesses. The Hamilton Chamber of Commerce had adopted a resolution that it is hoping to get the Ontario and Canadian Chambers of Commerce to adopt seeking studies on the impact that IP legislation would have on SMEs. The concern is that SMEs would bear the burden of enforcement directed at businesses. The Hamilton chamber argues:
The estimates of piracy used in support of the Canadian and Ontario policies are unsupported by verifiable Canadian data;
Most small businesses are not aware of IP issues and would likely be at a disadvantage if action were ever taken against them on any alleged IP infringement;
Small businesses would have a disproportionate increase in expenses in complying with the costs that the policies would create;
In Canada, many large owners of IP have 'over-reached' the protection that IP has given them to the detriment of small businesses;
The proposed change in laws does nothing to favour Canadian businesses;
Many IP users are funded by tax dollars (i.e. education, libraries, archives) and an increase in enforcement is likely to increase their costs, which will, in turn, lead to higher taxes which disproportionately affects small business.
July 24, 2008 —	Comments are Disabled —	Stop CDMCA
Kerr on Privacy Idealism
My colleague Ian Kerr posts a great speech he recently delivered on the importance of privacy "idealism" in advocacy.
July 24, 2008 —	1 comment —	Must Reads


We deliver quality loft conversions for clients throughout West London, South West London & South East London. Our concept through to completion service means we will design your loft conversion, build your loft room and then beautifully decorate. We can take care of any relevant planning permission consents required before your loft conversion, and naturally building regulations are always dealt with.
London Loft Conversion Experts, and officially London's FMB Master Builder. There are more people in London than there is space, and more stuff than there is room for. Loft conversions by City Lofts are improving people's lives all over London by creating more room for the family, more space to enjoy (and increasing the value of houses too). City Lofts London are London's premier loft conversion specialists, raising the standard you can expect from the industry. As multi-award-nominated experts, customers get better service, better quality and a better finish every time. This is delivered with the unique City Lofts Building System – the best practice, expertise and master craftsmanship collected over 27 years of building experience, delivering you a predictably marvellous loft conversion for your home.
A1 is a family business, founded in 2000 by Steve Mills, who, during his early career in loft conversion construction, recognised that many individuals within the industry operated without due care and consideration for clients. Hence A1 was established with the intention of guaranteeing the highest level of services and excellence in the finished product. Our extensive portfolio of satisfied clients reflects our dedication in providing a first class service.
LLAC – London Lofts and Construction has been operating in and around London for over 10 years. Originally established as a loft conversion company, we have expanded our service to include extensions, refurbishments and even commercial projects. Today LLAC is a leading expert in property renovation, maintenance and expansion. We offer fully personalized service from planning to the completion. With a straightforward procedure for the customer with regular updates and feedback right from the free initial survey, through to the actual construction of new loft space or extension.
Spécialisée dans le domaine de l'aménagement de combles, l'entreprise MCH, agréée Qualibat et RGE, met en œuvre son expertise et son professionnalisme depuis 2008. Grâce à la polyvalence de nos équipes, nous vous garantissons un suivi de grande qualité tout au long de la réalisation de vos travaux. Nous avons à coeur de livrer un travail bien fait, pour une entière satisfaction, et nous sommes passionnés par notre métier. Nous agençons, transformons et créons de l'espace habitable pour apporter du confort et de la joie aux familles qui s'agrandissent, toujours avec le souci du détail. Nous sommes recommandés par nos clients pour notre sérieux et le rapport qualité/prix de nos réalisations : des prix intéressants pour un résultat 100% pérenne ! N'hésitez pas à nous confier votre projet de combles !
C Dingle Builders are a family run business with over 40 years experience in the building trade. We pride ourselves on outstanding customer service, as we work on one job at a time and invest time in listening to our clients. This allows us the time to complete your job to the highest quality, working closely with you to create a space you'll enjoy spending time in for years to come. C Dingle Builders specialise in loft conversions, rear extensions, kitchens and general home refurbishment. We can take on the complete project from architectural drawings and engineers calculations to liaising with planning and building control, to finishing the works to the highest standard. Get in touch today to tell us about your 2018 project!
Concept Lofts are the proud designers and installers of high-quality loft conversions and carry out loft installations throughout Essex herts & London. Whether it's to create a master suite, a home office or kids' bedrooms, we handle everything from planning permission to architectural design and construction. Proud to offer you competitive prices on your loft conversion, we approach every project individually. Keen to create a bespoke loft space that adds genuine value to your property, just the way you want it. We understand that your day to day lives must continue with minimum disruption, so our promise is to reach completion in the shortest possible time, whilst you continue your day to day with that fabulous extra space.
We are a London based building company delivering exceptionally high standard services, specialise in most building aspects including loft conversions and extensions. PMB Construction (UK) Ltd is fully insured company, we pride ourselves on high recommendations and customer satisfaction, and offer 5 Years Warranty on all our new work. All work carried out by professional, honest and reliable team. Please do not hesitate to contact us for a free estimate. Our team does all our works and nothing gets sub-contracted to third parties.
The Kitchen & Loft Company offers loft conversions, kitchen extensions and whole house renovations throughout London, and Chiswick, Fulham, Hammersmith and Shepherd's Bush in particular. We include a full Design and Build service, clear fixed budget payment schedules, the highest quality of workmanship and have excellent references.Call now to arrange a free no obligation survey.
Although loft conversions usually don't require much external work and it could appear easy to carry one out by yourself, there are numerous elements involved that mean it would be better to call in a loft conversion company or specialists. First, there's the structural element. Lofts have been built the way they have in order to keep the roof up and the house structurally sound, so messing around with its layout and setup without knowing what you're doing could prove disastrous. Bungalow loft conversions are often popular as they double the amount of floor space in your home, but they are sometimes not built to have a second load-bearing floor inside and the structure could become unsafe if you don't do it properly. There's also insulation to consider – roofs are very different from internal walls and the way they are insulated will be different too. How you get up to your new floor will also take careful planning; unless you are happy to use a ladder for years to come, you'll need loft stairs installed which is no mean feat. And then not to mention the installation of skylights or the bigger project of installing dormer windows.
Once you've looked at various loft conversion plans and ideas, and you think it may be possible to carry one out in your home, look for loft conversion companies that can advise you on prices and how they would carry out the conversion.
Larger structural changes are made in hip to gable loft conversions and mansard loft conversions. Hip to gable involves changing the side sloping roof to a straight wall, extending up from the side wall of the floors below and creating only two sides to the roof itself, front and back, in what's called a gable roof. This adds extra room at either end of your loft if in a detached house, or to one house if semi-detached. Hip to gable conversions are not possible in terraced houses unless you are at the end of the terrace. Mansard loft conversions involve changing either the front, back or both sides of the roof to an almost vertical wall with a flat top. The top and wall usually slope slightly so as to allow rain to run off the roof still. Creating a mansard roof will dramatically increase space inside your loft and can be carried out on terraced houses, but it is a much bigger and costlier change. Hip to gable and mansard conversions are much more likely to require planning permission, so check with your local authority, or possibly with local loft conversion companies who would know, if you're planning on one.
There are also roof lift conversions that involve raising the whole roof in order to give more headroom inside your loft; quite a major project but there will be specialist loft conversion companies that can carry this out for you if required. Once you've looked at the loft conversion specialists near you, consider the other professionals that you may need to hire to finish your attic to a high standard. Here are some related professionals and vendors to complement the work of loft conversion specialists: .
Find loft conversion specialists on Houzz. Narrow your search for a loft conversion company by entering your nearest city or postcode. Look at photos and read reviews to find the best loft conversion companies for your home.


text:
'use strict';

import * as vscode from 'vscode';
import * as path from 'path';
import { ExtensionContext, TextDocumentContentProvider, EventEmitter, Event, Uri, ViewColumn } from 'vscode';
import TelemetryReporter from 'vscode-extension-telemetry';

interface IPackageInfo {
	name: string;
	version: string;
	aiKey: string;
}

var telemetryReporter: TelemetryReporter;

export function activate(context: ExtensionContext) {

	let packageInfo = getPackageInfo(context);
	telemetryReporter = packageInfo && new TelemetryReporter(packageInfo.name, packageInfo.version, packageInfo.aiKey);

	let provider = new MDDocumentContentProvider(context);
	let registration = vscode.workspace.registerTextDocumentContentProvider('markdown', provider);

	let d1 = vscode.commands.registerCommand('markdown.showPreview', showPreview);
	let d2 = vscode.commands.registerCommand('markdown.showPreviewToSide', uri => showPreview(uri, true));
	let d3 = vscode.commands.registerCommand('markdown.showSource', showSource);

	context.subscriptions.push(d1, d2, d3, registration);

	vscode.workspace.onDidSaveTextDocument(document => {
		if (isMarkdownFile(document)) {
			const uri = getMarkdownUri(document.uri);
			provider.update(uri);
		}
	});

	vscode.workspace.onDidChangeTextDocument(event => {
		if (isMarkdownFile(event.document)) {
			const uri = getMarkdownUri(event.document.uri);
			provider.update(uri);

		}
	});

	vscode.workspace.onDidChangeConfiguration(() => {
		vscode.workspace.textDocuments.forEach(document => {
			if (document.uri.scheme === 'markdown') {
				// update all generated md documents
				provider.update(document.uri);
			}
		});
	});
}

function isMarkdownFile(document: vscode.TextDocument) {
	return document.languageId === 'markdown'
		&& document.uri.scheme !== 'markdown'; // prevent processing of own documents
}

function getMarkdownUri(uri: Uri) {
	return uri.with({ scheme: 'markdown', path: uri.path + '.rendered', query: uri.toString() });
}

function showPreview(uri?: Uri, sideBySide: boolean = false) {

	let resource = uri;
	if (!(resource instanceof Uri)) {
		if (vscode.window.activeTextEditor) {
			// we are relaxed and don't check for markdown files
			resource = vscode.window.activeTextEditor.document.uri;
		}
	}

	if (!(resource instanceof Uri)) {
		if (!vscode.window.activeTextEditor) {
			// this is most likely toggling the preview
			return vscode.commands.executeCommand('markdown.showSource');
		}
		// nothing found that could be shown or toggled
		return;
	}

	let thenable = vscode.commands.executeCommand('vscode.previewHtml',
		getMarkdownUri(resource),
		getViewColumn(sideBySide),
		`Preview '${path.basename(resource.fsPath)}'`);

	telemetryReporter.sendTelemetryEvent('openPreview', {
		where : sideBySide ? 'sideBySide' : 'inPlace',
		how : (uri instanceof Uri) ? 'action' : 'pallete'
	});

	return thenable;
}

function getViewColumn(sideBySide): ViewColumn {
	const active = vscode.window.activeTextEditor;
	if (!active) {
		return ViewColumn.One;
	}

	if (!sideBySide) {
		return active.viewColumn;
	}

	switch (active.viewColumn) {
		case ViewColumn.One:
			return ViewColumn.Two;
		case ViewColumn.Two:
			return ViewColumn.Three;
	}

	return active.viewColumn;
}

function showSource(mdUri: Uri) {
	if (!mdUri) {
		return vscode.commands.executeCommand('workbench.action.navigateBack');
	}

	const docUri = Uri.parse(mdUri.query);

	for (let editor of vscode.window.visibleTextEditors) {
		if (editor.document.uri.toString() === docUri.toString()) {
			return vscode.window.showTextDocument(editor.document, editor.viewColumn);
		}
	}

	return vscode.workspace.openTextDocument(docUri).then(doc => {
		return vscode.window.showTextDocument(doc);
	});
}

function getPackageInfo(context: ExtensionContext): IPackageInfo {
	let extensionPackage = require(context.asAbsolutePath('./package.json'));
	if (extensionPackage) {
		return {
			name: extensionPackage.name,
			version: extensionPackage.version,
			aiKey: extensionPackage.aiKey
		};
	}
	return null;
}

interface IRenderer {
	render(text: string) : string;
}

class MDDocumentContentProvider implements TextDocumentContentProvider {
	private _context: ExtensionContext;
	private _onDidChange = new EventEmitter<Uri>();
	private _waiting : boolean;
	private _renderer : IRenderer;

	constructor(context: ExtensionContext) {
		this._context = context;
		this._waiting = false;
		this._renderer = this.createRenderer();
	}

	private createRenderer() : IRenderer {
		const hljs = require('highlight.js');
		const mdnh = require('markdown-it-named-headers');
		const md = require('markdown-it')({
			html: true,
			highlight: function (str, lang) {
				if (lang && hljs.getLanguage(lang)) {
					try {
						return `<pre class="hljs"><code><div>${hljs.highlight(lang, str, true).value}</div></code></pre>`;
					} catch (error) { }
				}
				return `<pre class="hljs"><code><div>${md.utils.escapeHtml(str)}</div></code></pre>`;
			}
		}).use(mdnh, {});
		return md;
	}

	private getMediaPath(mediaFile) : string {
		return this._context.asAbsolutePath(path.join('media', mediaFile));
	}

	private isAbsolute(p) : boolean {
		return path.normalize(p + '/') === path.normalize(path.resolve(p) + '/');
	}

	private fixHref(resource: Uri, href: string) : string {
		if (href) {
			// Use href if it is already an URL
			if (Uri.parse(href).scheme) {
				return href;
			}

			// Use href as file URI if it is absolute
			if (this.isAbsolute(href)) {
				return Uri.file(href).toString();
			}

			// use a workspace relative path if there is a workspace
			let rootPath = vscode.workspace.rootPath;
			if (rootPath) {
				return Uri.file(path.join(rootPath, href)).toString();
			}

			// otherwise look relative to the markdown file
			return Uri.file(path.join(path.dirname(resource.fsPath), href)).toString();
		}
		return href;
	}

	private computeCustomStyleSheetIncludes(uri: Uri): string[] {
		const styles = vscode.workspace.getConfiguration('markdown')['styles'];
		if (styles && Array.isArray(styles) && styles.length > 0) {
			return styles.map((style) => {
				return `<link rel="stylesheet" href="${this.fixHref(uri, style)}" type="text/css" media="screen">`;
			});
		}
		return [];
	}

	public provideTextDocumentContent(uri: Uri): Thenable<string> {

		return vscode.workspace.openTextDocument(Uri.parse(uri.query)).then(document => {
			const head = [].concat(
				'<!DOCTYPE html>',
				'',
				'',
				'<meta http-equiv="Content-type" content="text/html;charset=UTF-8">',
				`<link rel="stylesheet" type="text/css" href="${this.getMediaPath('markdown.css')}" >`,
				`<link rel="stylesheet" type="text/css" href="${this.getMediaPath('tomorrow.css')}" >`,
				this.computeCustomStyleSheetIncludes(uri),
				`<base href="${document.uri.toString(true)}">`,
				'',
				''
			).join('\n');

			const body = this._renderer.render(document.getText());

			const tail = [
				'',
				''
			].join('\n');

			return head + body + tail;
		});
	}

	get onDidChange(): Event<Uri> {
		return this._onDidChange.event;
	}

	public update(uri: Uri) {
		if (!this._waiting) {
			this._waiting = true;
			setTimeout(() => {
				this._waiting = false;
				this._onDidChange.fire(uri);
			}, 300);
		}
	}
}

redpajama_set_name: RedPajamaGithub


text:
Cancellations & Closings
WNAW Mobile App
Your Hometown Station
Month Playlist
WNAWWNAW
PPD Officer Derby, 'Operation Copsicle' to be Featured on 'Steve Harvey Show'
Mike Heck
Pittsfield Police Officer Darren Derby has garnered a lot of local recognition. Now, he, along with "Operation Copsicle" will get the national spotlight.
Derby and the PPD's ice cream truck -- which is used to better the relationship between the community and its law enforcement -- will be featured on Friday's episode of "Steve", which is a variety show hosted by Steve Harvey.
"The segment, which features videos and images from both the Pittsfield Police Department and Officer Derby's Facebook page, will showcase "Operation Copsicle" and the Police Department's efforts to build a better relationship with our residents," according to city officials.
We reached out to Officer Derby and he told us, "I'm not sure what they're going to show, but yeah, (having what we're doing on) Steve Harvey is pretty cool."
We couldn't be more proud of Officer Derby and his idea which brought the community together in such an incredible way. You can check out Friday's segment on "The Steve Harvey Show" at 10 a.m. on WTEN, channel 10.
Filed Under: Pittsfield
Williamstown Ordered to Monitor Sewer Inflow
EEO/Jobs
Berkshires Business Listings
2020 WNAW, Townsquare Media, Inc. All rights reserved.


text:
#import <CoreLocation/CoreLocation.h>
#import <CoreMotion/CoreMotion.h>
#import <UIKit/UIKit.h>

#import "Flurry.h"

#import <AdBuddiz/AdBuddiz.h>

#import <Chartboost/Chartboost.h>
#import <Chartboost/CBNewsfeed.h>

#import <CommonCrypto/CommonDigest.h>
#import <AdSupport/AdSupport.h>

#import "FBSettings.h"
#import "FBAppEvents.h"

#import <VungleSDK/VungleSDK.h>

#import "PascalImports.h"
#import "TERRA_Utils.h"

#import "TERRA_EngineController.h"
#import "TERRA_EngineDelegate.h"
#import "TERRA_EAGLView.h"
#import "TERRA_AccelerometerFilter.h"

@implementation EngineController

bool _hasGyro = false;
bool _hasCompass = false;

bool hasFlurry = false;
bool hasAdBuddiz = false;
bool hasAdMobBanner = false;
bool hasAdMobInterstitial = false;
bool hasChartboost = false;
bool hasVungle = false;

EngineController *_controller = nil;

void AnalyticsLog(char *s)
{
    if (!hasFlurry) return;
    NSString *a = [NSString stringWithCString:s encoding:NSASCIIStringEncoding];
    NSLog(@"Sending analytics event: %s", s);
    [Flurry logEvent:a];
}

void AnalyticsLogWithParams(char *s, char *s2)
{
    if (!hasFlurry) return;
    NSString *a = [NSString stringWithCString:s encoding:NSASCIIStringEncoding];
    NSString *b = [NSString stringWithCString:s2 encoding:NSASCIIStringEncoding];
    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:b, a, nil];
    NSLog(@"Sending analytics event: %s - %s", s, s2);
    [Flurry logEvent:a withParameters:dictionary];
}

void showFullscreenAds()
{
    [_controller showFullscreenAd];
}

+ (EngineController*)getInstance
{
    return _controller;
}

bool InitAccelerometer()
{
	[_controller InitAccelerometer];
	return true;
}

bool InitGyroscope()
{
	if (_hasGyro)
	{
		[_controller InitGyroscope];
		return true;
	}
	else
		return false;
}

bool InitCompass()
{
	if (_hasCompass)
	{
		[_controller InitCompass];
		return true;
	}
	else
		return false;
}

bool StopAccelerometer()
{
	[_controller StopAccelerometer];
	return true;
}

bool StopGyroscope()
{
	if (_hasGyro)
	{
		[_controller StopGyroscope];
		return true;
	}
	else
		return false;
}

bool StopCompass()
{
	if (_hasCompass)
	{
		[_controller StopCompass];
		return true;
	}
	else
		return false;
}

- (void)InitAccelerometer
{
	float updateFrequency = 30.0f;

	filter = [[LowpassFilter alloc] initWithSampleRate:updateFrequency cutoffFrequency:5.0];
	filter.adaptive = YES;

	[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1.0 / updateFrequency];
	[[UIAccelerometer sharedAccelerometer] setDelegate:self];
	NSLog(@"Initialized Accelerometer");
}

- (void)StopAccelerometer
{
	[[UIAccelerometer sharedAccelerometer] setDelegate:nil];
	NSLog(@"Stopped Accelerometer");
}

- (void)InitGyroscope
{
	if (!_hasGyro)
		return;

	float updateFrequency = 30.0f;

	// Start the gyroscope if it is not active already
	if([_controller->motionManager isGyroActive] == NO)
	{
		_hasGyro = true;
		[_controller->motionManager setGyroUpdateInterval:1.0f / updateFrequency];

		// Add on a handler block object
		// Receive the gyroscope data on this block
		[_controller->motionManager startGyroUpdatesToQueue:[NSOperationQueue mainQueue]
		 withHandler:^(CMGyroData *gyroData, NSError *error)
		{
			NSString *x = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.x];
			NSString *y = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.y];
			NSString *z = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.z];
			NSLog(x);
			NSLog(y);
			NSLog(z);
			ApplicationOnGyroscope(gyroData.rotationRate.x, gyroData.rotationRate.y, gyroData.rotationRate.z);
		}];
	}

	NSLog(@"Initialized Gyroscope");
}

- (void)StopGyroscope
{
	[_controller->motionManager stopGyroUpdates];
	NSLog(@"Stopped Gyroscope");
}

- (void)InitCompass
{
	if (!_hasCompass)
		return;

	float updateFrequency = 30.0f;

	locationManager.desiredAccuracy = kCLLocationAccuracyBest;
	locationManager.headingFilter = 1;
	locationManager.delegate = self;
	[locationManager startUpdatingHeading];

	NSLog(@"Initialized Compass");
}

- (void)StopCompass
{
	if (!_hasCompass)
		return;

	[locationManager stopUpdatingHeading];
	NSLog(@"Stopped Compass");
}

// Implement viewDidLoad to do additional setup after loading the view.
-(void)viewDidLoad
{
	[super viewDidLoad];
	_controller = self;

	motionManager = [[CMMotionManager alloc] init];
	locationManager=[[CLLocationManager alloc] init];

	_hasGyro =  ([motionManager isGyroAvailable]);
	_hasCompass = [locationManager headingAvailable];

    UIWindow* window = [UIApplication sharedApplication].keyWindow;

    //CGRect screen = GetScreenBounds();
    //CGRect screen =[[UIScreen mainScreen] bounds];

    CGRect screen = window.frame;

    UIView *mainView = [[UIView alloc] initWithFrame:screen];
    self.view = mainView;

    glView = [[EAGLView alloc] initWithFrame: screen];

    [window addSubview:mainView];
    //  [window bringSubviewToFront:glView];

    //[window insertSubview:glView  belowSubview:self.view];
    [mainView addSubview:glView];
    //[window addSubview:glView];

    [glView setAnimationInterval:60.0];
    [glView startAnimation];
    openglView = glView;

    /*iCadeReaderView *control = [[iCadeReaderView alloc] initWithFrame:screen];
    [glView addSubview:control];
    control.active = YES;
    control.delegate = [EngineDelegate getInstance];
    //[control release];
 */

    iAPManager = [InAppPurchaseManager alloc];
    [iAPManager loadStore];

    midiPlayer = [MidiPlayer alloc];
    [midiPlayer create];
}

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

- (GADInterstitial *)createAndLoadAdMobInterstitial {

    if (self->adMobinterstitialID == nil) {
        return nil;
    }

    GADInterstitial *interstitial = [[GADInterstitial alloc] init];
    interstitial.adUnitID = self->adMobinterstitialID;
    interstitial.delegate = self;

    GADRequest *request = [GADRequest request];
    request.testDevices = @[ GAD_SIMULATOR_ID ]; // Requests test ads on simulators.
    [interstitial loadRequest:request];

    return interstitial;
}

-(void)showNextAd {

    self->adCount++;
    if (self->adCount>40)
        return;

    NSInteger randomNumber = arc4random() % 3;

    randomNumber = 0;
    NSLog(@"Random ad: %d", randomNumber);

    switch (randomNumber) {
        case 0:
            if (!self->showedAdBuddiz && hasAdBuddiz) {
                self->showedAdBuddiz = true;

                NSLog(@"Calling AdBuddiz interstial");

                [AdBuddiz showAd];
                return;
            }
            break;

        case 1:
            if (!self->showedAdMob && hasAdMobInterstitial) {
                if ([self->adMobinterstitial isReady]) {
                    self->showedAdMob = true;

                    NSLog(@"Calling adMob interstial");

                    [self->adMobinterstitial presentFromRootViewController:self];
                    return;
                }
               return;
            }
            break;

        case 2:
            if (!self->showedChartboost && hasChartboost) {
                self->showedChartboost = true;

                NSLog(@"Calling Chartboost interstial");

                [Chartboost showInterstitial:CBLocationLevelComplete];
                return;
            }
            break;

        case 3:
            if (!self->showedVungle) {
                self->showedVungle = true;

                NSLog(@"Calling vungle interstial");

                UIWindow *window = [[UIApplication sharedApplication] keyWindow];
                self->tempController = window.rootViewController;

                VungleSDK* sdk = [VungleSDK sharedSDK];
                [sdk playAd:self];

                return;
            }
            break;

        case 4:
            if (!self->showediAd) {
                self->showediAd = true;
                NSLog(@"Calling iAd interstial");
                return;
            }
            break;

        default:
            break;
    }

    [self showNextAd];
}

-(void)showFullscreenAd {

    NSLog(@"Showing fullscreenad");

    self->adCount = 0;
    self->showedAdBuddiz = false;
    self->showedAdMob = false;
    self->showediAd = false;
    self->showedChartboost = false;
    self->showedVungle = false;

    [self showNextAd];
}

-(void)didFailToShowAd:(AdBuddizError) error
{
    [self showNextAd];
}

- (void)didHideAd
{
}

- (void)didDisplayInterstitial:(CBLocation)location
{
}

- (void)didFailToLoadInterstitial:(CBLocation)location
                        withError:(CBLoadError)error
{
    [self showNextAd];
}

- (void)vungleSDKwillShowAd {
    [glView stopAnimation];
//    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
}

- (void)vungleSDKwillCloseAdWithViewInfo:(NSDictionary*)viewInfo willPresentProductSheet:(BOOL)willPresentProductSheet
{
//    if (!willPresentProductSheet)
    UIWindow *window = [[UIApplication sharedApplication] keyWindow];
    window.rootViewController = self->tempController;
  //  [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
//    ApplicationOnContextLost();
    [glView startAnimation];
}

-(void)startEngine {
    char buf[1024];

    CGRect screen = GetScreenBounds();

    NSLog(@"Width: %f", screen.size.width);
    NSLog(@"Height: %f", screen.size.height);
    ApplicationSetScreenRegion(screen.size.width, screen.size.height);

    NSString *countryCode = [[NSLocale currentLocale]
                             objectForKey:NSLocaleCountryCode];
    strcpy(buf, [countryCode UTF8String]);
    ApplicationSetCountry(buf);

    strcpy(buf, [[[NSLocale preferredLanguages] objectAtIndex:0] UTF8String]);
    ApplicationSetLanguage(buf);

    strcpy(buf, [[[NSBundle mainBundle] resourcePath] UTF8String]);
    ApplicationSetResourcesPath(buf);

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    strcpy(buf, [documentsDirectory UTF8String]);
    ApplicationDocumentPath(buf);

    paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *tempDirectory = [paths objectAtIndex:0];
    strcpy(buf, [tempDirectory UTF8String]);
    ApplicationTempPath(buf);

    /*
    // clear bad files from cache
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    NSArray *fileArray = [fileMgr contentsOfDirectoryAtPath:tempDirectory error:nil];
    for (NSString *filename in fileArray)
    {
        NSString *URL = [tempDirectory stringByAppendingPathComponent:filename];
        NSError *attributesError = nil;
        NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:URL error:&attributesError];
        NSNumber *fileSizeNumber = [fileAttributes objectForKey:NSFileSize];
        long fileSize = [fileSizeNumber longLongValue];
        NSLog(@"Found cache file: %@",URL);
        NSLog(@"Size: %i",fileSize);
        if (fileSize<=0)
        {
            [fileMgr removeItemAtPath:URL error:NULL];
        }
    }	*/

    ApplicationInit();

    /*char *s = ApplicationGetAppID();
    if (strlen(s)>0)// call the Appirater class
        [Appirater appLaunched];
    */

    char* _fbid = ApplicationGetFacebookID();
    if (strlen(_fbid)>0 && isSocialFrameworkAvailable())
    {
        NSString* myid = [NSString stringWithFormat:@"%s", _fbid];
        [FBSettings setDefaultAppID:myid];
        [FBAppEvents activateApp];
    }

    NSLog(@"Checking if iAd is supported");
    Class adClass = (NSClassFromString(@"ADBannerView"));
    if (adClass==nil)
    {
        iADSupported = NO;
        NSLog(@"iAd unavailable");
    }
    else
    {
        NSString   *countryCode = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
        NSArray *countryList = [[NSArray alloc] initWithObjects:@"US", @"FR",@"GB",@"IT",@"JP",@"ES",@"DE", nil];
        iADSupported = [countryList containsObject: countryCode];
    }

    iADSupported = false;

    NSLog(@"Initializing flurry analytics");
    char* _flurryId = ApplicationGetFlurryID();
    if (strlen(_flurryId)>0)
    {
        NSString* myid = [NSString stringWithFormat:@"%s", _flurryId];
        NSLog(@"Got ID %@",myid);
        [Flurry startSession:myid];
        hasFlurry = true;
    }
    else
        hasFlurry = false;

    NSLog(@"Initializing adBuddiiz");
    char* _adBuddizId = ApplicationGetAdBuddizID();
    if (strlen(_adBuddizId)>0)
    {
        NSString* myid = [NSString stringWithFormat:@"%s", _adBuddizId];
        NSLog(@"Got ID %@",myid);

        [AdBuddiz setPublisherKey:myid];
        [AdBuddiz setDelegate:self];

         [AdBuddiz setTestModeActive];
        [AdBuddiz cacheAds];
        hasAdBuddiz = true;
    }
    else
        hasAdBuddiz = false;

    NSLog(@"Initializing Vungle");
    char* _vungleId = ApplicationGetVungleID();
    if (strlen(_vungleId)>0)
    {
        NSString* myid = [NSString stringWithFormat:@"%s", _vungleId];
        NSLog(@"Got ID %@",myid);

        VungleSDK* sdk = [VungleSDK sharedSDK];
        [sdk setDelegate:self];
        // start vungle publisher library
        [sdk startWithAppId:myid];

        hasVungle = true;
    }
    else
        hasVungle = false;

    NSLog(@"Initializing chartboost");
    char* _chartboostId = ApplicationGetChartboostID();
    char* _chartboostSecret = ApplicationGetChartboostSecret();
    if (strlen(_chartboostId)>0 && strlen(_chartboostSecret)>0)
    {
        NSString* myid = [NSString stringWithFormat:@"%s", _chartboostId];
        NSLog(@"Got ID %@",myid);

        NSString* mysecret = [NSString stringWithFormat:@"%s", _chartboostSecret];
        NSLog(@"Got secret %@",mysecret);

        [Chartboost startWithAppId:myid
                      appSignature:mysecret
                          delegate:self];

        hasChartboost = true;
    }
    else
        hasChartboost = false;

    NSLog(@"Initializing AdMob Interstitial");
    char* _adMobInterstitialId = ApplicationGetAdMobInterstitialID();
    if (strlen(_adMobInterstitialId)>0)
    {
        adMobinterstitialID = [NSString stringWithFormat:@"%s", _adMobInterstitialId];
        NSLog(@"Got ID %@", adMobinterstitialID);

        self->adMobinterstitial = [self createAndLoadAdMobInterstitial];

        hasAdMobInterstitial = true;
    }
    else
        hasAdMobInterstitial = false;

    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(deviceOrientationDidChange:) name: UIDeviceOrientationDidChangeNotification object: nil];

    glView.frame = screen;
    currentOrientation = getCurrentOrientation();

}

- (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial {
    self->adMobinterstitial = [self createAndLoadAdMobInterstitial];
}

// UIAccelerometerDelegate method, called when the device accelerates.
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
	[filter addAcceleration:acceleration];
	float x = filter.x;
 	float y = filter.y;
	float z = filter.z;
	ApplicationOnAccelerometer(x,y,z);
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
	// Detect touch anywhere
	UITouch *touch = [touches anyObject];
	CGPoint touchLocation = [touch locationInView:openglView];

	touchX = touchLocation.x;
	touchY = touchLocation.y;

    //CGRect screen = [[UIScreen mainScreen] applicationFrame];
    //NSLog(@"PX:%i PY:%i", touchX, touchY);
    //NSLog(@"WX:%f HY:%f", screen.size.width, screen.size.height);

	ApplicationBeginTouch(touchX, touchY);
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)event
{
    UITouch *touch = [touches anyObject];
	CGPoint touchLocation = [touch locationInView:openglView];
    //NSLog(@"%f",touchLocation.x);

	ApplicationMoveTouch(touchLocation.x, touchLocation.y);
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent*)event
{
    UITouch *touch = [touches anyObject];
	CGPoint touchLocation = [touch locationInView:openglView];

	ApplicationEndTouch(touchLocation.x, touchLocation.y);
}

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *) newHeading
{
	float angle =  -newHeading.trueHeading * M_PI / 180.0f;
	NSLog(@"Compass heading: %f", angle);

	ApplicationOnCompass(angle, 0, 0); // TODO
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    //return [[UIDevice currentDevice] orientation];
   return UIInterfaceOrientationLandscapeRight;

}

- (BOOL)shouldAutorotateToInterfaceOrientation
{
    return NO;
}

- (NSUInteger) supportedInterfaceOrientations
{
    //Because your app is only landscape, your view controller for the view in your
    // popover needs to support only landscape
    return UIInterfaceOrientationMaskLandscape;
}

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
 {
 /*if (orientation == UIInterfaceOrientationLandscapeRight)
 return YES;

 return NO;*/
     return NO;
 }

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
     NSLog(@"Rotating to %i", toInterfaceOrientation);
}

-(BOOL)shouldAutorotate
{
	return NO;
}

-(void)updateOrientation
{
    int orientation = getCurrentOrientation();
    //Ignoring specific orientations
    if (orientation <0 || orientation == currentOrientation)
    {
        return;
    }
    currentOrientation = orientation;

    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(relayoutLayers) object:nil];

    NSLog(@"Switching orientation %i", orientation);

    ApplicationSetOrientation(orientation);
}

- (void)deviceOrientationDidChange:(NSNotification *)notification {
    [self updateOrientation];

  /*   CGRect screen = GetScreenBounds();
    float rotation;
    if (self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
        rotation = M_PI;
    else if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
        rotation = M_PI / 2.0;
    else if (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight)
        rotation = M_PI / (- 2.0);

    self->glView.center = CGPointMake(screen.size.width/2, screen.size.height/2);
    self->glView.transform = CGAffineTransformMakeRotation(rotation);
    */
   // [self performSelector:@selector(orientationChangedMethod) withObject:nil afterDelay:0];
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
    ApplicationMemoryWarning();
}

-(void)dealloc
{
	[super dealloc];

    [glView release];
    [iAPManager release];

    [[UIAccelerometer sharedAccelerometer] setDelegate:nil];
}

@end


Do you know how many local jobs would be created in your county if Texas closed the health care Coverage Gap? It's easy to find out with our new fact sheets for every county in Texas.
With the support of Methodist Healthcare Ministries of South Texas, we've created customized fact sheets that outline the economic and health benefits for county residents if Texas accepts federal funds to expand health care coverage.
In Harris County, for example, expanded health care coverage would create 60,000 new jobs per year and pump up to $935 million into the county economy. Data come from recent estimates by respected Texas and national experts, including the U.S. Census, economist Dr. Ray Perryman and former Texas Deputy Comptroller Billy Hamilton.
Using the same data sources as the fact sheets, our online Health & Wealth County Checkup tool allows you to compare benefits across counties.
Just as several other conservative states have developed a plan to expand coverage and close the Coverage Gap, Texas leaders should, too. A growing number of business leaders, health care leaders, and other Texans are educating them about the benefits for uninsured workers, their families, and the economy. These new fact sheets provide important data in making the case for coverage expansion. Our state leaders should accept our share of the billions of dollars in federal health care funds to connect uninsured workers and parents with an affordable insurance option.
One million uninsured U.S. citizen adults in Texas stuck in the Coverage Gap are waiting for Texas leaders to act. A strong, diverse coalition including business groups, chambers of commerce, and county judges is calling for a Texas approach to expanding health care coverage to more Texans. These county fact sheets can help demonstrate the economic and health benefits such an expansion would bring, and we encourage concerned Texans to share these with their county leaders and state officials.
Written by Anne Dunkelberg. Cross-posted from the Better Texas blog.


text:
How one teen addict came back from the abyss
Will the Seahawks trade Wilson? Probably not. But should they?
Washington justices uphold $18M fine in GMO-labeling case
Life // Health
CECELIA GOODNOW, SEATTLE POST-INTELLIGENCER REPORTER
1of6Kirby has stopped taking drugs, smoking cigarettes and drinking alcohol, but he enjoys an occasional cigar -- though not inside his home north of Spokane.Paul Joseph Brown/Seattle Post-IntelligencerShow MoreShow Less
2of6Kirby has been taking guitar lessons for several years and has natural ability. He prefers classic blues and rock 'n' roll, particularly the Beatles. He plays acoustic and electric guitars and practices in his bedroom.Paul Joseph Brown/Seattle Post-IntelligencerShow MoreShow Less
4of6A junior at Mead High School in Spokane, Kirby enjoys science and does well in chemistry and biology. His occasional lapses draw special attention from teacher Rhonda Schalock, who encourages him to be more consistent.Paul Joseph Brown/Seattle Post-IntelligencerShow MoreShow Less
5of6Kirby has always done well in shop classes, but teacher Art Sabiston has noticed great improvement in his attitude and performance since returning to Mead High School. Kirby is now Sabiston's assistant in metal shop.Paul Joseph Brown/Seattle Post-IntelligencerShow MoreShow Less
"A hound in a garbage can" is what Kirby called himself.
Black-tar heroin, embalming fluid, painkillers -- anything would do when his addiction was raging.
By 15, he had nearly lost his life from escalating drug abuse that started when a friend's older brother gave him pot. He was 10 years old.
"My parents had no idea what was going on," he says.
Bright, affluent professionals, they remained in the dark for five years, until their son could no longer mask the addiction that was tearing him apart.
Kirby is only 17, but he knows he should be dead by now. That's what the inpatient nurses said when they read his drug history, and he agrees.
When he was 15, he tried to kill himself on drugs. Three times. His parents had no clue until weeks later. He tells it like this:
"Suddenly I'm going downhill. Suddenly it's like I wake up one day and depression hits. I said, 'Man, this sucks! If I want to feel normal, I have to get high. If I want to feel at all, I have to get high.' "
By then, he had spent a third of his life on drugs.
Many teens smoke dope occasionally and move on with their lives. Kirby was the frightening exception, speeded toward addiction by his early exposure to drugs and rapid escalation into multi-drug use. He and his family will never be the same.
"One of the things I've learned," says his father, Peter, "is drugs not only affect the child, they're a family disease. We became a drug family. We've had to change our lifestyle."
Peter has an astro-engineering background and is a top executive with a Spokane manufacturer. Forty-eight years old, he's tall and lean, with rugged good looks and a managerial bearing.
Kirby's mother, Ann, 46, is a nursing manager -- a tiny dynamo with pixyish brown hair. She's chatty and emotionally open, with a strain of nervous energy.
The youngest of their four children, Kirby talks freely about his drug history, but his parents ask that their family name be withheld because of the stigma and blame surrounding drug abuse. They say Peter's prominence makes full disclosure too risky. So for now they'll go by Ann and Peter, their middle names.
Kirby has no such reservations.
He has the filled-out frame of a young adult, dark eyes and bristle-short hair, and he crackles with restless intensity.
He's used to telling his life story. After his months on the speakers' board at Summit School, the state's only drug-recovery school, he has it almost memorized. He plows through with determination over dinner one night, visibly irritated when interruptions cause him to lose what turns out to be a very long thread.
His bottom line: "Money equals drugs."
Peter bristles, embarrassed at Kirby's suggestion that the family is "wealthy." But they're admittedly well off, with a $170,000 annual income that includes Peter's Air Force pension.
Self-described workaholics, Kirby's parents put in long hours for their piece of the American dream. They used to drag home between 7 and 9 at night -- a single-minded focus they can no longer afford
When Kirby was 11, his mother took a job in Olympia, thinking they would move to Western Washington when Peter left the Air Force. But a big project delayed his retirement, leading to a year of disruptive weekend commutes before the family reunited in Spokane.
"You think of kids using heroin and meth, and (you assume) they live on the wrong side of the tracks and their parents don't take care of them," Ann says. "And that's not true."
"What we found," Peter says, "is drugs don't affect the poor, they don't affect the rich -- they affect everyone. It's everywhere. It really is everywhere."
Easy access to drugs
Drugs were as close as the older friend who gave their son pot in fifth grade. Soon he was saving his allowance to buy his own stash.
"I really felt the effect. I liked it," Kirby says. "Oh, man, there's no way life could ever be this good day to day."
Kirby was in seventh or eighth grade -- he can't remember now -- when pot got old and he took up drinking.
"It was almost fun to know you were getting away with something -- to know you got out of the house with a backpack full of beer," he says. "I felt like James Bond or something. It's a rush. Then I'd go out and do a victory dance and get drunk."
Cigarettes were part of the scene, so he took up the habit. Then he added Vicodin, a prescription pain reliever that slowed him down, "almost like you're watching yourself out of body." He figured, "How much harm can a little white pill do?"
Doctors typically prescribe one to two pills every four to six hours. Kirby took 20 at a time, chasing a high that got further out of reach as his body developed tolerance for the drug. To pump it up, he started mixing Vicodin with alcohol, a potentially deadly cocktail that a treatment nurse later called a "death pill."
By ninth grade, Kirby was doing hallucinogens, uppers and downers and "weird kinds of pot" laced with other drugs. He started snorting -- and then smoking -- methamphetamine, a highly addictive stimulant brewed from a variable recipe of ephedrine, battery acid, lye and similar toxins.
As the drugs poured in, he got a stomach ulcer but managed to get through a doctor visit with his cover intact.
"I told the doctor it was spicy food," Kirby says, his voice dripping bitterness. "I was 14! What kind of 14-year-old eats enough spicy food to cause an ulcer?"
At home, his bedroom was littered with drug paraphernalia -- ordinary items like balloons and little packets of aluminum foil that were easy to overlook. Even when Ann saw psychedelic mushrooms growing in his closet, nothing clicked.
"I thought it was a science project," she says, voice flat with regret.
Two years ago Kirby became seriously ill with cytomegalovirus (CMV), a blood-borne virus that enlarged his liver and spleen and hit him like a cross between mononucleosis and hepatitis. He lost 35 pounds and missed two months of school.
The slide continued
As he regained strength, he slowly returned to classes -- and drugs. Sometimes he'd show up for first period, then go home and smoke pot while his parents were at work. By the time he was strong enough to last the school day, his drug use had bounced back as well.
Then he met black-tar heroin. Like most teens, he's afraid of needles. But this stuff was smokable. By scraping the residue off the bowl of the pipe, he could stretch his supply through five or six smokes.
Just one little problem.
"Eventually I was addicted to it," he says. "This stuff goes in the brain, you start getting messed up, you start going down."
One day his school, Mead High, called and said Kirby seemed disconnected. Peter, unaware of Kirby's adventures in brain chemistry, sat in on his classes, wondering if Kirby had attention deficit disorder, like his older brother.
The reality was much worse. Kirby was entering meltdown. Suicidal and unraveling, he felt trapped by drugs and saw no place to turn.
"All of my siblings did drugs," he says. "My sister was smoking pot with me -- no way she'd help me."
Over a two-month period, Kirby made three attempts to kill himself by overdosing on Vicodin and vodka.
By then, his whole family was coming apart from a strain that everyone felt but no one could define. One day while Peter was on an out-of-town business trip, Kirby "flipped out, just completely lost it" in the car with Ann. As soon as Peter returned, Ann called a family meeting to find out what -- what?! -- was going on.
Kirby, torn between fear and desperation, finally blurted out the truth.
"I was bawling my eyes out," he says. "I just let it out, told them everything I did for the last five years."
His parents took him to the adolescent psychiatric unit at Sacred Heart Medical Center, where he spent 10 days detoxing and undergoing assessment. The staff strongly recommended that Kirby enter a locked, inpatient facility.
Peter said no.
"That was my call," he admits stiffly, painfully. "It was a pride thing. Because of my pride, I wouldn't accept the professional recommendation. It was a strike to my ego."
As an engineer, he saw Kirby's disease as a problem to be analyzed and fixed. In time he learned the problem was bigger than all of them. By then, he and Ann had racked up so many bitter fights they nearly lost their 20-year marriage.
Ann became seriously depressed and anxious under the strain. She entered counseling and worked with a massage therapist, but suicidal thoughts began to surface. When she told her doctor she wanted to drive into a tree, he put her on an antidepressant and the anti-anxiety medication Xanax, which, if abused, is potentially addictive in its own right.
Ann's brown eyes are sad and liquid as she thinks about the strange duality of our medicated culture -- bad drugs stole her son, good drugs restored her sanity.
"Isn't it ironic?" she says.
Kirby, thinking his brief hospital stay had fixed his problem, returned to Mead High still dangerously unstable. Two weeks later he erupted. Offended by a minor slight from a younger student, he impulsively whipped out a pocketknife.
"He talked some smack to me -- he told me to shut up," Kirby says. "I was a sophomore, he was a freshman. It was so little, but being on that teeter-totter, I wasn't thinking."
Kirby was expelled from the Mead School District and spent several days in juvenile hall on a felony assault charge. He transferred to Shadle Park High School in the Spokane School District. He was back on drugs in six days.
Disguising his addiction
Forced to take weekly drug tests as a condition of his release, he switched to LSD, which didn't show up on his urinalyses. He even dug out an old gift -- a baby shark embalmed in formaldehyde -- and dipped his cigarettes in the fluid before smoking them -- a potentially lethal high known as sherm.
By then his ravaged brain had lost all ability to stay clean. "I had to get high," Kirby says.
Things happened quickly after that. As a condition of deferred prosecution, Kirby agreed to inpatient treatment. Peter drove him to a locked unit in Boise, where he spent 21 days.
Ann, who recently had lost her job, had what she calls a nervous breakdown and "ran away" to her parents' home in Wisconsin for several weeks. "I lost it, I just lost it," she says.
In treatment, Kirby went through rugged withdrawal symptoms -- vomiting, sweating and delirium tremens. "It SUCKED!" he says. Almost as bad was the "mental part" of recovery -- "knowing that you're not going to get high again, that you're stuck with this (drug-free) life and you better get used to it."
After his harrowing, five-year drug odyssey, Kirby enrolled last fall in Summit School. He now serves on the school's speakers' board. His parents have nothing but praise for the school's dedicated staff.
Late last spring, Kirby petitioned the Mead School District for permission to return to his old high school. Summit counselor Julie Kennedy and his parents went with him, but Kirby insisted on making his own case.
This fall he returned to Mead as a junior.
"It's a lot of work -- long days, harder days," he says. "I'm very grumpy a lot of times. I just want to be left alone."
The near loss of their son has been a chastening blow to Peter and Ann. They say they spend more time at home now; they don't let things slide. "My husband and I are very good friends and lovers and we made it through this," Ann says.
Kennedy says Ann and Peter have grown more savvy about drugs and communicate more about Kirby's drug history.
"It's not a family secret as much," she says.
Kirby isn't out of the woods, and he may never be. He has stopped attending 12-step meetings, saying "they're not good for me" because the war stories bring him down. Like a lot of recovering teens, he still flirts with alcohol.
"I'm very confident about my life," he says. "I still drink on occasion, but it's almost like I found my place. I know how to have a beer and have fun without being drunk."
But in the next breath he admits that "an addict is always an addict."
The Summit staff recently gave him a choice: give up alcohol or quit the speakers' board. He agreed the alcohol would go -- Summit is that important to him.
"It was a family," he says when he describes his experience there. "Nobody wants to get kicked out of a family."
Everyone hopes he keeps his word.
"I really believe Kirby is an addict," Kennedy says, "and he will be right back where he was if he starts to use."
CECELIA GOODNOW
Winter Escapes
Quick Getaways


Here are your travel contests for this week. You can win trips to Northern Spain; the 2018 World Series; Jordan; a cycling tour of Italy; a NASCAR race in Miami, Florida; Orlando, Florida; Vermont; North Carolina; a tour of the Balkans, Peru, or Botswana & Namibia; New York City; a European river cruise; and more.
Our grand prize includes four (4) tickets to a MLB World Series game, airfare, overnight accommodations, four (4) MLBshop.com $100 online gift codes, and a $350 Mastercard® Prepaid card. Not to mention the thrill of celebrating with the game's biggest fans at the 2018 MLB World Series. That's a winning combination. Two (2) runners-up will also win a MLBshop.com online gift certificate (valued at $500 and $100, respectively) to stock up on gear at the MLB shop.
Eight days cycling from Venice to Florence enjoying the gorgeous Emilia-Romagna countryside along the way.
Prize is for two people.
Easy riding level so most travelers can handle the pace.
Amazing culinary experiences at farms, vineyards, restaurants.
Wonderful local guides who will make you feel like family!
Two all-access race passes, and more!
Five runners-up and dozens of other winners will receive Wyndham Rewards and Matt Kenseth merchandise, as well as Wyndham Rewards points redeemable at thousands of destinations worldwide.
Can I win a trip to Dubai??
Yes, there are sometimes travel contests offering trips to Dubai. Subscribe & keep an eye out!


This light and moist low-carb almond sponge cake is sandwiched together with a smooth, luscious cream cheese frosting and topped with fresh berries to create a beautiful, patriotic cake without all the carbs and sugar!
Firstly make the cake; pre-heat the oven to 325F/165c. Starting with the ingredients in stage one, whisk the eggs with the Sola sweetener until very light and fluffy, this is best done with an electric whisk. Set to one side.
Sift the coconut flour, almond flour and baking powder into a separate bowl, set to one side. Melt the butter and set to one side.
With the ingredients from stage two, whisk the egg whites with just 1 teaspoon of the Sola sweetener until you have stiff peaks, at this point gradually whisk in the remaining Sola sweetener and continue to whisk until glossy.
Pour the dry ingredient mixture and melted butter into the beaten whole eggs and stir until well combined, then gently fold in the egg whites. Make sure you do this very gently because the small bubbles in the egg whites are what gives the cake its light, spongy texture.
Divide the mixture between two quarter size sheet pans (9x13 inch), which have been lined with parchment paper, gently spread out.
Bake for 20 to 25 minutes until risen and golden brown, the cakes are delicate, so cool them in the pans for 1 hour at room temperature, or in the refrigerator for 30 minutes.
To make the frosting, place the cream cheese, vanilla and Sola sweetener in the bowl of a stand mixer fitted with the whisk attachment. Whisk for approximately five minutes, until the mixture is smooth and creamy. You can also use an electric hand mixer.
Once your cream cheese mixture is smooth and free of any lumps, gradually add the cream, then turn up the speed and whisk until stiff. Refrigerate until needed.
To assemble the cake, remove the cakes from the pans, place one cake on a serving platter and spread over half of the frosting mixture, top with the second cake and the remaining frosting.
Decorate with raspberries and blueberries to create an American flag. Store the cake in the refrigerator until needed.


Our Hand crafted Creations are Unique, customized and Eco-friendly products for all occasions.
We offer a wide range of handcrafted Accessories from Hair bands, Tiara, Clips & much more. These are one of our eye candy items for a girl in you. Complete your attire / apparel with our customized matching accessories.


To facilitate trade in Rakhine State, U Tin Aung Oo, chair of Rakhine State Federation of Chamber of Commerce and Industries, last week proposed the construction of a new port in Sittwe during a meeting with the vice president.
He said the port, which should be able to handle vessels of up to 20,000 tonnes, could be constructed under a Public Private Partnership (PPP). The proposal was met with approval from the government.
The proposal comes after a surge in the volume of goods handled in Sittwe over the past five years. According to statistics from the Ministry of Transport and Communication, the volume of cargo handled at Sittwe rose to some 350,000 tonnes in 2017-18 from 200,000 tonnes in 2013-14. However, the flow of goods bound for Yangon from Sittwe is just 37,000 tonnes, which is around one tenth of the volume at Sittwe.
The Sittwe port is the main port handling goods traded between Myanmar and Bangladesh. Over the past five years, goods exported to Bangladesh have doubled to 20,000 tonnes. Port capacity at Sittwe however, has not increased to handle the higher volumes.
There are currently just two ports in Sittwe: state-owned Hpaungdawgyi Port and Shwemingan Port, which was built by the Asia Development Bank. Both ports have the capacity to handle a single 1000-tonne ship each. Meanwhile, existing infrastructure at the ports require a period of 10 days to load each vessel.
Currently, the Sittwe ports handle around 15 ships per month. "As the current port capacity is so limited, cargo is also being unloaded onto barges in the sea. However, this is a slow process which delays the flow of cargo and raises costs," said U Tin Aung Oo.
In addition, the ports are unable to handle the weight of large trucks, so smaller vehicles are used to transport the goods received, which drives costs up even further.
"If we can build a third and larger port able to handle ships of up to 20,000 tonnes, we would save on time and costs," he added.
U Tin Aung Oo's proposal received a positive response. "A new port which can handle bigger vessels will solve the current bottleneck in Rakhine. We are ready to help in terms of offering technology and other necessary resources," said U Thant Sin Maung, Minister of Transport and Communication.
He warned though that the port should be constructed in the right location so as not to interfere with the ongoing development of the Kaladan Multi-Modal Transit Transport Project, which is expected to connect the eastern Indian seaport of Kolkata with Sittwe . In Myanmar, it will then link Sittwe seaport to Paletwa in Chin State via the Kaladan river.
"The Kaladan project involves huge investments so we must be careful to choose the right location for the new port so as not to compete with the Kaladan ports," U Thant Sin Maung said.
So far, the Myanmar Port Authority has provided three locations by the Kaladan river where feasibility studies for the construction of a new port of the suggested 20,000 tonne capacity can be conducted.


Alessandro Michele Spring-Summer 2017 collection for Gucci fashion house was presented during the Milan Men's Fashion Week / Milano Moda Uomo (June 17-21, 2016). It was like a magical journey in the world of fairy tales.
'I like the idea of a journey, like Marco Polo. I hate travelling but there are many ways to do it, whether in your mind, or in changing the tapestry of a chair, or through the pages of a book', said the designer backstage.
Gucci Spring-Summer 2017 men's collection includes 70s silhouettes, beadwork, embroidery, historical references, dressing gowns, military coats, tuxedos, bombers, cartoon imagery.
'The military elements were inspired by the idea of Jane Austen naval officers returning home from lands afar', Michele explained.


text:
Ron Howard - is an American film director, producer and actor. Howard first came to prominence as a child actor. He gained national attention for playing young Opie Taylor, the son of Sheriff Andy Taylor (played by Andy Griffith) in the sitcom The Andy Griffith Show from 1960 through 1968. During this time, he also appeared in the musical film The Music Man (1962), a critical and commercial success. Howard was cast in one of the lead roles in the coming-of-age film American Graffiti (1973), which received widespread acclaim and became one of the most profitable films in history. The following year, Howard became a household name for playing Richie Cunningham in the sitcom Happy Days, a role he would play from 1974 through 1980. In 1980, Howard left Happy Days to focus on directing, producing and occasionally writing variety films and television series. His films include the comedy Night Shift (1982), the science-fiction/fantasy Cocoon (1985), the fantasy Willow (1988), the thriller Backdraft (1991), the historical docudrama Apollo 13 (1995), the Christmas comedy How the Grinch Stole Christmas (2000), the biographical drama A Beautiful Mind (2001), the biographical sports drama Cinderella Man (2005), the thriller The Da Vinci Code (2006), the historical drama Frost/Nixon (2008), Solo: A Star Wars Story (2018), and the documentary Pavarotti (2019). For A Beautiful Mind, Howard won the Academy Award for Best Director and Academy Award for Best Picture. He was nominated again for the same awards for Frost/Nixon.
Howard as Opie Taylor in 1961- The Andy Griffith Show
Howard as Richie Cunningham - Happy Days
Howard in 2018
Indiana Jones and the Temple of Doom is a 1984 American action-adventure film directed by Steven Spielberg. It is the second installment in the Indiana Jones franchise, a prequel to the 1981 film Raiders of the Lost Ark, featuring Harrison Ford reprising his role as the title character and the second film to use THX technology after Return of the Jedi. After arriving in India, Indiana Jones is asked by desperate villagers to find a mystical stone and rescue their children from a Thuggee cult practicing child slavery, black magic and ritualistic human sacrifice in honor of the goddess Kali.


New Upsize Version of Ever Popular X-Barbie Circle Black !
I absolutely looove these! They are definitely the best looking and most comfortable circle lenses I've ever had. I always wear them when I go out and I get lots of compliments on my eyes. People do usually notice that you are wearing contacts because these are so big and have an unnatural colour but I personally don't mind that at all. If you want a natural look then these are not for you though. I can wear these lenses for 10 hours straight without any discomfort.


A Washington conference of Christian and Jewish Zionists yesterday heard attacks on the U.S. "road map" for peace in the Middle East as a breach of a 4,000-year-old covenant between God and Israel.
Called the "Interfaith Zionist Leadership Summit," the conference attracted to the Omni Shoreham Hotel about 1,000 participants, who debated how evangelical Christians could best unite with Jews to support Israel.
A three-page statement was adopted, to be delivered to President Bush this week, demanding Palestinian concessions before Israel is asked to return to its pre-1967 borders, which would turn over the West Bank and Gaza Strip to the Palestinian Authority.
Evangelical Christians, estimated to number about 45 million in America, are a source of support for Israel, though to varying degrees.
Frank Gaffney Jr., president of the Center for Security Policy, said the months before the November 2004 election are ideal for lobbying Mr. Bush on an issue important to his conservative base.
The conference, underwritten by a $100,000 grant from Zionist House, a Boston-based Jewish group, appeared to be closely balanced between Christians and Jews, with a slight Jewish majority. Theological differences were put aside by the speakers, such as Jan Willem van de Hoeven, the Dutch-born founder of the International Christian Embassy in Jerusalem.
The remark alluded to prophecies of the Jews rebuilding their temple on Jerusalem's Temple Mount, replacing the Muslim Dome of the Rock. His words drew one of several standing ovations.
Several speakers talked of how to persuade Mr. Bush to stay firm on his nomination of Daniel Pipes, a scholar on Islam, as one of 15 directors of the U.S. Institute of Peace. The nomination, which has drawn ardent opposition from Islamic groups, must be confirmed by the Senate.
Mr. Pipes, a speaker at the conference, criticized Americans for political naivete.
Moving the U.S. Embassy from Tel Aviv to Jerusalem would prompt that process, he said.
"It's a marker saying Israel won the war in 1948 and Jerusalem has been its capital for 55 years and we might as well come to terms with its existence," Mr. Pipes said.
About three dozen people protested outside the hotel.
"It involves fundamentalist Christians, who tend to be ethnocentric and racist, siding with Jews who practice the same policies in Israel," said David Kirshbaum, representing SUSTAIN (Stop U.S. Tax-funded Aid to Israel Now). A group of ultra-Orthodox Jews, who oppose Israel's existence on theological grounds, stood beside him.


All of Vincent and Leo's hard work has amounted to this major moment in A Way Out, confronting Harvey and getting vengeance.
The whole purpose of Vincent and Leo's escape from prison has led to this point, seeking vengeance on Harvey for what he's done. In the fourth chapter of A Way Out, Vengeance, Vincent and Leo will need to make their way to Mexico, assault a compound, take down Harvey, and then escape on motorbikes in the jungle.
Before you can exact your revenge, Chapter 4: Vengeance starts with an important decision: parachute down to the island or land the plane safely.
Choosing Vincent's way means that Leo and Vincent will need to jump out of the plane and parachute down to the landing zone. After getting the plane in order, "Free Fall" is your next stop.
If you decide that jumping out of a plane is madness, Leo's idea involves landing the plane and walking through the jungle. Once you land, Vincent and Leo will need to use machetes to clear vines in order to reach the next area. After leaving on the plane and making the short walk with machetes, the next stop is "The Trek".
You can take your time with these and even explore the hangar. At the rear of the hangar is an arcade machine, playing together unlocks the Achievement/Trophy, Break From Reality.
When you're ready, you can collect Emily's logbook off of the folding table near the arcade machine. Take the logbook to Emily, you can find her sitting in the pilot's seat of the plane. Turn off the fuel by following the fuel lines back to the tanks. With the fuel flow severed, detach the fuel line from the base of the plane. Finally, head to the front of the hangar and push the doors open and then get in the plane so you can take-off.
Free Fall is a fun moment in A Way Out where you must dive down to the landing zone. Halfway down, Leo runs into some trouble with his parachute, at which point Vincent will need to zip down and help him. Angle for the landing zone and enjoy the glide down to land.
With your feet firmly back on ground, you will need to make your way through the jungle of Mexico to Harvey's compound. This is a short moment before everything kicks off, so take this time to catch your breath and prepare for the coming storm.
How you progress in the first section is up to you, either take out the guards with your weapons or sneak up and knock them out for a silent approach. If you choose to "go loud", some reinforcements will arrive, but regardless, you'll be "going loud" shortly.
After the little fire fight, you'll enter a new area that is being protected by an active sniper. Use the wall to avoid getting shot and use the following shoulder-high walls to protect yourself from the sniper. Enter the building and use the crawl space to reach the next area. Only one person will be able to use the ladder, the other will fall to the ground.
Whoever goes up the ladder first will take out the sniper and then provide covering fire for the person who tried to go up the ladder second. Take down the bodyguards as they come pouring into the little arenas and use the shoulder-high walls as cover. Continue this pattern until all the hostiles are gone, jump down into the little garage and work together to open the roller door.
Follow the path along the cliff and push the dumpster out of the way. This next area is full of hostiles who do not know you're coming, so you can take them down silently or begin shooting. Work your way through the hostiles to the mansion's gate. Take out the enemies and then climb the nearby steps to find a vehicle. Push the vehicle down the steps to open another way into the mansion.
After jumping through the hole in the fence, you'll come across a stash of weapons before entering the mansion. You can choose to swap your weapon out here, but really, the long-range weapons are an excellent choice as the combat doesn't switch to close-quarters.
Shoot the lock off the gate to gain access to the mansion. As you enter the mansion, two hostiles will block a door and begin shooting through the holes. Work your way around the room using the boxes and pillars as protection. Run up the other set of stairs to find a propane tank nearby. Throw the propane canister at the door and shoot it to cause an explosion. Work together to move the beam and continue the fight outside.
With all the enemies dead, head inside to a grand foyer and enjoy a Scarface-like scene where Vincent and Leo must take down hostiles while avoiding Harvey's grenade-launcher attacks. With all the enemies down, run up the stairs to reach Harvey.
The last section of the mansion ends with you deciding who deals with Harvey: Leo or Vincent.
Choosing Leo's way lets Vincent pick up the gun while Leo approaches Harvey and yells at him for betraying Leo.
Choosing Vincent's way sees Leo pick up the golden pistol while Vincent walks up to Harvey.
Harvey will open the safe and give the diamond to whoever chose to confront him, he will then take that person hostage. Whoever is held hostage will need to struggle over to the glass case where they can smash Harvey into it. The player with the golden gun must shoot Harvey and then both characters can unleash into Harvey with their weapons – they have unlimited ammo, so have fun! With Harvey dead, all you need to do is escape.
The Jungle Road section of A Way Out's Chapter 4 is extremely fast-paced with a whole lot of gunfire. Try not to smash into one another, as that will slow you down and potentially knock you off-course. Take whatever route through the forest you like, just try to avoid the jeeps full of mercenaries. When they start using grenades, just keep the gas full throttle, there's no way to avoid damage.
Eventually, someone will get knocked off their bike, at which point they will need to get on the back of the other bike and start shooting. You'll continue in this fashion, one person driving while the other destroys jeeps, until you reach the runway. Drive alongside the plane to let the person on the back in, and then the player who is driving will need to catch back up and jump into the moving vehicle.
Now that Harvey is dead, Vincent and Leo can rejoice. But there's more to come in the next part, Chapter 5: Conflict.


text:
Q: Get element from string between 2 symbols I'm having string like this:
Adress 22 - 99, world
I need to get value 99 from this string, witch is between - and , symbols. Is that possible?

A: "Adress 22 - 99, world"[/(?<=-[\s*])(.*)(?=,)/]
# 99

There can be for sure a better regex, but this fits the example given. Gets everything between a "-" followed by 0 or more whitespaces and ",".

A: Try using gsub:
str = "Jura Alunana 11 - 126, Riga"
value = str.gsub(/.*- (\d+),.*/, '\1') # \1 means the digits inside the first ( ) pair
#  => "126"

A: str = "Jura Alunana 11 - 126, Riga"

r = /.*-\D*\K\d+(?=.*,)/

str[r]
  #=> "126"

str1 = "Jura Alunana 11 - cat 126 ahem 33 , Riga"
str1[r]
  #=> "126"

We can make the regular expression self-documenting by defining it in free-spacing mode:
r = /
    .*       # match 0+ characters
    -\D*     # match a hyphen followed by 0+ non-digits
    \K       # forget everything matched so far
    \d+      # match 1+ digits...
    (?=.*,)  # ...followed by 0+ characters then a comma (positive lookahead)
    /x       # free-spacing regex definition mode

Alternatively,
r = /
    .*-\D* # match 0+ characters, a hyphen then 0+ non-digits
    (\d+)  # match 1+ digits in capture group 1
    .*,    # match 0+ characters then a comma
    /x     # free-spacing regex definition mode

str[r, 1]
  #=> "126"
str1[r, 1]
  #=> "126"

A: Here is my take.  I find it a bit easier to read than some of the other solutions.
str = "Jura Alunana 11 - 126, Riga"
str.match(/-\s(\d+),/)
puts $1

# => 126


Ah well, vote incentive hasn't changed since wednesday, but if you want to vote, be my guest.
Has Colbey actually taken Scot's advice to heart? Is she trying to explain it to Prim? Does she actually believe Fortune Cookie wasn't just acting or hallucinating the whole time? Maybe!
One more page left in Arc 12! How is this going to swing back around to the REAL and violent story? You'll see!
And I had my dates wrong in March, I'm only going to be updating through the 8th, so just two more pages before I need to take major time off for studying. There's going to be 3 weeks of iffy updates, so I would appreciate any art you wonderful readers might send in. If I don't get any (well, I have at least one already from the wonderful mvmarcz), no biggie, it's short notice.
See you Wednesday with the last page of The Hardest Virtue!


Discussion in 'Naruto Translations' started by Chieri Blossom, Oct 1, 2006.
I love this little oeaki pic to pieces .
Could someone please translate what he is screaming ?
I really wish i could translate.
Aquila L do you know?
Aww, that's so cuuuuute! ...And I'm done.
Damn, I wish I knew what he was screaming...but he really looks pissed off, so it can't be good.
How cute ! I think I can imagine why he's screaming. He probably just discovered the Deidara is a girl FC.
XD, that might be it.
o_o What if /she/ found the Deidara is really a man FC?
Deidara is a guy, period . I don't know if you are a guy or not but most guys I have come across weren't all that pleased if others called them girls.
And yeah, the only thing that could cause an reaction like this is either that FC or the Deidara x Tobi one XD !
It's really hard to read the part with the red background (because of the scribble-ness), but I can definitely read the bit on the other side of him.
Sorry I couldn't be of more help, but I just can't read it for all the scribblybits.
Well, I'm far too lazy and unskilled to translate what is being said, but it looks like it says: "やってられるかー ("yatterareruka-").
I already figured out that much myself, I need someone who can cell me the meaning of it. It's actually not much to translate ;__;.
Thanks Gentz ! But I wonder what Deidara wants to get done XD ?
Good question. However, the picture doesn't give us any answer.
I like the picture.I don't know what Dei-chan is saying though.Maybe "UNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!!!!!!!!!!!!!!!!!!''I have no idea.Or maybe just screaming at Tobi.
The rareru passive form can also imply that something is being done to the speaker... So maybe he's saying, what's being done to me?
Or maybe, "what happened to me?!" Or something along those lines...I mean, I wouldn't be too pleased if I suddenly went from "normal" adult to cute-as-a-button chibi either.
The irareru here is potential, not passive, so if you translate it very literally (and clumsily) it's "Am I capable of being in the process of doing this?". But yatte-rareruka is quite a common colloquial phrase and has a similar feeling to, say, "知るかよ" ('how the hell would I know?'). So what Dei is saying is kind of like "Jesus, I can't be arsed with this!" (in British English). IMO.
*cough he endcough* I'm sure everyone wants the fillers to end.
I think this picture was taken out of context from some website that must have been updating or something of that sort.
On a side note, I love the bright colors and shading.


HumiSeal, www.humiseal.com the leading conformal coatings solutions provider for the protection of printed circuit boards and electronic assemblies, has signed an agreement with South African based distributor PEM Technologies to distribute HumiSeal's award winning range of conformal coatings throughout Southern Africa.
Based in Gauteng, PEM Technologies has established a good reputation within the South African electronics industry which will help to further strengthen HumiSeal's presence in the region and develop its coatings business. PEM Technologies will distribute HumiSeal's entire range of coating solutions and the agreement will enable it to develop new customers as well as increase its involvement with a number of existing customers.


text:
Does Dallas have a prettier playoff picture than Avalanche?
Battle of California's Earl Sleek linked over to an interesting site today called PlayoffStatus.com, which determines percentages for playoff probability. According to the site: "All future un-played games are assumed won/lost with a probability based upon relative team strengths."
Digging around, it has some cool features like strength of regular season schedule and a postseason probability chart that nearly had us on the first flight to Vegas, cash in hand. But the one that got us was the probability chart playoff seeding for the Eastern and Western Conferences. Like the fact that there's a greater than 99 percent chance that the Atlanta Thrashers and New York Islanders will miss the playoffs, and a-less-than one percent chance the Boston Bruins will.
How about this one from the West: Percentage-wise, the Colorado Avalanche (10 percent) have better odds than the Dallas Stars (9 percent) in snagging the eighth seed; but according to PlayoffStatus.com, the Stars "control their own destiny" for that seed while the Avs do not.
Both teams are looking rosier than the Nashville Predators, however. According to the site, the Predators actually have a greater chance of missing the postseason (91 percent) than either the St. Louis Blues (89 percent) or the Los Angeles Kings (87 percent). Seriously?
Of course, numbers are just numbers. They don't take injuries or other unpredictable intangibles into account, like making a sex joke to the media and/or skipping out on the all-star game. But the site is something for the stat heads and math geeks to chew on. As for Islanders fans, we're sure they're much more interested in another set of odds and probabilities later this year.