text:
Benjamin "Ben" Schadow (* 20. Juli 1976 in Lingen (Ems)) ist ein deutscher Musiker, Songwriter und Musikproduzent aus Hamburg. Er ist durch seine Zusammenarbeit mit Bands und Künstlern wie Bernd Begemann & Die Befreiung, Kettcar u. a. sowie als Solokünstler bekannt.

Leben
Aufgewachsen in Glückstadt lernte Schadow schon früh Cello, Gitarre und Bass. Erste Erfolge feierte er mit seiner Band dernameistsolangdenkannsichehkeinschweinmerken, mit der er unter anderem im Jahr 1997 das Finale des John Lennon Talent Awards erreichte, das Motorsheep (mit Birgit Fischer) gewann. Im selben Jahr gründete er die Indie-pop/Mod-Band Les Garçons, mit der er zwei Alben und neben verschiedenen Sampler-Beiträgen, einige Singles veröffentlichte.

1999 war er Stipendiat der Celler Schule.

Außerdem wurde Schadow etwa von 1998 bis 2001 als Bassist bei The Convent eingesetzt und war 2003 zusammen mit deren Sänger Carlo van Putten an dem Projekt: The Electric Family von Tom "The Perc" Redecker beteiligt. Auf der Platte "Ice Cream Phoenix" wirkten neben ihnen weitere bekannte Musiker mit.
Bernd Begemann wurde bei einem Konzert der Les Garçons auf ihn aufmerksam und nach deren Auflösung im Jahr 2003 wurde Schadow als Bassist Gründungsmitglied der neuen Formation Bernd Begemann und die Befreiung. Zudem produzierte er die beiden jüngsten Alben der Band. Gemeinsam mit Begemann und dem Filmemacher Kay Otto betreibt er den Filmpodcast Flimmerfreunde.

Am 1. Oktober 2010 nahm er als Bandmitglied von Begemann und Dirk Darmstaedter mit dem Freddy-Quinn-Klassiker So geht das jede Nacht am Bundesvision Song Contest 2010 in Berlin für Niedersachsen teil. Sie belegten dort allerdings nur den letzten Platz. Für den Kinofilm Schenk mir dein Herz (unter anderem mit Paul Kuhn, Peter Lohmeyer und Mina Tander) komponierte er im Jahr 2010 Teile der Filmmusik. Mit Carsten Meyer schrieb er die Musik für das Stück Quijote. Trip zwischen Welten, das am Hamburger Thalia Theater aufgeführt wurde und wirkte auch als Schauspieler mit.

Im Jahr 2012 erschien sein erstes Soloalbum unter dem Titel Liebe zur Zeit der Automaten auf dem Osnabrücker Indie-Label Timezone. Zumeist gibt er Konzerte mit der Ben Schadow Band, die aus wechselnden Mitgliedern, wie zum Beispiel Klee-Bassist Stefan Götzer (Pele Caster), David Rieken (u. a. Liveband von Spaceman Spiff) oder Tobias Noormann von Mikroboy besteht.

Neben seiner dauernden Tätigkeit als Bassist und Produzent von Bernd Begemann spielt Schadow in der Hamburger Soul-Rock Band Rhonda Gitarre und stellte 2014 sein zweites Solo-Album Dr.Eskapismus vor, an dem unter anderem auch Ekki Maas von der Kölner Band Erdmöbel mitwirkte.

Diskografie

Alben

 Red Light Melancholy (2001) The Convent, (als Ben)
 Von uns zu dir (2001) Les Garçons
 Dabei auf den billigen Plätzen (2003) Les Garçons
 Unsere Liebe ist ein Aufstand (2004) Bernd Begemann & Die Befreiung
 Von Spatzen und Tauben, Dächern und Händen (2005) Kettcar
 Keine Lieder über Liebe (2005) Hansen Band
 Das beige Album (2005) Olli Schulz & Der Hund Marie
 Ich werde sie finden (2006) Bernd Begemann
 Beste Welt (2007) Finkenauer
 Glanz (2008) Bernd Begemann & Die Befreiung
 Ich erkläre diese Krise für beendet (2009) Bernd Begemann & Die Befreiung
 So geht das jede Nacht (2010) Bernd Begemann & Dirk Darmstaedter
 Wilde Brombeeren (2011) Bernd Begemann und Die Befreiung
 Wasimmer (2011) Pele Caster
 Not Now (2012) Clara Bow
 Appearances (2012) Me and Cassity
 Oh (2012) Pretty Mery K
 Liebe zur Zeit der Automaten (2012) Ben Schadow
 Deine goldenen Zeiten (2013) Achim Erz
 Raw Love (2014) Rhonda
 Before We Leave (26. September 2014) Dirk Darmstaedter
 Dr. Eskapismus (14. November 2014) Ben Schadow
 Eine kurze Liste mit Forderungen (18. Dezember 2015) Bernd Begemann & Die Befreiung
 Beautiful Criminals (4. April 2016) Dirk Darmstaedter

Singles
 Parklied (2000) Les Garçons
 Freundin auf Latein (2002) Les Garçons
 Ich habe nichts erreicht außer dir (2004) Bernd Begemann & Die Befreiung
 Die neuen Mädchen sind da (2009), nur digital, Bernd Begemann & Die Befreiung
 So geht das jede Nacht (2010), nur digital, Bernd Begemann & Dirk Darmstaedter
 Ich fall immer auf die selben Dinge rein (2012), nur digital, Ben Schadow

DVDs
 Die Welt wird uns hören (2005) Bernd Begemann & die Befreiung

Samplerbeiträge

 2003: The Electric Family: Ice Cream Phoenix (Sireena Records); Musikprojekt von Tom "The Perc" Redecker.
 2003: Gerade verliebt auf Immergutrocken-Sampler (Grand Hotel van Cleef) (mit Les Garçons)
 2004: Gerade verliebt auf Müssen Alle mit 2 (Tapete Records) (mit Les Garçons)
 2011: Ich bin ein Snob / Ich bin nicht so wie jeder Andere auch auf Oh, dieser Sound – Stars spielen Superpunk dem Tribut-Album für die Band Superpunk (mit Bernd Begemann & Die Befreiung)

Weblinks

 Offizielle Website von Ben Schadow
 Les Garçons: Von uns zu Dir – Rezension von Jens Friebe in der Intro (Zeitschrift)
 Ben Schadow auf Discogs
 Offizieller Youtube-Kanal
 Website der Flimmerfreunde

Einzelnachweise

Musiker (Hamburg)
Songwriter
Musikproduzent
Deutscher
Geboren 1976
Mann


Jackson himself has long been a proponent of fixed costs. In addition to the well-known recommendations in his 2009 Review of Civil Litigation Costs, he has more recently given lectures setting out arguments for extending fixed recoverable costs and published a detailed matrix of costs figures to promote further debate.
Jackson's short text book "The Reform of Civil Litigation" was published only several weeks ago (September 2016) and further emphasises his views on fixed costs. He suggests in it that the first step is to determine what, for the selected value bands of claim, would be proportionate costs. His second step is to devise rules to adjust those costs figures to reflect complexity, conduct and wider factors (thus following the structure of the current rule on proportionality of costs at CPR 44.3(5)).
This new Jackson review seeks early submissions and in fact the period for written responses closes on 16 January. Given the Christmas and New Year break, this is going to come around very quickly, so we'd definitely recommend factoring in ASAP adequate time and resources for responding.
Moderately amusing and slightly risqué? Yes. But plausible? Of course not. Time travel is very much science fiction but fixed recoverable costs in civil litigation are the future and are perhaps barely two and a half years away.
This entry was posted in Jackson reforms and tagged Fixed Costs, LJ Jackson. Bookmark the permalink.


Coolness has never been so comfortable with those Aada Joggers from ArmedAngels. Between you and me, joggers are not only worn to pick up your groceries on late weekends days, they are just a style element on their own.
Mix and match them with Lene V stripes for an ultimate street look.


Investment guru Jim Rogers has said he's sold off his shares in Indian companies as the Narendra Modi government "has been all about talk and no action" and the Indian markets "lacks any new drivers to propel it." Rogers said in an interview to Mint, in Singapore, that he'd waited for nearly a year-and-a-half since the Modi government came to power last May for reforms--such as the Indian rupee becoming fully convertible--but was now convinced that these weren't going to happen in the immediate future.
"I, as an investor, have decided to move on to other places, partly also because stock markets are not going to be particularly good for the next year or two, " said Rogers, "And if I am going to be at some place, I would rather be at a market that is either depressed, or where dramatic changes are taking place."
Roger's comments come even as India has taken key steps to attract foreign investments. Arun Jaitley accepted a recommendation by an independent panel to absolve foreign institutional investors from paying a Minimum Alternate Tax. To calm fears on the volatility in the Indian stock markets, RBI Governor General Raghuram Rajan, whom Rogers in the interview referred to as the 'best in the world,' recently said that India wouldn't shy from selling off some of its dollar reserves to stabilize world markets.
However Roger's pessimism isn't unfounded. Weak GDP growth and muted manufacturing output continue to plague India's economic reforms inspite of inflation being at record lows.
" India has very high debt-to-GDP (gross domestic product) ratio—it is higher than many countries," said Rogers, "Studies have shown that when countries have a high debt-to-GDP ratio, it is difficult to grow at a reasonable rate. I don't really see much going for India right now except Modi, who is not doing anything, when he should be or could be doing a lot."
Commodities trading guru and hedge fund manager, Jim Rogers--the chairman of Rogers Holdings Ltd-- added that he wasn't a great fan of tech companies as he didn't understand them. "Now, this bubble is all over the world–China, India… Now there are hundreds of entrepreneurs in their garages who think they are worth millions and billions of dollars. They are worth that right now, but will they be worth so much when the next turmoil comes? "


text:
Q: Setting ROI with mouse from a rectangle on a video I have video, when the program is run the video's first frame is taken as an image and the user is allowed to draw a rectangle on the image, after the rectangle is drawn, the user must right click on the image to confirm the rectangle. When the mouse the right-clicked the image disappears and the video starts to play with the drawn rectangle on it.
I am able to draw the rectangle perfectly but I can't set that rectangle as ROI.
What I want to do is to set that rectangle as Region of Interest (ROI) to do some image processing on that ROI. I am unable to set the rectangle which I draw as ROI.
I am using OpenCV with Visual Studio 2010. Later on I will try to integrate this program in QT creator.
Any help would be appreciated.
Thanks in advance.
My full code is as follows:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include<opencv2\opencv.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv/highgui.h>
#include <opencv/cxcore.h>
#include <opencv\cvaux.h>

using namespace cv;
using namespace std;
void my_mouse_callback( int event, int x, int y, int flags, void* param );
bool destroy=false;
CvRect box;
IplImage* image;
IplImage* frame2;
bool drawing_box = false;

void draw_box( IplImage* img, CvRect rect)
{
cvRectangle( img, cvPoint(box.x, box.y), cvPoint(box.x+box.width,box.y+box.height),
            cvScalar(0,0,255) ,2);

CvRect rect2=cvRect(box.x,box.y,box.width,box.height);
//cvSetImageROI(image, rect2);   //here I wanted to set the drawn rect as ROI
}

// Implement mouse callback
void my_mouse_callback( int event, int x, int y, int flags, void* param ){
IplImage* image = (IplImage*) param;

switch( event ){
    case CV_EVENT_MOUSEMOVE:
        if( drawing_box )
        {
            box.width = x-box.x;
            box.height = y-box.y;
        }
        break;

    case CV_EVENT_LBUTTONDOWN:
        drawing_box = true;
        box = cvRect( x, y, 0, 0 );
        break;

    case CV_EVENT_LBUTTONUP:
        drawing_box = false;
        if( box.width < 0 )
        {
            box.x += box.width;
            box.width *= -1;
        }
        if( box.height < 0 )
        {
            box.y += box.height;
            box.height *= -1;
        }
        draw_box( image, box);
        break;
    case CV_EVENT_RBUTTONUP:
        destroy=true;
   }
}

int main()
{
    const char* name = "Box Example";
    cvNamedWindow( name );

   box = cvRect(0,0,1,1);

   CvCapture* capture = cvCreateFileCapture( "C:\\video.mp4" );
   image = cvQueryFrame( capture );

  IplImage* temp = cvCloneImage( image );
 // Set up the callback
  cvSetMouseCallback( name, my_mouse_callback, (void*) image);

//IplImage *img2 = cvCreateImage(cvGetSize(temp),temp->depth,temp->nChannels);

//cvNot(temp,temp);
   /* copy subimage */
   //cvCopy(temp, temp, NULL);

  // Main loop
   while( 1 )
{
    if(destroy) {cvDestroyWindow(name); break;}
    cvCopyImage( image, temp );
    if( drawing_box )
        draw_box( temp, box );
    cvMoveWindow(name, 200, 100);
    cvShowImage( name, temp );

    if( cvWaitKey( 15 )==27 )
        break;
 }

 //cvReleaseImage( &image );
  cvReleaseImage( &temp );
 cvDestroyWindow( name );

 cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
  cvMoveWindow("Example2", 150, 150);

  while(1)
    {
frame2 = cvQueryFrame( capture );
draw_box(frame2,box);
    if( !frame2 ) break;
        cvShowImage( "Example2", frame2 );
        char c = cvWaitKey(33);
    if( c == 27 ) break;
   }
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );
   return 0;
}

A: You were almost there. One problem though: case CV_EVENT_RBUTTONUP needs to break, and I would also add a break on default case.
The following code sets the ROI, performs a simple grayscale processing on it and then copies the processed ROI back to the original image.
For testing purposes I changed your code to use my camera instead of loading a file.
Output:

Code:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>

#include <cv.h>
#include <highgui.h>

using namespace cv;
using namespace std;

void my_mouse_callback( int event, int x, int y, int flags, void* param );

bool destroy=false;
CvRect box;
bool drawing_box = false;

void draw_box(IplImage* img, CvRect rect)
{
  cvRectangle(img, cvPoint(box.x, box.y), cvPoint(box.x+box.width,box.y+box.height),
              cvScalar(0,0,255) ,2);

  CvRect rect2=cvRect(box.x,box.y,box.width,box.height);
  //cvSetImageROI(image, rect2);   //here I wanted to set the drawn rect as ROI
}

// Implement mouse callback
void my_mouse_callback( int event, int x, int y, int flags, void* param )
{
  IplImage* frame = (IplImage*) param;

  switch( event )
  {
      case CV_EVENT_MOUSEMOVE:
      {
          if( drawing_box )
          {
              box.width = x-box.x;
              box.height = y-box.y;
          }
      }
      break;

      case CV_EVENT_LBUTTONDOWN:
      {
          drawing_box = true;
          box = cvRect( x, y, 0, 0 );
      }
      break;

      case CV_EVENT_LBUTTONUP:
      {
          drawing_box = false;
          if( box.width < 0 )
          {
              box.x += box.width;
              box.width *= -1;
          }

          if( box.height < 0 )
          {
              box.y += box.height;
              box.height *= -1;
          }

          draw_box(frame, box);
      }
      break;

      case CV_EVENT_RBUTTONUP:
      {
          destroy=true;
      }
      break;

      default:
      break;
   }
}

int main()
{
  const char* name = "Box Example";
  cvNamedWindow( name );
  box = cvRect(0,0,1,1);

  CvCapture* capture = cvCaptureFromCAM(0);
  if (!capture)
  {
    printf("!!! Failed cvCaptureFromCAM\n");
    return 1;
  }

  IplImage* image = cvQueryFrame(capture);
  if (!image)
  {
    printf("!!! Failed cvQueryFrame #1\n");
    return 2;
  }

  IplImage* temp = cvCloneImage(image);

  // Set up the callback
  cvSetMouseCallback(name, my_mouse_callback, (void*) image);

  // Main loop
  while( 1 )
  {
    if (destroy)
    {
      cvDestroyWindow(name); break;
    }
    cvCopyImage(image, temp);

    if (drawing_box)
        draw_box(temp, box);

    cvMoveWindow(name, 200, 100);
    cvShowImage(name, temp);

    if (cvWaitKey(15) == 27)
        break;
  }

  cvReleaseImage(&temp);
  cvDestroyWindow(name);

  cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE);
  cvMoveWindow("Example2", 150, 150);

  // Retrieve a single frame from the device  and set the ROI
  IplImage* vid_frame = cvQueryFrame(capture);
  if (!vid_frame)
  {
    printf("!!! Failed cvQueryFrame #2\n");
    return 2;
  }

  cvSetImageROI(vid_frame, box);

  // Allocate space for a single-channel ROI (to store grayscale frames)
  IplImage* gray_roi = cvCreateImage(cvSize(box.width, box.height), IPL_DEPTH_8U, 1);
  IplImage* rgb_roi = cvCreateImage(cvSize(box.width, box.height), IPL_DEPTH_8U, 3);

  while(1)
  {
    if (!vid_frame)
    {
        vid_frame = cvQueryFrame(capture);
        if (!vid_frame)
        {
            printf("!!! Failed cvQueryFrame #3\n");
            break;
        }
    }

    draw_box(vid_frame,  box);

    // Set ROI and perform some processing (in this case, converting the ROI to grayscale)
    cvSetImageROI(vid_frame, box);
    cvCvtColor(vid_frame, gray_roi, CV_BGR2GRAY);
        //cvShowImage("Example2", gray_roi);

    /* At this point gray_roi has the size of thei ROI and contains the processed image.
     * For fun, we copy the processed image back to the original image and display it on the screen!
     */
    cvCvtColor(gray_roi, rgb_roi, CV_GRAY2BGR);

    // As the ROI is still set, cvCopy is affected by it
    cvCopy(rgb_roi, vid_frame, NULL);

    // Now reset the ROI so cvShowImage displays the full image
    cvResetImageROI(vid_frame);
    cvShowImage("Example2", vid_frame);

    char c = cvWaitKey(33);
    if( c == 27 ) break;

    vid_frame = NULL;
  }
  cvSaveImage("processed.jpg", vid_frame);

  cvReleaseImage(&gray_roi);
  cvReleaseImage(&rgb_roi);
  cvReleaseCapture( &capture );
  cvDestroyWindow( "Example2" );

  return 0;
}

redpajama_set_name: RedPajamaStackExchange


text:
Bird Flu scare ends, Sukhna Lake to be opened on 19 Jan 2015
Sukhna Lake wears a deserted look due to imposed ban amid Bird Flu
Chandigarh administration has finally decided to open the Sukhna Lake for general public on 19th Jan, 2015. The lake at Chandigarh was closed on 18th Dec 2014 after one of the dead geese tested positive for bird flu. The decision of opening the lake comes right after 1 month. Section 144 of the Indian Police Code was effective around the lake premises during this time and no one was allowed to enter the Sukhna Lake. Police personal were deployed at all entry points including the back side and the dam area at the regulator end. The forest area and the bird sanctuary at the Sukhna Dam regulator end were also closed.
A few days back the Chandigarh Administration had said the decision of opening the Lake would be taken after all concerned departments and the central government give a green signal. The news of opening of Sukhna Lake has brought cheers to the residents of Chandigarh. CITCO has earlier requested the administration to open the lake after the water samples taken from Sukhna Lake had tested negative for avian flu.
Sukhna lake has been properly sanitized
Entire Sukhna Lake has been sanitised with lime powder and chemicals
It may be noted that the whole lake area has been sanitized properly as per the rules mentioned by WHO (World Health Organization). The stairs near the water, rocks on the shore, walking path etc. has been disinfected by spraying chemicals along with lime powder. This has been done to ensure that there is no infection of any sort. Even the road outside lake and the parking area has been sanitized.
The restaurant area and the shops have also been sanitized in order to kill the traces of bird flu virus (if any).
No Boating Allowed
Although residents of Chandigarh as well as tourists will be able to visit Sukhna Lake but the ban on boating and other activities has not been lifted yet. According to the WHO, no one should be allowed to go to the area where geese have been buried for at least 3 months and no construction activity like digging should be carried out on that land for 1 year. Taking precautionary measures the Chandigarh Administration has said that people will not be allowed to do boating at Sukhna Lake till further notice.
TEDx Chandigarh 2020 – The Future. Reimagined.
Flyover at Chandigarh's Tribune Chowk to Soon Become a Reality | Know Details
Chandigarh Class XI Admission: Education Dept Announce Provisional Merit List on Official Website
Going Abroad is Easy | Attend World Education Fair @ The Piccadily Chandigarh on 18th May
Morni Hills area to be set up as Largest Herbal Forest of the World
JW Marriott, Chandigarh is Organizing a South Indian Food Festival "Ammamma Vantalu" at The Café

redpajama_set_name: RedPajamaCommonCrawl


Using "Forgiven" from the Augustine Institute and delving Lenten traditions of the Church, we will discuss and pray together in preparation for the coming of Christ at Easter.
Tues. April 2, 6:30 p.m.
Wed. April 3, 5:30 p.m.
Come enjoy a variety of delicious soups during our Lenten Parish Soup Nights while sharing in conversation with fellow parishioners. Hosted by the RE families. Bring a pot of soup to share. Followed by an Interactive Stations of the Cross in the gym.
Fridays, April 5 and April 12, 7:00 p.m.
Come participate in traditional Stations of the Cross each Friday during Lent.
Sat. April 6, 10:30 a.m.
Join us as we deep clean the church to be ready for Easter. Sponsored by the Women of Risen Christ.
Pray the Rosary & Chaplet at the Risen Christ statue as we pray for an end of abortion, worldwide persecuted Christians & the healing of the Church. Led by Fr. Scott or Fr. Eric. Sponsored by the Knights of Columbus.
Mon. April 8, 6:30 p.m.
Read about this on the High School Move Event Tab on this page.
Wed. April 10, 6:30 p.m.
Please attend the next Respect Life meeting to help plan the May diaper collection.
Fri. April 12, 9:30 a.m.
Tues. April 16, 6:30 p.m.
Come prepare for Easter. Fr. Scott, Fr. Eric, and several visiting priests will be available to hear Confession. These opportunities are in addition to our normal Confession times.
Fri. April 12, 6:15 p.m.
If you are a volunteer who visits our homebound parishioners, please attend this important meeting to review the program.
Sat. April 13, 9:00 a.m.
Sat. April 13, 10:00 a.m.
All parishioners are invited to participate in this important ministry that serves the needy in our parish boundaries. Meet in the office conference room.
Palm Sunday Procession at the 11:00 a.m. Mass only. Gather in the Parish Hall before Mass begins.
Because all diocesan priests will be attending the Chrism Mass at the Basilica, there will be no 12:15 p.m. Mass on April 16. There will be a Communion Service instead.
Thur. April 18, 7:00 p.m.
Exposition of the Blessed Sacrament 8:30 p.m. – 10:00 p.m.
Fri. April 19, 3:00 p.m.
Liturgy of the Word, Adoration of the Holy Cross, and Holy Communion. Special collection for the Holy Land.
Fri. April 19, 7:00 p.m.
Come listen to the choir and friends who will perform a moving musical version of the Passion of Jesus.
Sat. April 20, 10:30 a.m.
Bring your Easter meal to the church for a special blessing.
Sat. April 20, 8:30 p.m.
No Confessions nor daytime Masses other than the Easter Vigil.
The Nursery and Book Nook will be closed Easter weekend.
The office is closed for Easter Monday. There is only one Mass at 9:00 a.m.
Thur. April 25, 4:00 – 6:00 p.m.
Several priests will be available to hear Confessions for RE students and their families.
Thur. April 25, 3:30 – 6:30 p.m.
Tis the season of sacraments! The Book Nook has beautiful and affordable cards and gifts especially for First Confession, First Holy Communion and Confirmation.
Young children are invited to participate in an Easter egg hunt following the 9 a.m. Mass. Meet in the parish hall.
Sun. April 28, 3:00 p.m.
Join us for a Holy Hour and recitation of the Divine Mercy Chaplet. Priests will be available to hear Confession.
Sunday, August 18, from 12 – 4 p.m.
This year our festival will be BIGGER and BETTER!
We'll have twice as many carnival games, including an inflatable obstacle course!


Description :We are Gujarat based soft drink concentrate manufacturer.
We require good business partner throughout India.
Dynamic C&F agent wanted at Bangalore. Capable of investing 15-20 lakhs and independently manage operations 24*7 action.


text:
operations@northernbroadcasting.com
KGHL Radio
Northern News Network
Shadow Of The Rockies
Northern Sports Network
Listen Live 9:06am to 9:58am
Northern Ag Network
Voices of Montana Podcasts
September 10, 2019 News Headlines, _Default
Billings Logan International Airport Manager Kevin Pholen Talks About The Future After Expansion
In less than two weeks the expansion of Billings Logan International Airport will begin. Airport Manager Kevin Pholen talks about its future after the expansion.
https://northernbroadcasting.com/wp-content/uploads/2019/09/Untitled-17-3.mp3
There are 0 comment on this post.
Montana News Headlines
Representative Greg Gianforte On Voices Of Montana Was Asked About Intellectual Property Progress In U.S.-China Phase 1 Deal
Representative Greg Gianforte was on Voices of Montana today. He was asked if there'll b enough teeth in the intellectual property side of the 1st phase of the U.S.-China deal announced this week or does that still have to be worked on. "To listen to the full Voices of Montana …
2020 March For Life 2020 Montana Will Take Place In Helena At The State Capitol From 10 To 12 Noon
Saturday in Helena the March For Life 2020 will run from 10 to noon at the Montana State Capitol. Director Of Pro-Life Helena Sharon Nathan.
Better Business Bureau's Montana State Director On $17,000 To High Schoolers In The Area
The Better Business Bureau Northwest and Pacific is giving out $17,000 to high schoolers in our area. Montana State Director Hannah Stiff.
Governor Steve Bullock Grateful As He Leaves The Job As Governor In A Little Over 11 Months
This Legislative Week in Helena gave many the chance to make connections with new people and some to think about the past. One of those people was Montana Governor Steve Bullock who will leave his job in a little over 11 months.
Legislative Week Gets Hearing On Annual Legislative Sessions Instead Of Biannual
As Legislative Week wraps up in Helena the question of whether to have annual legislative sessions has had a hearing. Senator Dee Brown says yes.
On Voices of Montana
Attorney General Tim Fox: Live from the Capitol
(26 minutes) Attorney General Tim Fox visited with you with Voices on location this week in Helena. The Hardin, Montana native and GOP gubernatorial candidate discussed the progress made in combating human trafficking over the last several years. Legislators were in the capital city for a discussion on multiple issues …
Congressman Gianforte: Taxes, Trade, NEPA and More
(14 minutes) Checking in with Voices on Friday was Montana Congressman Greg Gianforte. Listen to the podcast to here more about the news out of Washington, D.C. and more on the discussion that dominated the "Legislative Week" in Helena, i.e., examining Montana's tax structure and biannual legislative sessions.
For Sale: Montana
(43 minutes) The issue of timberland for sale in Montana crosses many divides: private property, government, land management, natural resource development, and what's hard to quantify, the loss of something very precious to us – our Montana way of life. Weyerhaeuser's announced sale of 630-thousand acres, nearly 1,000 square miles, …
John Mues – Democratic Candidate for U.S. Senate
(43 minutes) He's a Navy veteran, 4th generation Montanan, engineer, teacher, and running for U.S. Senate. Listen to the podcast and get to know John Mues and his views on the military, the on-going conflict in the Middle East, the economy, education, and more.
Voices on the Road: LIVE from the 2020 Business Days in Helena
Tom Schultz packed up the Voices of Montana mobile studio, and hit the road for the 2020 edition of Business Days at the Capitol! This premier business networking event of every year brings lawmakers, business executives, and experts to discuss trending business issues and identify solutions for those issues. Listen …
Northern Broadcasting System Inc
Northern Broadcasting System is home to Northern Ag Network, Northern News Network, Northern Sports Network and Billings First Radio Station... The Mighty 790 AM & 94.7 FM KGHL.
600 1st Avenue North, Billings, MT 59101
© Copyright 2020 Northern Broadcasting System, Inc. - All Rights Reserved.


Just wanted to share with you a few designs that I did while fooling around on some down time due to bad weather. I just did my four fingers, and didn't end up wearing any of them. All of them were done with the few polishes that I have on board the ship and a pen. As always, I'm wishing I had brought my brushes out to sea, but alas hindsight is 20/20. The first picture just shows you how pretty the base colors are on their own. Orly Androgynie and Sally Girl neon orange topped with an unknown orange glitter from OPI. If my gel nails hadn't been grown out 2 weeks I would've sported just the plain colors for a bit! Anyway, of the designs, I think the black with gold dripping from the cuticle is my favorite. I'm wishing I had done something a little different with the pumpkins mouth, but it's an easy design that anyone can do! Guess that counts for something right?
Nothing amazing, but kinda fun right? Hope everyone has their candy and costumes ready!


text:
Ntuthuko Macbeth-Mao Sibaya (Durban, 25 de novembro de 1977) é um ex-futebolista sul-africano que atuava como  volante (trinco, em Portugal).

Seleção nacional
Foi convocado regularmente para a Seleção Sul-Africana de Futebol e participou da Copa do Mundo de 2002 e a Copa das Confederações de 2009. Integra a Seleção Sul-Africana de Futebol que disputa a Copa do Mundo FIFA 2010.

Ligações externas
Perfil em Ogol

Futebolistas da África do Sul
Futebolistas do Jomo Cosmos Football Club
Futebolistas do Rosenborg Ballklub
Futebolistas do FC Rubin Kazan
Futebolistas do Swallows Football Club
Jogadores da Seleção Sul-Africana de Futebol
Jogadores da Copa das Nações Africanas de 2002
Jogadores da Copa do Mundo FIFA de 2002
Jogadores da Copa das Nações Africanas de 2004
Futebolistas da Copa das Confederações FIFA de 2009
Jogadores da Copa do Mundo FIFA de 2010

redpajama_set_name: RedPajamaWikipedia


text:
Q: How do I iterate over a list of strings in dxl? I have a list of strings that I want to iterate over in dxl.  They represent module ID's like so:
string limitModules[5] = ['1', '2', '3', '4', '5']

Obviously each of the module ID's are more complicated.  I've constructed a for loop using the syntax of for type1 v1 in type2 v2 do.  However when I run the script I get the following error:

incorrect arguments for (do)

Here's my loop exactly:
string mod_name = ""
for mod_name in limitModules do {
    // test to see if module is found
}

What am I missing?

A: You can create a Skip List to put them in and iterate over it that way (see skip lists in the DOORS DXL Help).
Or if you need to use the String array that way you can use the following:
for(i = 0; i < 5; i++)
{
  mod_name = limitModules[i]
  // other code here
}

This method is fine if you know the size of the array. However skip lists are more efficient for this sort of thing.

A: You can do that. A Skip List is not necessary. I am also using the approach for limiting modules before traversing the links.
But you have to change the declaration:
string limitModulesLevel1[] = {"Some Name", "Even some other"}

for(i=0; i<sizeof(limitModulesLevel1); i++)
{
        ...
}


Thank you Ruth for treating me before Xmas for frozen shoulder.It made a huge difference and I am now pain free and able to wash my hair drive and move about like a normal person.I can't thank you enough.
I received Cupping therapy to treat my illness in my lungs and the sharp pains in my lower back. Just moments from receiving Cupping my chest feels clear and my back is now stress free.I recommend it very much to anyone no matter what your issue may be I am confident Ruth can fix it. A superb cup of tea as well to help settle you after,in her quiet tranquil zone.
Thanks again for your help with my anxiety I have found the Acupuncture highly beneficial and with the added bonus that I can sleep again at night.
I have received therapy from Ruth for almost 2 years now, and can say that her work is very professional and beneficial to me.
I have had treatments for a number of ailments and each one Ruth's treatments have more than exceeded my expectations.
I find Accupuncture in particular extremely beneficial and will continue to use Ruth's services whenever needed In The future.
Ruth is a happy and friendly lady. She always takes her clients health and well being into account and provides a fantastic service.


text:
THE GLADSTONE (formerly Gladstone Hotel)
2 Alexandra Street
This was built as a private boarding house in 1882 by Felix Cullen, a migrant from County Leitrim in Ireland, who had owned land bounded by Mount, Alexandra, Ferdinand and Madeline Streets from 1878. It was let initially for two years to a single tenant, barrister John Leo Watkins. Watkins' own fine house, Llanthony, was then under construction in Everard Street. In 1887 this became the Gladstone Hotel and in that year building contractor James Nutman leased it and perhaps was extending it (the valuation rose). Nutman's own house was adjacent at 4 Alexandra Street. It was still an hotel in 1914 owned by Mrs Hannah Hardy. Eventually The Gladstone ceased to be an hotel and became a shop or tea room with house. In the 1970s it was rescued from decay, restored and converted into units, retaining the character of its earlier life.


Through the MRCA Foundation, Inc., grant money is available for research and educational programming related to the roofing industry. The foundation's goal is to fund projects that will ultimately improve the quality of roofing, and the way roofing professionals conduct business.
The roofing industry provides professional development and a variety of training resources. Owners, managers, and staff clamor for more training. The MRCA Foundation is stepping up to provide support. At the direction of its board, the foundation will fund educational programming that helps you run your business more effectively and manage staff more efficiently.
The foundation will provide funding for industry-related research that will assist roofing professionals in making educated decisions for themselves and their clients.


text:
Just 37% of Brits agree it's easy to identify which allergens a product is free from by its label
January 25th, 2019January 25th, 2019
Allergen food labels are a source of confusion for today's Brits according to latest research from Mintel, as only 37% of consumers agree that it is easy to identify which allergens a product is free from by its label.
While pre-packaged goods are legally required to highlight on-pack the presence of any allergens, almost half (48%) of Brits are unsure whether or not allergen labels are clear, and a further 15% actively disagree that this is the case.
Meanwhile, a UK-wide allergen labelling system on free-from product packaging appeals to 29% of those who have bought/used free-from products, a figure which rises to 39% of those users who avoid foods/ingredients because of an allergy or intolerance.
Estimated to be worth £837 million in 2018, the UK free-from market has seen stellar growth over 2013-18 with sales growing by 133% over this time period.
Emma Clifford, Associate Director of Food and Drink at Mintel, said:
"Potential changes to allergen labelling have received a lot of high profile media coverage recently, with speculation that the Government is planning to introduce new changes following the death of Natasha Ednan-Laperouse, who died after suffering an allergic reaction to a Pret baguette. Given the perceived lack of clarity and the dangerous health implications that ambiguous allergen labelling can have on consumers, there is a real need for companies to make the presence of allergens very obvious on labelling.
"While current regulations require allergens to be listed in bold on the ingredients list, many companies choose to highlight certain free-from credentials on the front of packaging as well. At the moment this is not regulated and as such, there is no uniformity between the labelling used, which can fuel confusion among consumers, particularly given the huge amount of other product information on packaging. There is strong demand for a UK-wide labelling system for allergens which would unify the way in which companies communicate this information on packaging."
Allergy or intolerance is the least likely reason for avoidance
According to Mintel, just under half (48%) of consumers say that they, or someone in their household, avoid at least one food/ingredient, with 16-24-year-olds (61%) the most likely age group to report household avoidance of foods/ingredients. Overall, there has been no significant change in the share of UK consumers that avoid certain foods or ingredients over the past year.
Perhaps surprisingly, only 20% of consumers (or other members of their household) avoid certain ingredients due to an allergy or intolerance, which is on a par with those who do so as part of a healthy lifestyle (22%). Of those who have eaten/drunk free-from foods, 28% do not avoid any foods/ingredients.
Meanwhile, three in ten (30%) Brits avoid certain foods/ingredients for other reasons (eg ethical, vegetarian) rising to 38% of under-25s and 41% of females in this age group.
While dairy is the most commonly avoided food/ingredient (17%), avoidance of dairy has remained unchanged over the last three years. Soya (16%), fish or shellfish (16%), red meat (15%) and lactose (15%) make up the top five foods/ingredients which Brits avoid.
"Allergies or intolerances aren't the main reason that consumers are avoiding certain foods or ingredients. Healthy lifestyles and ethical and environmental concerns are also boosting the appeal of these products, with young consumers in particular most likely to be driven by these factors.
"The fact that as many as a quarter of free-from purchasers do not avoid any foods/ingredients reflects that the pool of free-from users is far wider than just those who fully avoid certain ingredients, either due to allergies/intolerances or for other reasons."
Gluten-free is most commonly bought free-from food
Gluten-free products remain the nation's most popular type of free-from food with 27% of consumers having purchased or eaten these over six months, despite only 12% of consumers reporting that they or somebody else in their household avoid gluten.
Meanwhile, a quarter (23%) of consumers have purchased dairy substitutes, while 19% have bought dairy-free foods.
A quarter (26%) of consumers say free-from diets are good for digestive health, but 44% say that it is hard to know whether they have health benefits for those without an allergy or intolerance. A further 40% worry that following a free-from diet puts you at risk of missing out on certain nutrients.
"The idea that following a free-from diet could potentially put people at risk of missing out on certain nutrients is a concern for a significant number of consumers. Gluten-free products carrying nutrient fortification claims are not widespread in the UK market, suggesting a missed opportunity. While highlighting the absence of allergens is vital, spotlighting nutritional credentials is also important for free-from products, particularly to appeal to those opting for these products as part of a healthy lifestyle. Concludes Emma.
Mintel: Environmental benefits associated with cutting back on meat decline as money-saving association soar
When it comes to cutting back on meat, sustainability is taking a backseat as the cost of living crisis continues to bite. According to new research from Mintel, ...
Mintel: Nearly 5 in 10 Indians are cooking more at home due to inflation, while dining out preferences focus on healthy options
Eating habits among Indians see home-cooked meals becoming more relevant, driven by the rising cost of living, according to new research from Mintel. Half (51%) of consumers* who ...


Positive and Negative Rug were designed as a special collection for Kasthall by Swedish designer Bjorn Dahlstrom. Both rugs have a pattern of hand written text, which describes the "feelings" of the rug - one with a more positive outlook and the other somewhat more negative - hence the names. The rugs are hand tufted in pure linen, with a white base and navy blue text.


Foley Hoag LLP and the Asian American Legal Defense and Education Fund (AALDEF) filed an amicus brief in the U.S. Supreme Court on behalf of 21 Asian American education and youth-serving groups and 44 higher education faculty and officials urging the nation's highest court to uphold the University of Texas at Austin (UT-Austin)'s affirmative action policy.
The 65 groups and individuals signing on to the AALDEF-Foley Hoag brief include the Asian/Asian American Faculty and Staff Association at UT-Austin and the Asian Desi Pacific Islander American Collective at UT-Austin, all opposing Abigail Fisher's lawsuit challenging the University's admissions policy. Fisher's amici have maintained that the University's use of race as a factor in admissions puts Asian Americans at a disadvantage by favoring Hispanic and African Americans, despite statistical evidence indicating Asian Americans have benefited more from the race-conscious admissions policy than Hispanic applicants.
AALDEF and two other prominent Asian American organizations, Asian Americans Advancing Justice (Advancing Justice) and the National Asian Pacific American Bar Association (NAPABA), represented in their three amicus briefs over 160 organizations working to support equal opportunity and affirmative action within the diverse Asian American and Pacific Islander (AAPI) communities, which include Arab, Filipino, Japanese, Chinese, Korean, South Asian, Southeast Asian, and Pacific Island groups.
Citing race-conscious admissions programs which opened the door to higher education for AAPIs in the past, the three organizations note that many AAPIs still face significant educational barriers and benefit from race conscious affirmative action programs in higher education.
The AALDEF-Foley Hoag brief distinguishes affirmative action and negative action, noting there is no evidence in the record that proves UT's "holistic review" process discriminates against AAPIs. The brief cites the increase in the percentage of Asian Americans in UT-Austin's freshman class from 6% to 23% from 1986 to 2014, encompassing periods of both race-neutral and race-conscious admissions policies. Moreover, recent enrollment of Asian Americans at UT is five times larger than the percentage of Asian Americans living in Texas.
This is Fisher's second appearance before the Supreme Court. AALDEF and Foley Hoag also submitted an amicus brief to the Supreme Court in 2012, disputing Fisher's arguments. The Court remanded the case to the Fifth Circuit Court of Appeals after finding the Fifth Circuit had failed to apply the "strict scrutiny" standard when examining UT's admissions procedures.
Then, as now, AALDEF and Foley Hoag argue that Fisher's amici rely on damaging stereotypes about Asian Americans as a "model minority" and inaccurate characterizations of SAT score data in support of their argument that UT's holistic review policy harms Asian American applicants. The AALDEF- Foley Hoag brief rebuts these claims with Census data and by highlighting where they cannot be substantiated by fact.
The Foley Hoag legal team includes partners Dean Richlin and Hemmie Chang, and associates Catherine Deneke, Sarah Burg, Alice Yu, and Amanda Hainsworth. The broader Asian American coalition joining AADLEF in support of UT-Austin's individualized admissions policies includes Advancing Justice, the Coalition of Bar Associations of Color (NAPABA, the Hispanic National Bar Association, the National Bar Association, and the National Native American Bar Association), and over 160 Asian American organizations, student groups, and bar associations as well as 53 higher education faculty and officials.


text:
Canada II vs. Stars & Stripes in St. Maarten
by Rodney Smith
On the winning yacht in the Stars & Stripes race in St. Maarten
When my wife and I signed up for an Eastern Caribbean cruise aboard Emerald Princess in January 2010, I never dreamt it would include a hair-raising race aboard an authentic 12-meter racing yacht; one of the actual yachts from a former America's Cup Race.
Indeed, I couldn't imagine why I'd want to leave the sumptuous creature comforts of our majestic cruise ship for more than a quick trip ashore — we'd been aboard for three days already and I still hadn't found time to explore the wonders of this regal ship.
My elder brother Randy, of course, suggested this little Caribbean shore excursion while at St. Maarten. "It'll be a blast," he goaded. "The girls will be too busy shopping to miss us! Not scared are you?" he said with a knowing smile. Since we were toddlers we'd been getting each other into one mess or the other, so I should've known better than to accept the challenge of joining he and our cousin Ken on the St. Maarten 12 Meter Challenge.
Anyway, off we went to the far end of the beach where the friendly staff helped us sign up. A small tender took us out to our boat. Oh, sorry "our yachts." Oops, sorry again "our racing yachts."
In addition to the local captain, first mate and second mate; each boat had a crew of eight — that's right, no passengers — everyone had a job to do. The Stars & Stripes enjoyed a fully American crew, while we were six Canadians and three Americans aboard the Canada II.
As we left the protected harbour the sails billowed proudly as the Canada II leapt forward across an emerald sea topped with foaming whitecaps. For the next 90 minutes or so we stowed our sunglasses and battened down our hats as the challenge was on! I was thrilled with the chase and quite enjoying myself until the captain announced our first "tack." Suddenly, as we heaved promptly into the wind, I found myself flung to one side of the cockpit to face a now menacingly dark sea skimming swiftly by mere inches from my bulging eyes!
Almost positive that I'd gotten a glimpse of a rubbery fin or two keeping pace with our boat — "yacht, "whatever — I scrambled back to my assigned post just as the captain shouted, "Where's my port-grinder – GRIND!" I'd barely started grinding (working a two-handed winch to tighten the sails) when "He-Who-Must-Be-Obeyed" countered with, "RELEASE!" Of course, just seconds later his Lordship was calling for his starboard-grinder (me again) to GRIND then RELEASE! Then GRIND! Then… well, you get the picture!
We were short of a full crew that day so I had the pleasure of being both port and starboard grinder. At 58 I wasn't quite as nimble as my younger days, but with tremulous legs I managed to stumble back and forth to the captain's changing whims and fancies. As the crew struggled to keep our feet and respond to the flurry of nautical terms thrown our way, our captain and mates bounced around the boat as if blessed with Velcro-soled sneakers!
As the race continued, the lead kept shifting back and forth between the Stars & Stripes and the Canada II. However, as we regained the mouth of the harbour our sleek red & white yacht crept ahead to beat out our competitors by just half a length! Our cheers drowned out any sobbing from the other boat and by unanimous vote we anointed our three USA team-mates as "honorary Canadians" — what else could we do as the proud and victorious crew of the Canada II. Once back on dry land we all shook hands and joined together to toast one another's efforts.
Walking back along the white sandy beach to return to Emerald Princess I had to admit to my brother that yes, it HAD been a blast! Would I go racing again? Yes, in a heartbeat! Will my wife and I go on another cruise with Princess Cruises? Absolutely!


text:
Home / About / Membership & Business Services
At Independent Oxford our mission is to build up a community of people who run, shop at, and love independent businesses. Our directory is constantly growing and we're always looking for new people to work and collaborate with….
Do you run an independent business in Oxfordshire? Do you want to be part of our directory and the Independent Oxford community? Then pop us an email and we'll send you more information on how to be involved. We've got some really exciting packages for 2019/20, and it would be great to have you on board!
TESTIMONIALS >>
Vicky Troth, Owner, The Missing Bean:
"Independent Oxford have been a great support and really quite inspirational for us – as an independent coffee business operating in an increasingly difficult climate Rosie and Anna have been real champions for what is special about small indie businesses and raising awareness about buying local. They have created a real community of Oxford independent businesses which has been very supportive, we regularly meet up to share ideas, talk about initiatives that they are working on, or looking at how to turn challenges to our advantage."
Kevin Potter, Potters Instinct Photography:
"Independent Oxford has become an important focus for my business. Seeing mainstream businesses flood our high streets and making high street clones throughout the county, it has encouraged my focus to become more involved with the strong independent movement that is happening in and around Oxford. Being an Indie Oxford member has great potential for networking with other businesses that normally you wouldn't know were on your doorstop! The Indie meet ups are a must. As a photographer I have started work to help promote local businesses through the medium of business lifestyle photography, a line of photography where a business can put a 'hand crafted' or 'face behind the business' approach to the consumer, promoting more of an investment purchase from your customers with images that show 'you' the creator behind the making of your product or service."
Natasha Denness, Coach:
"As a life and creative business coach, I value the vibrant Independent Oxford community. By attending networking events and being included in the online directory, I have felt supported and I have made new and exciting business connections."
Charis Sharpe, General Manager, Turl Street Kitchen:
"As a small independent, working with Independent Oxford has been invaluable for us. We have collaborated with them to host the Independent Oxford Christmas Market three years in a row, we have grown our reach through social media as they have shared us on their account and their blog and they happily signpost other businesses and creatives to us. The networking events that they host have also enabled us to gradually build relationships with other local businesses too and have led to further collaborations. For us they are a huge asset!"
Harriet Peacock, Shop Coordinator at the Old Fire Station:
"It's been really helpful to have the Independent Oxford community over the last few years to support us as an independent business. From a chance to have a chat with other local businesses, to sell our wares and market ourselves to a different audience at the Christmas market, it's all contributed to a greater sense of involvement and awareness in the local business scene. Anna and Rosie do an amazing job promoting indies through the website and their social media and it's lovely to have that boost when you've got loads to do!"
New for 2019, we're offering special membership packages for indie businesses offering more business to business service based products.
Business services packages give your business a visible marketing platform, and access to our growing community.
If you would like more information about our Business Services packages, please get in touch here.


text:
    rglwidgetClass.prototype.getCursor = function(mode) {
      switch(mode) {
        case "none":
          return "none";
        case "trackball":
        case "xAxis":
        case "yAxis":
        case "zAxis":
        case "polar":
          return "grab";
        case "selecting":
          return "crosshair";
        case "fov":
        case "zoom":
          return "zoom-in";
      }
      return "dragging";
    };

    /**
     * Set mouse mode for a subscene
     * @param { string } mode - name of mode
     * @param { number } button - button number (1 to 3)
     * @param { number } subscene - subscene id number
     * @param { number } stayActive - if truthy, don't clear brush
     */
    rglwidgetClass.prototype.setMouseMode = function(mode, button, subscene, stayActive) {
      var sub = this.getObj(subscene),
          which = ["left", "right", "middle"][button - 1];
      if (!stayActive && sub.par3d.mouseMode[which] === "selecting")
        this.clearBrush(null);
      sub.par3d.mouseMode[which] = mode;
      if (button === 1)
        this.canvas.style.cursor = this.getCursor(mode);
    };

    /**
     * Compute mouse coordinates relative to current canvas
     * @returns { Object }
     * @param { Object } event - event object from mouse click
     */
    rglwidgetClass.prototype.relMouseCoords = function(event) {
      var rect = this.canvas.getBoundingClientRect();
      return {x:event.clientX-rect.left, y:event.clientY-rect.top};
    };

    /**
     * Set mouse handlers for the scene
     */
    rglwidgetClass.prototype.setMouseHandlers = function() {
      var self = this, activeSubscene, handler,
          handlers = {}, drag = 0;

      handlers.rotBase = 0;

      this.screenToVector = function(x, y) {
        var viewport = this.getObj(activeSubscene).par3d.viewport,
          width = viewport.width*this.canvas.width,
          height = viewport.height*this.canvas.height,
          radius = Math.max(width, height)/2.0,
          cx = width/2.0,
          cy = height/2.0,
          px = (x-cx)/radius,
          py = (y-cy)/radius,
          plen = Math.sqrt(px*px+py*py);
        if (plen > 1.e-6) {
          px = px/plen;
          py = py/plen;
        }
        var angle = (Math.SQRT2 - plen)/Math.SQRT2*Math.PI/2,
          z = Math.sin(angle),
          zlen = Math.sqrt(1.0 - z*z);
        px = px * zlen;
        py = py * zlen;
        return [px, py, z];
      };

      handlers.trackballdown = function(x,y) {
        var activeSub = this.getObj(activeSubscene),
            activeModel = this.getObj(this.useid(activeSub.id, "model")),
            i, l = activeModel.par3d.listeners;
        handlers.rotBase = this.screenToVector(x, y);
        this.saveMat = [];
        for (i = 0; i < l.length; i++) {
          activeSub = this.getObj(l[i]);
          activeSub.saveMat = new CanvasMatrix4(activeSub.par3d.userMatrix);
        }
        this.canvas.style.cursor = "grabbing";
      };

      handlers.trackballmove = function(x,y) {
        var rotCurrent = this.screenToVector(x,y),
            rotBase = handlers.rotBase,
            dot = rotBase[0]*rotCurrent[0] +
                  rotBase[1]*rotCurrent[1] +
                  rotBase[2]*rotCurrent[2],
            angle = Math.acos( dot/this.vlen(rotBase)/this.vlen(rotCurrent) )*180.0/Math.PI,
            axis = this.xprod(rotBase, rotCurrent),
            objects = this.scene.objects,
            activeSub = this.getObj(activeSubscene),
            activeModel = this.getObj(this.useid(activeSub.id, "model")),
            l = activeModel.par3d.listeners,
            i;
        for (i = 0; i < l.length; i++) {
          activeSub = this.getObj(l[i]);
          activeSub.par3d.userMatrix.load(objects[l[i]].saveMat);
          activeSub.par3d.userMatrix.rotate(angle, axis[0], axis[1], axis[2]);
        }
        this.drawScene();
      };
      handlers.trackballend = 0;

      this.clamp = function(x, lo, hi) {
      	return Math.max(lo, Math.min(x, hi));
      };

      this.screenToPolar = function(x,y) {
        var viewport = this.getObj(activeSubscene).par3d.viewport,
          width = viewport.width*this.canvas.width,
          height = viewport.height*this.canvas.height,
    	  r = Math.min(width, height)/2,
    	  dx = this.clamp(x - width/2, -r, r),
    	  dy = this.clamp(y - height/2, -r, r);
    	  return [Math.asin(dx/r), Math.asin(-dy/r)];
      };

      handlers.polardown = function(x,y) {
        var activeSub = this.getObj(activeSubscene),
            activeModel = this.getObj(this.useid(activeSub.id, "model")),
            i, l = activeModel.par3d.listeners;
        handlers.dragBase = this.screenToPolar(x, y);
        this.saveMat = [];
        for (i = 0; i < l.length; i++) {
          activeSub = this.getObj(l[i]);
          activeSub.saveMat = new CanvasMatrix4(activeSub.par3d.userMatrix);
          activeSub.camBase = [-Math.atan2(activeSub.saveMat.m13, activeSub.saveMat.m11),
                               Math.atan2(activeSub.saveMat.m32, activeSub.saveMat.m22)];
        }
        this.canvas.style.cursor = "grabbing";
      };

      handlers.polarmove = function(x,y) {
        var dragCurrent = this.screenToPolar(x,y),
            activeSub = this.getObj(activeSubscene),
            activeModel = this.getObj(this.useid(activeSub.id, "model")),
            objects = this.scene.objects,
            l = activeModel.par3d.listeners,
            i, changepos = [];
        for (i = 0; i < l.length; i++) {
          activeSub = this.getObj(l[i]);
          for (j=0; j<2; j++)
            changepos[j] = -(dragCurrent[j] - handlers.dragBase[j]);
          activeSub.par3d.userMatrix.makeIdentity();
          activeSub.par3d.userMatrix.rotate(changepos[0]*180/Math.PI, 0,-1,0);
          activeSub.par3d.userMatrix.multRight(objects[l[i]].saveMat);
          activeSub.par3d.userMatrix.rotate(changepos[1]*180/Math.PI, -1,0,0);
        }
        this.drawScene();
      };
      handlers.polarend = 0;

      handlers.axisdown = function(x) {
        handlers.rotBase = this.screenToVector(x, this.canvas.height/2);
        var activeSub = this.getObj(activeSubscene),
            activeModel = this.getObj(this.useid(activeSub.id, "model")),
            i, l = activeModel.par3d.listeners;
        for (i = 0; i < l.length; i++) {
          activeSub = this.getObj(l[i]);
          activeSub.saveMat = new CanvasMatrix4(activeSub.par3d.userMatrix);
        }
        this.canvas.style.cursor = "grabbing";
      };

      handlers.axismove = function(x) {
        var rotCurrent = this.screenToVector(x, this.canvas.height/2),
            rotBase = handlers.rotBase,
            angle = (rotCurrent[0] - rotBase[0])*180/Math.PI,
            rotMat = new CanvasMatrix4();
        rotMat.rotate(angle, handlers.axis[0], handlers.axis[1], handlers.axis[2]);
        var activeSub = this.getObj(activeSubscene),
            activeModel = this.getObj(this.useid(activeSub.id, "model")),
            i, l = activeModel.par3d.listeners;
        for (i = 0; i < l.length; i++) {
          activeSub = this.getObj(l[i]);
          activeSub.par3d.userMatrix.load(activeSub.saveMat);
          activeSub.par3d.userMatrix.multLeft(rotMat);
        }
        this.drawScene();
      };
      handlers.axisend = 0;

      handlers.y0zoom = 0;
      handlers.zoomdown = function(x, y) {
        var activeSub = self.getObj(activeSubscene),
          activeProjection = self.getObj(self.useid(activeSub.id, "projection")),
          i, l = activeProjection.par3d.listeners;
        handlers.y0zoom = y;
        for (i = 0; i < l.length; i++) {
          activeSub = self.getObj(l[i]);
          activeSub.zoom0 = Math.log(activeSub.par3d.zoom);
        }
        self.canvas.style.cursor = "zoom-in";
      };
      handlers.zoommove = function(x, y) {
        var activeSub = self.getObj(activeSubscene),
            activeProjection = self.getObj(self.useid(activeSub.id, "projection")),
            i, l = activeProjection.par3d.listeners;
        for (i = 0; i < l.length; i++) {
          activeSub = self.getObj(l[i]);
          activeSub.par3d.zoom = Math.exp(activeSub.zoom0 + (y-handlers.y0zoom)/self.canvas.height);
        }
        self.drawScene();
      };
      handlers.zoomend = 0;

      handlers.y0fov = 0;
      handlers.fovdown = function(x, y) {
        handlers.y0fov = y;
        var activeSub = this.getObj(activeSubscene),
          activeProjection = this.getObj(this.useid(activeSub.id, "projection")),
          i, l = activeProjection.par3d.listeners;
        for (i = 0; i < l.length; i++) {
          activeSub = this.getObj(l[i]);
          activeSub.fov0 = activeSub.par3d.FOV;
        }
        this.canvas.style.cursor = "zoom-in";
      };
      handlers.fovmove = function(x, y) {
        var activeSub = this.getObj(activeSubscene),
            activeProjection = this.getObj(this.useid(activeSub.id, "projection")),
            i, l = activeProjection.par3d.listeners;
        for (i = 0; i < l.length; i++) {
          activeSub = this.getObj(l[i]);
          activeSub.par3d.FOV = Math.max(1, Math.min(179, activeSub.fov0 +
             180*(y-handlers.y0fov)/this.canvas.height));
        }
        this.drawScene();
      };
      handlers.fovend = 0;

      handlers.selectingdown = function(x, y) {
      	var viewport = this.getObj(activeSubscene).par3d.viewport,
      	  width = viewport.width*this.canvas.width,
      	  height = viewport.height*this.canvas.height,
          p = {x: 2.0*x/width - 1.0, y: 2.0*y/height - 1.0};
      	this.select.region = {p1: p, p2: p};
      	if (this.select.subscene && this.select.subscene != activeSubscene)
      	  this.delFromSubscene(this.scene.brushId, this.select.subscene);
      	this.select.subscene = activeSubscene;
      	this.addToSubscene(this.scene.brushId, activeSubscene);
      	this.select.state = "changing";
      	if (typeof this.scene.brushId !== "undefined")
      	  this.getObj(this.scene.brushId).initialized = false;
      	this.drawScene();
      	this.canvas.style.cursor = "crosshair";
      };

      handlers.selectingmove = function(x, y) {
      	var viewport = this.getObj(activeSubscene).par3d.viewport,
      	  width = viewport.width*this.canvas.width,
      	  height = viewport.height*this.canvas.height;
      	if (this.select.state === "inactive")
      	  return;
      	this.select.region.p2 = {x: 2.0*x/width - 1.0, y: 2.0*y/height - 1.0};
      	if (typeof this.scene.brushId !== "undefined")
      	  this.getObj(this.scene.brushId).initialized = false;
      	this.drawScene();
      };

      handlers.selectingend = 0;

      this.canvas.onmousedown = function ( ev ){
        if (!ev.which) // Use w3c defns in preference to MS
        switch (ev.button) {
          case 0: ev.which = 1; break;
          case 1:
          case 4: ev.which = 2; break;
          case 2: ev.which = 3;
        }
        drag = ["left", "middle", "right"][ev.which-1];
        var coords = self.relMouseCoords(ev);
        coords.y = self.canvas.height-coords.y;
        activeSubscene = self.whichSubscene(coords);
        var sub = self.getObj(activeSubscene), f;
        handler = sub.par3d.mouseMode[drag];
        switch (handler) {
        case "xAxis":
          handler = "axis";
          handlers.axis = [1.0, 0.0, 0.0];
          break;
        case "yAxis":
          handler = "axis";
          handlers.axis = [0.0, 1.0, 0.0];
          break;
        case "zAxis":
          handler = "axis";
          handlers.axis = [0.0, 0.0, 1.0];
          break;
        }
        f = handlers[handler + "down"];
        if (f) {
          coords = self.translateCoords(activeSubscene, coords);
          f.call(self, coords.x, coords.y);
          ev.preventDefault();
        } else
          console.warn("Mouse handler '" + handler + "' is not implemented.");

      };

      this.canvas.onmouseup = function ( ev ){
        if ( drag === 0 ) return;
        var f = handlers[handler + "end"];
        if (f) {
          f.call(self);
          ev.preventDefault();
        }
        drag = 0;
        this.onmousemove( ev );
      };

      this.canvas.onmouseout = this.canvas.onmouseup;

      this.canvas.onmousemove = function ( ev ) {
        var coords = self.relMouseCoords(ev), sub, f;
        coords.y = self.canvas.height - coords.y;
        if ( drag === 0 ) {
          activeSubscene = self.whichSubscene(coords);             sub = self.getObj(activeSubscene);
          this.style.cursor = self.getCursor(sub.par3d.mouseMode.left);
        } else {
          f = handlers[handler + "move"];
          if (f) {
            coords = self.translateCoords(activeSubscene, coords);
            f.call(self, coords.x, coords.y);
          }
        }
      };

      handlers.setZoom = function(ds) {
        var i;
        if (typeof activeSubscene === "undefined")
          activeSubscene = self.scene.rootSubscene;
        var activeSub = self.getObj(activeSubscene),
            activeProjection = self.getObj(self.useid(activeSub.id, "projection")),
            l = activeProjection.par3d.listeners;

        for (i = 0; i < l.length; i++) {
          activeSub = self.getObj(l[i]);
          activeSub.par3d.zoom *= ds;
        }
        self.drawScene();
      };

      handlers.wheelHandler = function(ev) {
        var del = 1.02;
        if (ev.shiftKey) del = 1.002;
        var ds = ((ev.detail || ev.wheelDelta) > 0) ? del : (1 / del);
        handlers.setZoom(ds);
        ev.preventDefault();
      };

      handlers.get_finger_dist = function(ev) {
        var diffX = ev.touches[0].clientX - ev.touches[1].clientX,
            diffY = ev.touches[0].clientY - ev.touches[1].clientY;
        return Math.sqrt(diffX * diffX + diffY * diffY);
      };

      handlers.touchstart = function(ev) {
        var touch = ev.touches[0],
          mouseEvent = new MouseEvent("mousedown",
            {
              clientX: touch.clientX,
              clientY: touch.clientY
            });
        ev.preventDefault();
        if (ev.touches.length == 2) {
          var coords = self.relMouseCoords(touch);
          coords.y = self.canvas.height-coords.y;
          activeSubscene = self.whichSubscene(coords);
          handlers.finger_dist0 = handlers.get_finger_dist(ev);
          handlers.zoomdown(coords.x, coords.y);
        }
        this.dispatchEvent(mouseEvent);
      };

      handlers.touchend = function(ev) {
        var mouseEvent;
        ev.preventDefault();
        if (ev.touches.length == 1) {
          mouseEvent = new MouseEvent("mouseup", {});
          this.dispatchEvent(mouseEvent);
        }
      };

      handlers.touchmove = function(ev) {
        var touch = ev.touches[0],
          mouseEvent;
        ev.preventDefault();
        if (ev.touches.length > 1) {
          var coords = self.relMouseCoords(touch),
              new_dist = handlers.get_finger_dist(ev);
          coords.y = self.canvas.height*Math.log(handlers.finger_dist0/new_dist) + handlers.y0zoom;
          handlers.zoommove(coords.x, coords.y);
        } else {
          mouseEvent = new MouseEvent("mousemove",
          {
            clientX: touch.clientX,
            clientY: touch.clientY
          });
          this.dispatchEvent(mouseEvent);
        }
      };

      this.canvas.addEventListener("DOMMouseScroll", handlers.wheelHandler, false);
      this.canvas.addEventListener("mousewheel", handlers.wheelHandler, false);
      this.canvas.addEventListener("touchstart", handlers.touchstart, {passive: false});
      this.canvas.addEventListener("touchend", handlers.touchend, {passive: false});
      this.canvas.addEventListener("touchmove", handlers.touchmove, {passive: false});
    };

redpajama_set_name: RedPajamaGithub


The General Carrera Lake / Buenos Aires Lake is located in the Patagonia and it is shared by Chile and Argentina. The General Carrera Lake is the biggest lake of Chile and the second biggest in South America, after Titicaca lake.
Baptized as Chelenko, which means "turbulent waters," in the Tehuelche language, this lake has a particular quality that gives it global recognition: the turquoise color of its waters, that drain into Bertrand lake and then Baker river, the most abundant river in Chile.
The lake is shared between Chile and Argentina, where it is called Buenos Aires. It is the largest lake in Chile and the second largest in South America, with a surface of 978,12 km2 and a length of 200 kilometers. It is located 350 meters above sea level and has a maximum depth of 590 meters.
Located in the basin of the lake are the towns of Chile Chico, Puerto Rio Tranquilo, Puerto Ibáñez, Bahía Murta and Puerto Cristal. These locations are privileged with a microclimate that makes them unique since they are home to exceptional natural attractions and constant good temperatures, ideal for visitors who wish to enjoy contemplation, relaxation, navigation and outdoor activities. In the surrounding areas, it is also possible to engage in activities such as recreational fishing, horseback riding, and trekking, allowing the visitor to enjoy the flora and fauna surrounding this magnificent lake.
Throughout the road that surrounds the lake waters, and from different angles, it is possible to see the peaks of the mountains San Valentín and San Lorenzo, covered in glaciers.
One of its most popular attractions is the Capillas de Mármol Natural Sanctuary, a set of marble outcrops, along with a coastal strip that is 300 meters long and that is shaped by the waters of General Carrera Lake.
Total Area: 978,12 km2 and 200 kilometers long. It is located at 350 meters above sea level and has a maximum depth of 590 meters.
Location: It is located in the communes of Puerto Ibáñez and Chile Chico.
Nearby Towns: Puerto Ibáñez, Bahía Murta, Puerto Sánchez, Puerto Guadal, Puerto Tranquilo, Mallín Grande and Chile Chico.
Distance and Estimated Time from Coyhaique: 120 kilometers, 1 hour and 30 minutes.
The lake supports various tourist activities; amongst which the most popular are kayaking, taking boat rides and diving. It is also an excellent scenario for photography.


CES isn't officially open yet, but there's already plenty of news to follow from the annual technology bonanza. Here's what you need to know so far.
You don't have to wait for Las Vegas Convention Center to open its doors to see what CES 2018 has to offer. A long lineup of press conferences on what's officially called Press Day (confusing, I know) brings a slew of new gadgets and services from some of the biggest technology players on the planet. It's a lot to take in, but we're here to help. Read on for the most important news so far.
TVs are always big at CES, both in how many there are and in the size of the TVs themselves. And you can always leave it to LG to get the ball rolling. The company's early morning press conference showed updates to all of its TVs, from the top-of-the-line W8 series down to the more budget-friendly B8 series. They all retain slim profiles -- the W8 has the same "wall art" design that we saw last year in the W7 -- but gets new features like Google Assistant, an Alpha 9 processor that promises to improve sharpness and color (among other things), and the ability to play high frame rate (up to 120 frames per second) video for a smoother picture.
What really wowed us, though, was a 65-inch 4K OLED display that you can roll up into tube form. Two years ago we saw the same concept in an 18-inch size: Resolution wasn't stellar then, but this time the rollable display should match the high picture quality that we've come to expect from LG's standard TVs. Just don't expect to buy this one at Best Buy anytime soon.
Samsung is pitching QLED technology as the best way to topple OLED dominance. Like the the company's 2017 models, its 2018 flagship LCD TV uses quantum dots (that's where you get the "Q" in QLED) but adds a few improvements like a redesigned LCD panel to block interior light leakage.
In the land of things you can't really buy yet, Samsung showed a 146-inch TV called "The Wall." It uses Samsung's Cinema Screen technology, designed for movie theaters, so 146 inches is only a starting size. How does MicroLED work? Think of it like a jumbo screen at a stadium where an array of millions of individial, tiny LEDs create an image. Samsung also showed the Q9S, which it bills as the first 85-inch 8K TV with artificial intelligence. More pixels than a 4K TV may sound impressive, but keep in mind that more pixels doesn't automatically mean a better picture.
Sony also went big with its X900F series of TVs that range from 49 inches all the way to 85 inches. That's even bigger than last year's X900E series, which was one of the best-performing LCD TVs CNET reviewed last year. Like its predecessor, the X900F also has Google Assistant, but adds Dolby Vision high dynamic range compatibility and a new stand design.
The new OLED A8F series has Sony's Acoustic Surface speaker design, where the screen itself actually produces sound (cool!). It comes with Dolby Vision and HDR10 high dynamic range formats, Android TV, and support for both Google Assistant and Alexa.
Though Hisense focused on budget TVs last year (and had a strong showing), the company went more upscale this year with models using full-array local dimming, quantum dot color technology and compatibility with Alexa voice control. The company also showed a $10,000 laser TV that it introduced in late 2017. It's actually a short-throw projector with 4K resolution, built-in speakers and a wireless subwoofer.
Arriving in Las Vegas, CNET's TV guru David Katzmaier's had high hopes for Hisense's Chinese rival, TCL. The company's P series, introduced last year at CES, was 2017's the best 55-inch TV for the money. Today TCL showed a successor TV, the 2018 6 series, which looks even better. It keeps features like full-array local dimming and Roku's excellent Smart TV system, but adds a 65-inch size and a slicker finish.
Nvidia's CES press conference was Sunday night, but its BFGD is still worth a mention. Short for Big Format Gaming Display, not surprisingly it's a 65-inch display built for gamers with features like a native 120Hz refresh rate and true high dynamic range (HDR).
The 2017 CES was a big year for voice assistants (particularly Amazon Alexa) and we expected more of the same this year. So far, though, it is Samsung's Bixby and Google Assistant that are grabbing the spotlight.
Samsung said it will take Bixby, already available on its phones, and add the voice assistant to to its TVs in 2018. Press a button on your TV remote to use Bixby to search for TV shows and movies, check the weather, turn on your lights, play a song from Spotify and show photos. Samsung also improved Bixby integration on the Family Hub smart fridge by adding the ability to distinguish between different voices. Outside of Samsung, iHeartRadio unveiled Bixby support.
LG, meanwhile, has opted for Google Voice Assistant on its TVs. The "Intelligent Voice Control with Integrated Google Assistant" (great name!) will enable users to control numerous functions on the TV and search the program guide using the remote control. If you can't find your remote, you'll be able to control your TV with a Google Home speaker instead. Alexa users are in luck, as well. LG says the TV will be compatible with Amazon Echo devices.
Beyond TVs, voice assistants continue to spread farther into the home at CES. Google Assistant will control Insteon smart home devices, new Schlage deadbolts, a Hunter ceiling fan and a new LG smart speaker. Alexa, on the other hand, lands in products like an Asus speaker/router, a mirror that talks back to you and a Whirlpool smart washer/dryer hybrid. LG also added new Alexa tricks to its InstaView Q refrigerator.
Google isn't a wallflower at CES, and I'm not talking about the giant Google pavilion with the slides or the Google-branded monorails (what's it called?!) that keep shuttling back and forth. The company also revealed four new smart displays. Designed to compete against Amazon's Echo Show, the displays are basically tablets with Google Assistant built in.
Sony, Samsung-owned JBL, LG and Lenovo make the displays for the non-hardware company. Prop them on your kitchen counter to do everything you'd expect from a smart speaker, like play music, check the weather, check appointments and operate your Google Assistant-connected devices around the house. They also let you make video calls, watch YouTube videos and look at photos using the "Hey, Google" wake-up call.
Intel CEO Brian Krzanich opened up the company's keynote presentation with remarks on Meltdown and Spectre, two security flaws that have sent shockwaves through the industry.
CEO Brian Krzanich came to Las Vegas to talk about the future, but he had to spend a few minutes (two minutes, to be exact) on the Spectre and Meltdown vulnerabilities to its chips that researchers found last week. Krzanich said Intel is working on fixing the performance flaws, but he did not address slower post-patch performance and his own controversially timed stock sale.
In future news, Intel said it will build highly detailed maps of roads around the world for self-driving vehicles with cameras already installed in production cars. The company also announced an exploratory partnership with Paramount Pictures to create new kinds of entertainment, a plan to bring VR to 30 events at the Olympics and a Volocopter autonomous passenger drone. Krzanich said that by the end of this year Intel would meet diversity goals (set in 2015) for "full representation" of women and minorities.
HTC debuted the Vive Pro, a new version of its PC VR headset with improved resolution and full wireless capabilities.
GE Appliances has a smart home hub and control center for your kitchen. Hang the huge tablet above your stove and tap away.
If you thought Volvos were boxy, wait until you see Toyota's e-Palette concept vehicle.
Kia's showed a fully electric version of its Niro model.
LG's CLOi will respond to your commands via the LG Hub Robot and can help with the chores. It's cute, even if the poor little thing didn't have the best introduction at LG's press conference.
Asus's Zenbook Flip 14 has the latest Intel Core processor.
NeoMano is a robotic glove that helps people with a spinal cord injury perform everyday tasks.
Airbags for your hips to protect you in case you fall? Sure, why not?
A robot called Sophia can walk and even dance on her new legs. She's not creepy at all.
Lenovo also delivered the 2-in-1 Miix 630 with a Snapdragon 835 processor, the first PC with Dolby Vision high dynamic range imaging, a new version of the Lenovo ThinkPad X1.
CES 2018: Complete coverage of the world's biggest technology show from CNET.
The coolest new gadgets at CES 2018: Here are the best new announcements we've seen so far.


Tesora helps show off another unnamed promontory, farther up the valley. Behind her is the shadowed ridge of Brumley Point, and above and beyond that is our previously unnamed promontory, now called Temple Butte in honor of Pati and David Temple, who advocated tirelessly for Spring Creek Basin's mustangs (David still does, and Pati spreads her angel's wings over our blessed basin).
The very last light lit up that promontory, and it was hard to balance its brightness with the already shadowed foreground – and mustangs. So that's not snow; it's very-bright sunshine spotlighting the golden rock of the promontory.
Wow, that is wonderful. Better that the grey we have had for days!


vast wilderness of Glacier Bay.
active so it is ice free and silent. Below, McBride Glacier From White Thunder Ridge, 1976. 8X12in. print from 35mm negative $159.
Melting Iceberg and Sun, Muir Inlet, 1976.
from sea kayak,1982. 10X15 in.
sea kayak, 1982. 10X15 in.
Morning In Hugh Miller Inlet, 1995.
10X15 in. print from 35mm negative $199.
Glacier From Wolf Point, 1976. 8X12 in. print from 35mm negative $159.
Cascading Glacier, NW Inlet, 2008 11X14 in.
14x14in. print from medium format negative $159.


text:
Meteor from the Cockpit (Hardback)
Britain's First Jet Fighter
Aviation British History Aviation in WWII Aviation Memoirs
By Peter Caygill
Imprint: Pen & Sword Aviation
Published: 11th October 2010
You'll be £19.99 closer to your next £10.00 credit when you purchase Meteor from the Cockpit. What's this?
Other formats available - Buy the Hardback and get the eBook for free!
Meteor from the Cockpit Kindle (10.7 MB) Add to Basket £4.99
Meteor from the Cockpit ePub (7.8 MB) Add to Basket £4.99
The Meteor is remembered as the first British jet fighter to enter squadron service and the only jet powered Allied fighter to see action in WW II. Subsequent development was limited as a result of its relatively conventional airframe although it did hold the world air speed record for a while. The Meteor was immensely strong and many pilots owe their lives to its rugged construction. For a whole generation of pilots the aircraft (the Meatbox as it was affectionately known) provided the ideal introduction to jet-powered flight. It did suffer a high accident rate but many of the losses were due to lack of knowledge of the stresses of high speed flight at low level and a misguided training programme. More than sixty years after its first flight the Meteor lives on as it still used by Martin Baker to test ejection seats, testimony to the basic soundness of the design.This book looks into the aircraft s design history, development through many different variants and includes many first-hand accounts of flying the aircraft in peace and war.
The Meteor was the first British jet fighter ad to may all jet fighters that followed were developments of it. It has stuck in the memory of thousands of aircraft spotters who can recall hearing the burbling sound and seeing the strange shape. In the reviewer's case it was at low altitude over Morningside, Edinburgh. Thinking 'Meteor' was not logical since it was still on the Secret List. But word had spread and we all knew what it was.
Over many years we watched it develop into the main first-line RAF fighter and production spread to the Low Counties. Others were exported.
The Meteor was not faultless in flight. Tails came off, engines blew up. It was a new class of aircraft and the training pattern was itself in a state of development. Pilots learned from their mistakes or the accident investigation teams found what had happened from the wreckage.
The Meteor developed into a variety of roles. Cameras gave the RAF fast reconnaissance versions replaced the Spitfires. The fuselage stretched to take an extra crewman in the night fighter version and in the T.7 hundreds of pilots learned how to transition to the single-seat fighter version. The Meteor F.8 went into action with the Royal Australian Air Force in Korea.
This book recounts a lot of the experiences of Meteor pilots. There were many incidents to be recounted and a fairly large number of fatal accidents. The tables of Meteors running currently in Aeromilitaria will show how many there were as they include the repairable ones and the rude mechanicals were busy for ten years straightening out a flow of bent airframes. Fortunately, the Welland and Derwent engines lasted a lot longer than their German equivalents and were exported to power the first US jet fighters.
Nostalgia reading for those who lived through this era.
Aeromilitaria, Winter 2010
More titles by Peter Caygill
Other titles in Pen & Sword Aviation...