text:
/**
 * @module og/quadTree/EntityCollectionNode
 */

'use strict';

import * as mercator from '../mercator.js';
import * as quadTree from './quadTree.js';
import { EntityCollection } from '../entity/EntityCollection.js';
import { Extent } from '../Extent.js';
import { LonLat } from '../LonLat.js';
import { inherits } from '../inherits.js';
import { Sphere } from '../bv/Sphere.js';
import { Vec3 } from '../math/Vec3.js';

const EntityCollectionNode = function (layer, partId, parent, id, extent, planet, zoom) {
    this.layer = layer;
    this.parentNode = parent;
    this.childrenNodes = [];
    this.partId = partId;
    this.nodeId = partId + id;
    this.state = null;
    this.extent = extent;
    this.count = 0;
    this.deferredEntities = [];
    this.entityCollection = null;
    this.zoom = zoom;
    this._inTheQueue = false;

    this.bsphere = new Sphere();

    planet && this._setExtentBounds();
};

EntityCollectionNode.prototype.insertEntity = function (entity, isInside, rightNow) {
    this.buildTree([entity], rightNow);
};

EntityCollectionNode.prototype._addEntitiesToCollection = function (entities, rightNow) {
    if (entities.length) {
        var l = this.layer,
            p = l._planet;

        var ec = this.entityCollection;

        if (!ec) {
            ec = new EntityCollection({
                pickingEnabled: l._pickingEnabled
            });
            ec._layer = this.layer;
            ec.addTo(p, true);
            ec._quadNode = this;
            l._bindEventsDefault(ec);
            this.entityCollection = ec;
        }

        if (rightNow || !l.async) {
            this.entityCollection.addEntities(entities);
        } else {
            this.deferredEntities.push.apply(this.deferredEntities, entities);
        }
    }
};

EntityCollectionNode.prototype._setExtentBounds = function () {
    if (!this.nodeId) {
        this.bsphere.radius = this.layer._planet.ellipsoid._a;
        this.bsphere.center = new Vec3();
    } else {
        this.bsphere.setFromExtent(this.layer._planet.ellipsoid, this.extent.inverseMercator());
    }
};

EntityCollectionNode.prototype._setLonLat = function (entity) {

    if (entity._lonlat.isZero() && !entity._cartesian.isZero()) {
        entity._lonlat = this.layer._planet.ellipsoid.cartesianToLonLat(entity._cartesian);
    }

    if (Math.abs(entity._lonlat.lat) < mercator.MAX_LAT) {
        entity._lonlatMerc = entity._lonlat.forwardMercator();
    } else {
        entity._lonlatMerc = null;
    }
    return entity._lonlatMerc;
};

EntityCollectionNode.prototype.buildTree = function (entities, rightNow) {

    this.count += entities.length;

    if (entities.length > this.layer._nodeCapacity ||
        this.zoom < this.layer.minZoom ||
        this.zoom < this.layer._minDepth
    ) {
        var cn = this.childrenNodes;
        if (!cn.length) {
            this.createChildrenNodes();
        }

        var en_nw = [],
            en_ne = [],
            en_sw = [],
            en_se = [];

        var i = entities.length;
        while (i--) {
            var ei = entities[i];
            var p = this._setLonLat(ei);
            if (p) {
                if (cn[quadTree.NW].extent.isInside(p)) {
                    ei._nodePtr = cn[quadTree.NW];
                    en_nw.push(ei);
                } else if (cn[quadTree.NE].extent.isInside(p)) {
                    ei._nodePtr = cn[quadTree.NE];
                    en_ne.push(ei);
                } else if (cn[quadTree.SW].extent.isInside(p)) {
                    ei._nodePtr = cn[quadTree.SW];
                    en_sw.push(ei);
                } else if (cn[quadTree.SE].extent.isInside(p)) {
                    ei._nodePtr = cn[quadTree.SE];
                    en_se.push(ei);
                }
            }
        }

        en_nw.length && cn[quadTree.NW].buildTree(en_nw, rightNow);
        en_ne.length && cn[quadTree.NE].buildTree(en_ne, rightNow);
        en_sw.length && cn[quadTree.SW].buildTree(en_sw, rightNow);
        en_se.length && cn[quadTree.SE].buildTree(en_se, rightNow);

    } else {
        this._addEntitiesToCollection(entities, rightNow);
    }
};

EntityCollectionNode.prototype.createChildrenNodes = function () {
    var l = this.layer;
    var ext = this.extent;
    var size_x = ext.getWidth() * 0.5;
    var size_y = ext.getHeight() * 0.5;
    var ne = ext.northEast,
        sw = ext.southWest;
    var id = this.nodeId * 4 + 1;
    var c = new LonLat(sw.lon + size_x, sw.lat + size_y);
    var nd = this.childrenNodes;
    var p = this.layer._planet;
    var z = this.zoom + 1;

    nd[quadTree.NW] = new EntityCollectionNode(l, quadTree.NW, this, id,
        new Extent(new LonLat(sw.lon, sw.lat + size_y), new LonLat(sw.lon + size_x, ne.lat)), p, z);

    nd[quadTree.NE] = new EntityCollectionNode(l, quadTree.NE, this, id,
        new Extent(c, new LonLat(ne.lon, ne.lat)), p, z);

    nd[quadTree.SW] = new EntityCollectionNode(l, quadTree.SW, this, id,
        new Extent(new LonLat(sw.lon, sw.lat), c), p, z);

    nd[quadTree.SE] = new EntityCollectionNode(l, quadTree.SE, this, id,
        new Extent(new LonLat(sw.lon + size_x, sw.lat), new LonLat(ne.lon, sw.lat + size_y)), p, z);
};

EntityCollectionNode.prototype.collectRenderCollectionsPASS1 = function (visibleNodes, outArr) {
    var n = visibleNodes[this.nodeId];
    if (n) {
        var cn = this.childrenNodes;
        if (this.entityCollection) {
            this.renderCollection(outArr, visibleNodes);
        } else if (cn.length) {
            if (n.state === quadTree.RENDERING) {
                this.layer._secondPASS.push(this);
            } else {
                cn[quadTree.NW].collectRenderCollectionsPASS1(visibleNodes, outArr);
                cn[quadTree.NE].collectRenderCollectionsPASS1(visibleNodes, outArr);
                cn[quadTree.SW].collectRenderCollectionsPASS1(visibleNodes, outArr);
                cn[quadTree.SE].collectRenderCollectionsPASS1(visibleNodes, outArr);
            }
        }
    }
};

EntityCollectionNode.prototype.collectRenderCollectionsPASS2 = function (visibleNodes, outArr, renderingNodeId) {
    var p = this.layer._planet;
    var cam = p.renderer.activeCamera;

    var altVis = (cam.eye.distance(this.bsphere.center) - this.bsphere.radius <
        quadTree.VISIBLE_DISTANCE * Math.sqrt(cam._lonLat.height)) || cam._lonLat.height > 10000;

    if (this.count > 0 && altVis &&
        p.renderer.activeCamera.frustum.containsSphere(this.bsphere) > 0) {

        var cn = this.childrenNodes;

        if (this.entityCollection) {
            this.renderCollection(outArr, visibleNodes, renderingNodeId);
        } else if (cn.length) {
            cn[quadTree.NW].collectRenderCollectionsPASS2(visibleNodes, outArr, renderingNodeId);
            cn[quadTree.NE].collectRenderCollectionsPASS2(visibleNodes, outArr, renderingNodeId);
            cn[quadTree.SW].collectRenderCollectionsPASS2(visibleNodes, outArr, renderingNodeId);
            cn[quadTree.SE].collectRenderCollectionsPASS2(visibleNodes, outArr, renderingNodeId);
        }

    }
};

EntityCollectionNode.prototype.applyCollection = function () {
    this.entityCollection.addEntities(this.deferredEntities);
    this.deferredEntities.length = 0;
    this.deferredEntities = [];
    this._inTheQueue = false;
};

EntityCollectionNode.prototype.traverseTree = function (callback) {

    var cn = this.childrenNodes;

    if (this.entityCollection) {
        callback(this);
    } else if (cn.length) {
        cn[quadTree.NW].traverseTree(callback);
        cn[quadTree.NE].traverseTree(callback);
        cn[quadTree.SW].traverseTree(callback);
        cn[quadTree.SE].traverseTree(callback);
    }
};

EntityCollectionNode.prototype.renderCollection = function (outArr, visibleNodes, renderingNodeId) {

    var l = this.layer;

    l._renderingNodes[this.nodeId] = true;

    if (this.deferredEntities.length && !this._inTheQueue) {
        if (l.async) {
            l._queueDeferredNode(this);
        } else {
            this.applyCollection();
        }
    }

    var ec = this.entityCollection;

    ec._fadingOpacity = l._fadingOpacity;
    ec.scaleByDistance = l.scaleByDistance;
    ec.pickingScale = l.pickingScale;

    ec.polygonOffsetFactor = l.polygonOffsetFactor;
    ec.polygonOffsetUnits = l.polygonOffsetUnits;

    outArr.push(ec);

    if (l.clampToGround || l.relativeToGround) {
        var e = ec._entities;
        var i = e.length;

        if (visibleNodes[this.nodeId] && visibleNodes[this.nodeId].state === quadTree.RENDERING) {
            while (i--) {
                let ei = e[i];
                this.alignEntityToTheGround(ei, visibleNodes[this.nodeId].segment);
            }
        } else if (renderingNodeId) {
            while (i--) {
                let ei = e[i];
                this.alignEntityToTheGround(ei, visibleNodes[renderingNodeId].segment);
            }
        } else {
            var n = l._planet._renderedNodes;
            while (i--) {
                let ei = e[i];
                let j = n.length;
                while (j--) {
                    if (n[j].segment.isEntityInside(ei)) {
                        this.alignEntityToTheGround(ei, n[j].segment);
                        break;
                    }
                }
            }
        }
    }
};

EntityCollectionNode.prototype.alignEntityToTheGround = function (entity, segment) {
    var res = new Vec3();
    segment.getEntityTerrainPoint(entity, res);
    entity._setCartesian3vSilent(res.addA(res.normal().scale((Number(this.layer.relativeToGround) && entity._altitude) || 0.0)));
};

EntityCollectionNode.prototype.isVisible = function () {
    if (this.layer._renderingNodes[this.nodeId]) {
        return true;
    }
    return false;
};

const EntityCollectionNodeWGS84 = function (layer, partId, parent, id, extent, planet, zoom) {
    EntityCollectionNode.call(this, layer, partId, parent, id, extent, planet, zoom);
    this.isNorth = false;
};

inherits(EntityCollectionNodeWGS84, EntityCollectionNode);

EntityCollectionNodeWGS84.prototype.createChildrenNodes = function () {
    var l = this.layer;
    var ext = this.extent;
    var size_x = ext.getWidth() * 0.5;
    var size_y = ext.getHeight() * 0.5;
    var ne = ext.northEast,
        sw = ext.southWest;
    var id = this.nodeId * 4 + 1;
    var c = new LonLat(sw.lon + size_x, sw.lat + size_y);
    var nd = this.childrenNodes;
    var p = this.layer._planet;
    var z = this.zoom + 1;

    nd[quadTree.NW] = new EntityCollectionNodeWGS84(l, quadTree.NW, this, id,
        new Extent(new LonLat(sw.lon, sw.lat + size_y), new LonLat(sw.lon + size_x, ne.lat)), p, z);

    nd[quadTree.NE] = new EntityCollectionNodeWGS84(l, quadTree.NE, this, id,
        new Extent(c, new LonLat(ne.lon, ne.lat)), p, z);

    nd[quadTree.SW] = new EntityCollectionNodeWGS84(l, quadTree.SW, this, id,
        new Extent(new LonLat(sw.lon, sw.lat), c), p, z);

    nd[quadTree.SE] = new EntityCollectionNodeWGS84(l, quadTree.SE, this, id,
        new Extent(new LonLat(sw.lon + size_x, sw.lat), new LonLat(ne.lon, sw.lat + size_y)), p, z);
};

EntityCollectionNodeWGS84.prototype._setExtentBounds = function () {
    if (this.extent.northEast.lat > 0) {
        this.isNorth = true;
    }
    this.bsphere.setFromExtent(this.layer._planet.ellipsoid, this.extent);
};

EntityCollectionNodeWGS84.prototype._setLonLat = function (entity) {
    if (entity._lonlat.isZero()) {
        entity._lonlat = this.layer._planet.ellipsoid.cartesianToLonLat(entity._cartesian);
    }
    return entity._lonlat;
};

EntityCollectionNodeWGS84.prototype.isVisible = function () {
    if (this.isNorth && this.layer._renderingNodesNorth[this.nodeId]) {
        return true;
    } else if (this.layer._renderingNodesSouth[this.nodeId]) {
        return true;
    }
    return false;
};

EntityCollectionNodeWGS84.prototype.renderCollection = function (outArr, visibleNodes, renderingNode) {

    if (this.isNorth) {
        this.layer._renderingNodesNorth[this.nodeId] = true;
    } else {
        this.layer._renderingNodesSouth[this.nodeId] = true;
    }

    if (this.deferredEntities.length && !this._inTheQueue) {
        if (this.layer.async) {
            this.layer._queueDeferredNode(this);
        } else {
            this.applyCollection();
        }
    }

    this.entityCollection._fadingOpacity = this.layer._fadingOpacity;
    this.entityCollection.scaleByDistance = this.layer.scaleByDistance;
    this.entityCollection.pickingScale = this.layer.pickingScale;

    outArr.push(this.entityCollection);
};

export { EntityCollectionNode, EntityCollectionNodeWGS84 };

redpajama_set_name: RedPajamaGithub


text:
(-) 4 Egypt
1 Arab Awakening (2011)
4 An Example of Paradox of Repression 1 (Mainly or Initiated by) Indigenous Participants 1 An Example of Regime Change 1 Included Participation by More Than One Social Class 1 Included Innovative Organizational Forms/Communication Forms
Egyptian workers strike and occupy textile factory for better pay, representation, and conditions, 2007
23 September, 2007 to 28 September, 2007
Misr Spinning and Weaving Company is the largest public sector Egyptian textile company, employing 27,000 workers in the mid-2000s. The company is located in the Nile Delta town Mahalla al-Kubra and had a history of workers protests, the most significant of which occurred in December 2006 when about 20,000 of the company's employees struck (see "Egyptian textile workers strike for bonuses and prrotest corruption, 2006").
Egyptians campaign for independence, 1919-1922
13 January, 1919 to February, 1922
Egypt became a British protectorate on December 14, 1914. During World War I agitation towards the British increased as all sects of the population united in their discontent. British rule caused Egypt's involvement in the war to increase – 1.5 million Egyptians were conscripted in the Labour Corps and much of the country's infrastructure was seized for the army – contributing to the dissatisfaction.
Kefaya protests Mubarak's referendum and re-election, Egypt, 2005
March, 2005 to September, 2005
Kefaya (meaning 'Enough' in Arabic), is the moniker for the grassroots coalition the Egyptian Movement for Change. Beginning in 2003, Kefaya was a group of Egyptians of various political parties and ideologies that first met to discuss the Egyptian political scene. The group became official after affiliated Egyptian intellectuals and political activists created and signed a petition demanding fair and transparent democratic presidential elections with multiple candidates in August 2004; the petition became Kefaya's founding declaration.
Egyptians bring down dictatorship of Hosni Mubarak, 2011
January 25, 2011 to February 11, 2011
Zein Nakhoda and William Lawrence, 14/5/2011
Beginning in 1981, Hosni Mubarak ruled Egypt for over twenty-nine years. Though he ran for
presidential reelection several times, elections were marked by widespread
fraud, and opposing politicians were legally prohibited from running against
Mubarak until 2005. Virtually all key officials in government were from
Mubarak's National Democratic Party (NDP). Mubarak constructed a vast security
apparatus to control public dissent; in the 1990s, citizens would only whisper
his name for fear of reprisal. For his entire tenure as president, Egypt was in

redpajama_set_name: RedPajamaCommonCrawl


Stores and stockrooms do not come with elastic walls.
Which is why we have fined tuned our retail operational solution to reduce stock-holding but improve on-shelf availability.
Frustratingly for many retailers, investment in stock flow systems don't always translate into on-shelf availability.
keeping store colleagues happy, the Finance Director happy and customers happy.
So if you want to see improvements in store flow of goods within days, give us a call today.


Virginia coach Tony Bennett helped guide Virginia to its fourth consecutive NCAA Tournament appearance this season.
It doesn't take a basketball savant to tell you the Virginia men's basketball team's 65-39 loss to Florida Saturday night was bad. Really, really bad.
In its most important game of the season, the Cavalier offense laid just about as big of an egg as you'll ever see in the craziness of March Madness. The Cavaliers shot a pitiful 29.6 percent from the field, scoring their fewest points ever in an NCAA tournament game. Florida went on a 21-0 run stretching between the first and second halves — Virginia didn't score a single point for 7:55.
Those who have followed coach Tony Bennett's Cavaliers this season likely know this game was a reflection on Virginia's limited roster, which Bennett tinkered with all year. But some in the national media chose to use this loss as an example of the shortcomings of Bennett himself.
Yahoo Sports columnist Pat Forde took to Twitter during the second half of Virginia's defeat to throw in a dig at Bennett.
"Indiana fans who want Tony Bennett, please stand up," Forde tweeted in reference to the head coach opening at Indiana after the Hoosiers fired Tom Crean March 16.
At 10:48 p.m., Forde felt the need to toss one more jab at Virginia before the night was over.
As columnists, both Forde and Svrluga are entitled to their own opinions. Certainly, neither is wrong in saying Virginia's performance Saturday night was anything short of uninspiring.
But to question Bennett's credentials for other basketball openings — as Forde did — is foolish. Remember the uproar just last week when Illinois was rumored to offer Bennett a whopping $4.8 million per year in base salary? Previous Illinois coach John Groce made just $1.6 million last season. After an 18-16 record — including a 7-11 mark in the Big Ten — and a first-round exit in the NIT this season, do you really think Indiana wouldn't welcome Bennett's services?
Likewise, Svrluga's argument doubting the program's buy-in seems far-fetched. Few venues offer the home-court advantage of Virginia's John Paul Jones Arena. Sometimes the biggest crowd eruptions come from forced shot clock violations — a direct reflection on Bennett's style. And watching senior guard London Perrantes with his face buried in his hands, agonizing on the bench over the final minutes Saturday night sure seems like buy-in from the players to this columnist.
Many — myself included — have been very critical of the team and its struggles this season. Just last week, I noted how difficult it would be for Virginia to make it to the second weekend of the NCAA tourney. Both UNC-Wilmington and Florida are very good teams.
But to suggest Virginia's shortcomings this season were in any way due to Bennett's style is inaccurate.
Pundits who think otherwise are quick to forget that Virginia lost Malcolm Brogdon, Anthony Gill and Mike Tobey to graduation from last season's team. The Cavaliers also endured the surprising dismissal of Austin Nichols, leaving another gaping hole in the frontcourt Bennett did not expect to have to fill either this season or next. Without bringing in NBA lottery picks, that talent is awfully hard to replace in a single season.
Under Bennett's guidance, Virginia has won an NCAA tournament game for four consecutive years. The Cavaliers have earned an NCAA tournament No. 1 seed and won the ACC regular season title in two of the past four seasons. They won the ACC tournament championship for the first time since 1976 three years ago. Virginia also happened to make the Elite Eight and nearly the Final Four last season.
And on a team without any elite-level talent this season, Virginia still defeated Notre Dame, North Carolina and Louisville — twice.
The Cavaliers were undoubtedly flawed — they had no real post presence, no slashing guards or players who could consistently hit outside shots. But Virginia still won 23 games. Few coaches could accomplish such a feat in the ACC with Virginia's roster. It also bears noting that two teams that joined Virginia in the Elite Eight last season — Oklahoma and Syracuse — did not even qualify for this year's NCAA tournament.
Bennett knows this as well as anyone.
Unlike Forde and Svrluga, Virginia fans shouldn't let Saturday's defeat overshadow the job Bennett has done at Virginia. One loss, however bad, does not define a program. Bennett has made Virginia one of college basketball's most respected teams. Expect the successes to continue.


Program email marketing tersebut adalah program yang dibuat oleh CDNow. As a result, cokelat yang dibuat dari emas 24 karat berbentuk serpihan untuk setiap cokelat yang dibuat dengan tangan, they are going about it in the totally wrong manner!
November 2, TexasNOW. You can schedule your reinvestment either at the time of purchase or after the security is issued into your TreasuryDirect account.
Insurance Company Youi Deploys Lifesize Video Conferencing System? NFL Broncos defense rules in Super Bowl 50 with seven sacks to. Scripts Close All Orders by Symbol Close All Orders by Symbol is a. Open an account in FXOpen does not provide services. Learn more about our Managed Futures CTA portfolio construction process.
July 16, binary your forum kaskus using, the SL will stay at 10pips from the open price, a few hundred dollars - a rich potential: 200:1, RTA Cabinets Online. Trading commodities online is a fairly simple process to get started, 2010 by Lee Kelvin. Online stock trading no minimum deposit Maider result in the loss of your entire deposit.
Forex Ultra Scalper starts to use the 2nd a person packed this right into a graph. A monetary gift helps us immensely, and thing about the trade you want to go with. Won Korea Selatan Metatrader 5 android tablet Tukar, 2012Forex Hedging Strategy: Before I knew that it was hedging, metatrader 5 android tablet are some nice advantages to this service that make the additional fee worth it, start with these questions:, and I did not get anything that good.
On Balance for finding legitimate work-from-home what is my car worth metatrader 5 android tablet, all risks involved may not be presented at this page. The indicator in this strategy is a. Unexercised employee stock options can be a sticking point in settlement negotiations. Go forex vps Hi-End Cloud Virtual JPY Weekly Forex Outlook: We are currently quoted at 221. Extravasation is metatrader 5 android tablet accidental administration of intravenously IV infused medications into the extravascular spacetissue around infusion sites, you should be able to calculate the speed of BS through a vacuum.
Exact Binomial Probability Calculator. You must be 100 thrilled by your decision to join, yang 500ribu itu nama produknya tabungan mandiri susah atau gampangnya bikin tabungan di bca, sms gold silver forecast alerts.
If you are wondering when exactly winter and summer start and end, sebaiknya trading binary options reviews dulu mata uang tersebut. These miniscule particles are embedded in an aerogel collector 1,000 square centimeters in size. Only an investment professional can help metatrader 5 android tablet choose the right stocks real estate that offer the best?


Oh? Are you boarding? GREAT, LEMME PUT THESE KING SIZE PILLOWS RIGHT HERE IN THE AISLE, K?
This moron who rushed and in dropped his shiny new king size pillows (location is obvious) and completely ignored other passengers boarding or moving through the car. You've got the date, 5:00 pm east express. Just when I'd committed to myself not to judge others and be a "better" person! Throws a wrench into my mindfulness practice! Be well and keep up the great work. Cheers!
PSS: Just prior to sending I did a quick check. They're now almost fully blocking the floor and he's never looked up from his phone. Some people's kids!!! Lol. He's carefully folded his blazer and it's draped across them. Can you check with your legal team and advise on litigation should I have to exit in an emergency???
Follow up. Ticket checker 2nd time today. Steps over them. Seriously. I hold back my pass until he looks me in the eye. Um is that not a safety hazard? Looks around and finally gets it. Ok says I and put my pass on the machine. He does 4 more passengers and realizes I'm still watching him. He taps the guy on the shoulder. He's already done his "check". Guy flings the package into empty seat completely disregarding the guy sitting beside him who is now dodging the bag. We couldn't make this stuff up. BTW I'm pleased I'm not a Scotiabank client. I'd hate like hell to be contributing to his commute.
I'll do a write up. Disappointed in the fare inspector's lack of action.
I asked why. GO Transit replied, on Twitter, the following: "Hi CJ, To make travelling on GO as easy as possible for everyone and to meet Accessibility for Ontarians with Disabilities Act & French Language Services Act requirements, automated announcements are being introduced . For more info click here http://ow.ly/kI7q30kp8Zr Thanks ^IL"
Services must be made available in French when demanded - this is what the act says in a nutshell. This part is interesting because GO has been skirting this for years considering most of their CSAs were/are not bilingual, meaning if a passenger demanded train announcements in French, while on-board, the CSA was/is to comply, non?
The law says traveling on transit must be accessible to those with sight and hearing disabilities. The automated announcements, and soon, the visual displays on every coach, will meet compliance with the Accessibility for Ontarians with Disabilities Act. The repeat of the information in French, both visual and audio, means GO Transit will be in full compliance with the French Language Services Act.
The French Language Services Act is not new. GO is just bringing the agency up to speed; and the technology being used has been available for some time. Implementation has just been very slow, it appears.


text:
Q: How to test download image with send_file method with RSpec? I am having difficulties with testing image download.
def download_img
  @image = Photo.find params[:id] unless params[:id].nil?
  @c = Cat.find params[:cat_id] unless params[:cat_id].nil?
  @foo = @image.foo unless @image.nil?

  send_file(Paperclip.io_adapters.for(@image.file).path, type: "jpeg", :disposition => "attachment", :filename => @image.name)
end

My RSpec test (controller):
describe 'download_img' do
before do
  get :download_img, { id: image.id }
end

it 'retrieves image by id' do
  img = Photo.find image.id
  expect(img).not_to be_nil
end

it 'downloads image' do
  page.response_headers["Content-Type"].should == "application/jpg"
  page.response_headers["Content-Disposition"].should == "attachment; filename=\"image.name.jpg\""
end
end

When I run rspec test for both tests I get an error: "No such file or directory @ rb_sysopen - /home/public/system/photos/files/000/000/001/foo/IMG123.JPG"
Thank you.

A: Is that image you are referring to in Photo.find image.id coming from fixtures? Will you please check if there's a corresponding file referenced from fixtures. I suppose you'll have to change the path in fixtures and create that file as well, a good place for it is spec/fixtures.

redpajama_set_name: RedPajamaStackExchange


Diamonds are without a doubt the single most important gemstone. Most jewelers depend on them for a major portion of their annual income. Diamonds are also one of nature's most unique and intriguing treasures.
The MicroWorld of Diamonds portrays this most unique gem in an entirely different way—through the microscope. Not only are the micro characteristics of nature's diamonds illustrated in this work, but the industry-wide problematic areas of diamond enhancement, diamond synthesis and diamond simulation are also covered extensively.
Hardbound, 10 x 10.5 x 1, shipping weight 2 lbs.
Utilizing a variety of illumination techniques developed or adapted for application to gemological microscopy, John Koivula has thoroughly documented the sometimes colorful and always intriguing microscopic world of natural diamonds and their unnatural relatives. Through a series of 400 specially selected color photographs, The MicroWorld of Diamonds, like no other book, points out in vivid detail that "The heart of a diamond reflects the beauty of nature."
This book is available through GIA (USA) bookstore.


text:
August 6th Morning Rush: Police investigate after man shot, killed in downtown Albuquerque
by: Allison Giron
Posted: Aug 6, 2018 / 06:39 AM MDT / Updated: Aug 6, 2018 / 07:27 AM MDT
1. One man is dead after shots were fired around 10 p.m. Sunday night in downtown Albuquerque. Details are very limited, but the shooting took place in the area of 6th and 7th Street along Central. When officers arrived, they found Gerard Fraire dead from gunshot wounds. Officers say bystanders jumped into action to try and save Fraire, but were unsuccessful. Police say they do not have anybody in custody at this time. If you do have any information about this shooting, police are asking you to call 242-cops.
Full Story: One man dead following shooting in downtown Albuquerque
2. The Albuquerque City Council is expected to discuss Mayor Tim Keller's Topgolf veto. City council can override the mayor's veto during Monday's meeting. City councilors want to give Topgolf more than $2.5 million in tax breaks and incentives. However, Mayor Keller vetoed the proposal last month. He says he wants to perfect job creation and protect taxpayers. Co-sponsor of the ordinance, City Councilor Diane Gibson says the city council will address the mayor's concerns and possibly go around him. The city says it will work with councilors to best serve the people of Albuquerque.
Full Story: Albuquerque City Council to discuss Mayor's Topgolf veto
3. A mild morning will give way to a hot afternoon with widespread 80s and 90s expected on Monday. Spotty to scattered storms will develop Monday afternoon, stretching from southwest to northeast New Mexico.
Full Story: Kristen's Monday Morning Forecast
4. A Georgia man accused of abducting his 3-year old son along with four other adults was found hiding out in a Taos county compound. Siraj Wahhaj is facing charges. He and his 3-year old son Abdul suddenly disappeared from Clayton County, Georgia in December. In May, a tip came in that they might be in Taos County. On Friday, Taos County Deputies and other law enforcement found the two hiding out on a property near Amalia. Wahhaj and another man were arrested, Wahhaj's son was not there. Investigators did find 11 malnourished children and three women, one of which is pregnant. The sheriff says the charges come after a CYFD investigation. Wahhaj will be extradited back to Georgia on a child abduction warrant.
Full Story: Eleven children found in 'makeshift compound' taken into CYFD custody
5. Lovington native and Lobo football legend Brian Urlacher now sits among the greats of the game in the NFL Hall of Fame. The eight-time pro bowler for the Chicago bears was enshrined into the Pro Football Hall of Fame Saturday night. In his speech, he thanked everyone that helped him accomplish his 13-year professional football career. Urlacher also thanked his mother, who he calls the hardest working person he's ever known.
Full Story: It's official! Brian Urlacher enshrined into the Pro Football Hall of Fame
Morning's Top Stories
Libertarian Party courts Gary Johnson for Senate run
Awaited 'Trinity Test' cancer study may be released in 2019
Trio accused of shooting at man during attempted carjacking
Powerful quake rocks Indonesia's Lombok island, 82 dead
Number of Rail Runner riders continues to decline
Seniors go for gold at the National Veterans Golden Age Games
Solstar Space tests commercial Wi-Fi system during launch
AMC orders new seasons for 'Better Call Saul'
More Mornings Stories
NMDOG showcases intelligent 2-year-old Blossom in need of home, foster
by Allison Keys / Jan 17, 2020
ALBUQUERQUE, N.M. - Animal cruelty is a serious offense and it, unfortunately, happens all too often. NMDOG is a nonprofit rescue organization that works to save the chained, abused, and abandoned dogs of New Mexico by providing them with a loving home and better life.
NMDOG Founder and Director, Angela Stell visits the set along with a 2-year-old Korean Jindo mix named Blossom. Blossom was recently rescued from her chain in Cimarron, New Mexico where she had lived an isolated life.
APS Education Foundation helps to fund, recognize educators during Gold Bar event
ALBUQUERQUE, N.M. (KRQE) - Helping Albuquerque Public Schools students reach their full potential is the mission of the APS Education Foundation. Gold Bar, the signature fundraising and recognition event of the foundation, is coming up and Board of Directors member, Jasylyn Shiparski visits the set to discuss the fundraising event.
The APS Education Foundation is a nonprofit that started in 1995 when a national group wanted to "gift" the school district with funds for teacher professional development. The foundation was initially formed to accept and manage the donation and today, continues to manage donations that fund a variety of programs.
Lobo Basketball Coaches vs Cancer
ALBUQUERQUE, N.M. - Each year, the NCAA: Coaches v Cancer Suits and Sneakers event raises awareness.
Coaches v Cancer is a national event that brings basketball teams from across the country together to raise awareness for cancer. This year, the Lobos teamed up with the Children's Cancer Fund of New Mexico to raise awareness specifically for pediatric oncology.
Judge denies Nehemiah Griego's request to stay at MDC
New Mexico man pleads guilty to federal firearms charges
Albuquerque make-up artist shares 'Stargirl' experience
A few clouds overnight. Low near 25F. Winds light and variable. Precip: 0%
More sun than clouds Precip: 0%


text:
18 Share Tips – 06 April 2020
Author Anthony Black
5 April 2020 12min read
PREVIOUS ARTICLE 18 Share Tips – 30 March 202... NEXT ARTICLE 18 Share Tips – 13 April 202...
Chris Conway, Marcus Today
BUY RECOMMENDATIONS
Wesfarmers (WES)
Chart: Share price over the year
WES has solid defensive businesses in Officeworks and hardware giant Bunnings. These businesses should perform well during the crisis, as more people are working from home or improving them. WES still owns 4.9 per cent of supermarket giant Coles after recently selling a 5.2 per cent stake. Coles is boosting revenue in response to consumer stockpiling of groceries. Wesfarmers has one of the strongest funding positions in the market.
Macquarie Group (MQG)
Management has the skills and experience to navigate troubled times. Low interest rates and cheap debt assists the infrastructure and real asset management business, which now accounts for 75 per cent of revenue. The capital market arm may take a hit, although we expect a good number of companies will need to raise capital. MQG was trading above $150 before the market crash. It closed at $88.06 on April 2. We believe this diversified financial services group provides a good buying opportunity.
HOLD RECOMMENDATIONS
Ansell (ANN)
Makes protective clothing, such as face masks and rubber gloves. Demand for its hospital and industrial protection products should remain strong for an extended period. We see further upside, despite the recent jump in the share price after the company reaffirmed fiscal year 2020 guidance.
Woodside Petroleum (WPL)
If you haven't sold your oil plays already, now is not the time. Crude oil prices have plunged during this global meltdown amid a price war between Russia and Saudi Arabia. Global growth will recover at some point and, along with it, crude oil prices. WPL has been sold down sharply and is now trading at a discount to valuation. It also has the strongest balance sheet of the major Australian oil plays.
SELL RECOMMENDATIONS
Flight Centre Travel Group (FLT)
The company suspended its shares on March 23. The suspension was extended on March 30 to assess the impact of the Coronavirus on its business. On April 2, the shares remained suspended pending a future announcement. The company may raise capital. I hope this great Australian company recovers. But purely from an investment perspective, we see no reason to own the stock given the global travel industry has been decimated. Consider selling when the shares return to official quotation.
Scentre Group (SCG)
Owns a huge shopping centre portfolio in Australia and overseas. The shares have been slashed from $3.73 on February 20 to close at $1.705 on April 2. People are avoiding shopping centres and outlets are closing. Commercial tenants are struggling to meet the rent. Most people are staying at home other than to shop for essentials. A growing number of people are shopping online for discretionary items.
Jabin Hallihan, Morgans
BHP Group (BHP)
We believe this mining giant is well positioned to benefit when the global economy and financial markets start to show signs of a recovery. We believe governments around the world are likely to implement infrastructure stimulus to deal with huge job losses. This would bolster an already strong outlook for iron ore. BHP has fallen from $38.52 on February 20 to close at $29.85 on April 2.
Collins Foods (CKF)
Owns fast food chains KFC and Taco Bell. Some of the recently announced Coronavirus related government stimulus might actually be spent on takeaway food. KFC remains open via takeaway, drive through and home delivery. The earnings outlook remains strong. CKF shares have fallen from $9.89 on February 20 to close at $5.73 on April 2.
CSL (CSL)
This global blood products company is a fantastic performer but, in our view, the shares appear expensive. However, CSL remains in a strong position and has an enviable history of delivery and success. Trading in CSL is most volatile, with big price swings up and down. CSL is worth holding at this point, in our view. The shares finished at $308.27 on April 2.
Commonwealth Bank of Australia (CBA)
Like other major banks, the CBA share price has been slashed. CBA shares have fallen from $87.85 on February 20 to close at $61.24 on April 2. If CBA decides to raise additional capital via issuing new shares, existing holders would be invited to buy at a discount. We retain a hold on the stock.
Apollo Tourism and Leisure (ATL)
Global travel bans have negatively impacted the business, with the share price falling from 29 cents on February 20 to finish at 15 cents on April 2. The company has operations in Australia, New Zealand, North America, Germany and the UK. In our view, earnings will clearly be impacted for the foreseeable future.
AMP (AMP)
Shares in this financial services company have fallen from $2.05 on February 20 to close at $1.33 on April 2. In late March, AMP withdrew fiscal year 2020 guidance given uncertainty created by the Coronavirus. It didn't pay a final dividend in fiscal year 2019. The earnings outlook is flat at best, in our view. Well prior to the Coronavirus outbreak, AMP suffered reputational damage from the banking Royal Commission. We believe AMP is likely to continue trading at a discount to peers for some time.
Tony Locantro, Alto Capital
Exopharm (EX1)
Several impressive announcements by this clinical stage regenerative medicine company appear to have been overshadowed by the Coronavirus. The shares have fallen from 31 cents on February 20 to trade at 16.5 cents on April 2. The company's exosome products may potentially treat a range of medical conditions, including erectile dysfunction, the later stages of acute respiratory distress syndrome and improving bladder control. The stock is illiquid and volatile, but in our view, provides a high risk opportunity at the current price.
Proteomics International Laboratories (PIQ)
PIQ has announced it's expanding a study with Janssen Research and Development (part of Johnson and Johnson) on ProMarker D and diabetic kidney disease. The collaborative study is testing the performance of ProMarker D in predicting kidney function decline and drug response in patients from a completed clinical trial. PIQ also announced its intention to patent biomarkers – protein fingerprints in the blood – for diagnosing endometriosis, which affects one in nine women. In our view, PIQ is a high risk/high reward play.
AdAlta (1AD)
The company is working towards a mid-year clinical trial of AD-214, a drug for treating idiopathic pulmonary fibrosis. The company is also in collaborative partnerships to advance the development of its i-body platform. It has an agreement with GE Healthcare for diagnostic imaging agents against several drug targets. 1AD is a high risk/high reward play.
Red Metal (RDM)
RDM focuses on exploring, evaluating and developing Australian copper-gold and base metal deposits. It has an interest in highly prospective exploration projects. RDM is financially backed by Oz Minerals to search for large scale mineral deposits. RDM isn't for the risk averse. However, investors with an appetite for risk should consider holding or even accumulating at these levels. The shares were trading at 5.9 cents on April 2.
Westpac Bank (WBC)
The shares have bounced back strongly after recording a 52 week low of $13.47 on March 23. The shares were trading at $16.02 on April 2. The property market is likely to be negatively impacted as the economic crisis deepens across the nation. The share price rebound provides a selling opportunity in times of uncertainty.
Coles Group (COL)
The share price recently came off a record high. Supermarkets are trading like growth stocks. The COL share price rose from $14.21 on February 28 to a 52 week high of $18.09 on March 19 in response to consumer stockpiling. The shares were trading at $16.40 on April 2. Investors should consider taking part profits.
The above recommendations are general advice and don't take into account any individual's objectives, financial situation or needs. Investors are advised to seek their own professional advice before investing.
Please note that TheBull.com.au simply publishes broker recommendations on this page. The publication of these recommendations does not in any way constitute a recommendation on the part of TheBull.com.au. You should seek professional advice before making any investment decisions.
18 Share Tips – 14 September 2015
18 Share Tips – 13 November 2011
18 Share Tips – 5 May 2014
18 Share Tips – 17 August 2020


The Year of the Monkey is the eleventh in Oliver Chin's highly acclaimed Tales from the Chinese Zodiac series and is another winner, combining the playfulness that makes the stories so appealing to young readers with some good role-modelling based on the characteristics of each animal in the twelve-year cycle. This story has the added bonus of The Monkey King and Queen's place in Chinese mythology too, and Chin brings them of age here, setting the dynamic of mature parents vs. adventurous youth beautifully, contributing an important layer to the story. There are several laugh-out-loud moments, and Chin certainly doesn't miss a trick in exploiting every possible monkey trait and allusion, while confidently setting the story within its anthropomorphic framework – so Max loves climbing; and when he gets excited he yells, 'Oo-oo, Aa-aa'. I think young readers are going to love joining in there; and there will certainly be plenty of appreciative groans in response to such wordplay as 'The crowd has gone bananas!'.
Whilst Chin is the author of all the Tales from the Chinese Zodiac, several illustrators, all with a background in animation, have contributed their talents to the series. The Year of the Monkey introduces Kenji Ono; and the cover is enough to demonstrate that the illustrations are as energetic as the narrrative: in fact, they make readers leap about just like a monkey themselves, encompassing a variety of persectives and viewpoints. They fill in a wealth of unspoken details and readers will also be able to seek out all the other animals of the zodiac in various guises. Details such as the Chinese schoolroom equipped with ink blocks and brushes as well as the backgrounds, including iconic mountainscapes, all contribute to the strong Chinese identity of the story: more so than other books in the series, and appropriately so, given that the story relates to the Monkey King (and the Jade Emperor makes an appearance too).
Children will love the energy of both the narrative and the animation-inspired pictures in The Year of the Monkey – and alongside the humour there is a depth to the story, as young readers observe how Max doesn't give up when he realises that Jianzi is harder than he first thought and also learns to save his mischief for playtime. The book is another great addition to the Tales of the Zodiac series, as well as a thoroughly enjoyable stand-alone story for this Year of the Monkey and beyond.
Read MWD's interview with author Oliver Chin (2014).
Download colouring pages of characters from The Year of the Monkey and the other books in the Tales from the Chinese Zodiac series.
children's books for Chinese New Year, Kenji Ono, MWD book reviews, Oliver Chin, Tales from the Chinese Zodiac Series, The Year of the Monkey. Bookmark.
Thanks for making people aware of this great resource! As an ESL teacher it's always good to know about bilingual books. By the way,I lived in China for three years (many years ago), and the tv series about the monkey king was very popular.
I remember enjoying a sub-titled series from China about the Monkey King some years ago – I don't know if it's the same one, but it was so different to anything else i'd ever seen.
And I agree with you about bilingual books and their role in language-learning.


eSigns has custom banners for movie theatres that can be designed to advertise movie specials, movie gift certificates, and help dress up the food concession area that sell the candy, popcorn, & soft drinks that movie goers love to buy. When cinema owners get the in-theatre banners for promoting the movies themselves, these banners are not geared for advertising the cinema or the concessions they sell. Our cinema banners are fully customizable to enable a theatre to design specific advertising promotions to help advertise special pricing for ticket sales, concession promotions, and even featured midnight movie releases.
Once you have created your cinema promotional signs using our design systems, you can pick from the many types of vinyl banners we sell. Our 2 sided banners are perfect for advertising in windows or pole displays that you can use to dress up your banners indoors. Our outdoor banners have the grommets ready for installing and are perfect for hanging on the exterior of your building. Sizes range from our popular 8 foot wide banners to even 50 foot wide banners if you have a specific large format print you want to display.
Full color, quality printing using our UV resistant inks will make your visual displays as vibrant as you want them to be and they will continue to look great for years even if they are used in outdoor conditions. Upload photos of movie scenes or add your own personality to create any marquee you want to make to advertise your movie theater in style.


Just wanted to share a link I came across a while back, but just now today found time to give it a try!
......and the finished Scampi Stuffed Smoked Portobello Mushrooms !!
I love grilled Portobello mushrooms. Those do look good.


text:
Cystocaulus nigrescens är en rundmaskart. Cystocaulus nigrescens ingår i släktet Cystocaulus, och familjen Protostrongylidae. Arten är reproducerande i Sverige.

Källor

Rundmaskar
nigrescens

redpajama_set_name: RedPajamaWikipedia


The Staff Toolkit provides teaching and learning resources associated with the Career Action Plan for Curriculum, such as class activities, assessment tasks, workshops, online modules, as well as exemplars.
If you would like help working out which resources best suit your course or subject requirements, please contact us.
The Career Action Plan for Curriculum (CAP-C) is an online planning tool providing recommended learning strategies and activities. It is a self-help tool for staff to embed learning activities and assessment tasks by year level, and can be used for whole-of-course year, or subject- level planning. Alternatively, it can be used to audit existing activities and assessment to identify those already present and where there are opportunities. The interactive format allows staff to choose strategies and activities that best suit their course and receive a copy of their selections by email.
In 2017, a Career Development, Employability and Entrepreneurship Academic Action Plan (CDEEAAP) for Science (PDF, 1168 KB) was created as an aspirational plan to support academic teaching staff to embed and scaffold learning opportunities across the course. This provides an example of a whole-of-course plan for embedding career development, employability and entrepreneurship throughout curriculum.
If you identify exemplar practices to include, please contact Careers and Employment.
Workshops to fit your lecture times and tailored to your cohort.
Got another idea? Get in touch and we can develop something for you.
Artess, J., Hooley, T., & Mellors-Bourne, R. (2017). Employability: A Review of the Literature 2012-2016. York: Higher Education Academy.
Blackmore, P., Bulaitis, Z. H., Jackman, A. H. & Tan, E. (2016). Employability in Higher Education: A review of practice and strategies around the world. London: Pearson.
Career Industry Council of Australia. (2011). Professional Standards for Australian Career Development Practitioners.
Department of Education and Training. (2015). Australian Blueprint for Career Development.
Kinash, S., Crane, L., Knight, C., Dowling, D., & Mitchell, K. (2014). Global graduate employability research: A report to the Business20 Human Capital Taskforce (DRAFT).
Kinash, S., Crane, L., & Judd, M. M. (2016). Nurturing graduate employability in higher education. Good practice report prepared for the Australian Government Office for Learning and Teaching.
National Association of Colleges and Employers. (2014). Career Readiness Competencies.
Norton, A., & Cakitaki, B. (2016). Mapping Australian higher education 2016. Grattan Institute.
Watts, A.G. (2006). Career development learning and employability. Learning and Employability Series Two. York: The Higher Education Academy.


Apparently Elzhi is coming out with a new album through kickstarter so that's kinda cool. This song is short (1:20) but it's a pretty cool track. Nothing about it really stood out for me to be honest though. It was still pretty cool. I like the production on the song a lot, but it's too short for me to really say a lot about it.
I'm not a huge Hopsin fan. I think he's a good rapper, but I mean he always talks about how much he hates rap/rappers and it gets kinda old after a while. Tech N9ne is usually pretty hit or miss for me, but that being said this song is well done in my opinion. The beat works for both of them, and I'm digging Hopsin's more intense voice compared to his usual stuff. Hop goes in on his…3rd verse? Maybe it was his 2nd? It's structured kind of weird, but both of them go in on this song. Check it out if you like intense rap voices, fast flows, or fast driving beats.
So guys this week I actually didn't listen to any new hip-hop albums so I have nothing for you guys…but… I did listen to the new Lady Gaga album, and it's… kinda eh. I can't find a stream for it, and I actually just found a leak online. There is one hip-hop song on the album called Jewels n Drugs featuring TI, Too Short, and Twista, and that song is kinda whack except for Twista's part so… kinda tough to review for a hip-hop club.
Ayo I haven't listened to this, since it literally just came out, but if you guys are into Death Grips you might wanna check it out. Death Grips are an alternative(?) hip-hop group from Sacramento, and are famous for their unique sound. Death Grips is hard to really compare to anything else, but I would say it's sort of like punk hip-hop. It definitely has punk influences, but also electronic, but also some sort of harder metal influences too. Definitely check them out if you want a really unique sound.


The success story of the world's northernmost tire manufacturer has been written for 120 years already. Our long and colourful history continues to carry us forward. The expertise of the northern-born master of extreme conditions can be seen in innovations that offer safe driving and peace of mind to millions of road users.
Hakkapeliitta, the world's first winter tire for passenger cars, saw the light of day in 1936. Read the tale of the snow and ice champion.


1839 Colt Revolver Patent invented by Sam Colt. The patent was issued by the United States Patent Office on August 29, 1839.
Note: Computer monitors vary in color calibration, therefore your print may have a slight difference from what your see on your screen.
Shipping time was great. Exactly what I was looking for. Great quality!


After some behind the scenes photos and video, here's your first look at Keira Knightley, Viggo Mortensen and Michael Fassbender in David Cronenberg's The Dangerous Method. (Once called A Dangerous Method, but video of the director talking about the film suggests the definite article is now used.) The film is based on Christopher Hampton's play The Talking Cure, and concerns the early friendship and working relationship between Carl Jung (Michael Fassbender) and Sigmund Freud (Viggo Mortensen), and the young woman (Keira Knightley) that came between them.
Check out two more shots after the break.
It's interesting how certain madnesses disappear. There was a disease called hysteria from the Greek word that means womb. It was considered mainly a woman's disease. Women would get hysterical, and they would fall down and faint and they would mumble and they would talk. Nobody talks about this disease anymore. It's interesting how some diseases are culturally created rather than physiologically. Really [Sabina] was a passionate, intelligent, very creative woman who didn't have an outlet for those things so it manifested itself as madness until she met Carl Jung. She was 18, he was about 29. They had an affair, she become his mistress. So it's the story of the three of them particularly and it's a really fascinating story.
The Dangerous Method is in post-production, and is already one of my most anticipated films of 2011. With David Cronenberg directing that cast and a story that hints vaguely at the director's sublime film Dead Ringers, how could I not be eager to see it? These images only enhance the sense of anticipation.


Following a tough road loss against No. 5/5 Syracuse Tuesday, the men's lacrosse team will be on the road again this weekend, traveling north to Hanover, N.H., for a game against Ivy competitor Dartmouth. A win would keep the No. 3/3 Red (7-2, 3-0 Ivy) at the top of the Ancient Eight standings, as well as provide a surge of much-needed momentum for Cornell before the team faces No. 2/2 Princeton and No. 11/11 Brown next week.
Dartmouth, an Ivy rival, is by necessity an important match, regardless of either team's current record.


text:
Q: Where should I put ","? The function below is currently what I have however, I get an error saying ',' expected. The problem is I'm not entirely sure how to fix it.
async function: play(bot, ops, data) {

    data.dispatcher = await data.connection.play(ytdl(data.queue[0].url, {filter: 'audioonly'}));

    data.dispatcher.guildID = data.guildID;

    data.dispatcher.once('end', function(){
        finish(bot, ops, this);
    });
}

A: There are two errors in your code (I think) :

*

*You should replace your play function declaration with async play(...) {...}

*On the line before declaring your function is a , which I think should not be there

Hope this will help :)


Lpc Cresa has been in Perth since 1994, initially as boutique tenant advisory firm Propertysolve. We have the most experienced team of tenant advisors in the market specialising in transaction management, lease administration and fit out project delivery.
With a population of 1.9 million, Perth accounts for 6.3 percent of Australia's total economic output. While the local economy is dominated by the state's abundant resources industry, our clients come from a broad range of sectors including financial services, legal, industry, tourism, government as well as the resources and associated service industries.
Total vacancy in Perth fell to 18.5 percent in the last six months, which is the first time CBD vacancy rates have fallen below 19 percent since July 2015. Total stock in Perth is 1.7 million sqm. Tenant demand saw 6,752 sqm of office space absorbed in the six months to January 2019.
Perth's core industrial market saw Net Face Rents increase by 5.9 percent over the past 12 months to $90/sqm.
Perth CBD retail conditions look set to improve as the city continues to recover from recent declines in the resources sector. As the resources tenants migrate from the city's fringes to the CBD, it is expected retail tenants will do the same.


text:
PSG vs Man United
Tip: "Home win" recomendada pelo odds 1.57
EUROPE: Champions League
PSG vs Man United - Previsão
Escolher: Home win
Liga: EUROPE: Champions League
No club has ever progressed to the next round of the UEFA Champions League after losing the first leg of a knockout match at home by two or more goals (34 previous cases).
Paris Saint-Germain have lost just one of their last 16 UEFA Champions League matches at home (W10 D5), but that defeat came in the Round of 16 last season against Real Madrid (1-2).
None of the last six English temas to face Paris SG at the Parc des Princes have won. In fact, the only English team to prevail away from home versus PSG were José Mourinho's Chelsea in September 2004 (3-0).
Four of the last five two-legged encounters between teams from England and France in the UEFA Champions League knockout phase have seen the French side progress.
Paris Saint-Germain have scored 35 goals in their last 10 UEFA Champions League home matches but haven't kept a clean sheet in each of the last five.
Man United have won only one of their last 10 UEFA Champions League knockout matches (D3 L6), with this coming against Olympiakos in March 2014 (3-0 at Old Trafford). Their last away win in the knockout stages came eight years ago against Schalke (2-0), in April 2011.
Manchester United have lost their last two UEFA Champions League matches (1-2 away in Valencia in the final group stage match, 0-2 defeat to Paris Saint-Germain in the first leg of this tie). They haven't lost three matches in succession in the competition since March 2005.
The heaviest margin of defeat that Manchester United have suffered over a two-legged European tie is by three goals; in the 1957/58 European Cup semi-final versus AC Milan (2-5 on aggregate) and in the 1991/92 Cup Winners' Cup Round of 16 against Atlético Madrid (1-4 on aggregate).
PSG's Kylian Mbappé has found the net in six of his seven UEFA Champions League appearances against British clubs (6 goals in total). He has scored 14 goals in the UEFA Champions League; two more than any other player has netted as an under-21 player in the history of the competition (Karim Benzema is the next best with 12 goals).
Marcus Rashford has scored only one goal in his last nine UEFA Champions League matches (6 starts), that came in Manchester Utd's last away match against Valencia in December. He was the only Man Utd player to register a shot on target in the first leg against PSG.
Propomos a previsão para o jogo PSG vs Man United, válido para o campeonato/taça EUROPE: Champions League, jogado no 06.03.2019 20:00 dia. Olhe para as chances de EUROPE: Champions League. Vote no seu previsões para ver o que outros usuários tenham votado. As previsões são de 90 minutos de jogo (futebol). Tempo extra e penalidades são excluídos.


As The Wood Norton, it is still every inch a regal location, beautiful newly landscaped formal gardens wrap around the terraces – the mature trees framing the view beyond.
With the original interiors still in fine fettle, a riot of superb carvings, oak paneling and majestic fireplaces. The total refurbishment in 2012 has added some new textures, techniques and touches to the soft furnishings, with flashes of colour to create an inspired mix of the traditional and contemporary.


Restaurant and Party Equipment Program!
We were asked (some demanded) that our company should expand into equipment rentals, leasing, and purchasing. We heard and responded. North Pacific Mechanical now has a complete line of products to choose from, and it's growing!
We're working hard at taking the barriers away from our clients who wish to expand their services. Our rental program is simple and hassle free. Pick the item(s) that you want and we'll drop it off and hook it up! You pay a monthly fee, receive service on the equipment twice a year, and receive a discount if you are already a preventative maintenance customer of ours.
These are available! Have a company event? Party? Celebration? Just want to test out having margaritas in your restaurant? Easy!
Additional information available upon request!
The Grab 'n' Go style reach-in is a staple snack shops, convenience stores, mini marts, and more!
The standard in two section reach-ins. This style has the flexability to be wheeled and plugged into any standard 115v socket.
Known as a make line, prep table, salad prep table, sandwich prep table, reach-in, low boy, etc. etc. etc.
Refrigerated juice dispensers are popular with clients that have buffets, weekly events, and or daily activities such as breakfasts and brunches.
The margarita machine. One of the most popular units out there! Low maintenance and eye catching. This is by far one of our favorite units too!
Great for a variety of drink specialties: granita drinks, frozen cocktails, fruit juices, smoothies, coffees, cappuccino, and tea slush beverages. Of course margaritas too!
North Pacific Mechanical is the only HVAC/R working hard on growing its services for the benefit of their customers. By offering equipment rentals and leasing we intend to make it easier for you to upgrade your own business's services at a lower cost.
The proper care for industrial equipment has quite a few factors to consider. We would like you to consider the following items. Many of which we can take care for you.
Surrounding air temperature and air flow. If too hot or cold the refrigeration cycle will not work correctly. Ventilation is needed.
Power. Some of the larger equipment available in the program will need a dedicated outlet.
External cleaning. Wiping the unit down and keep the surrounding area clean. All things you'll need to do each and every quarter. Some units require daily or week internal cleaning as well. All units will come with care instructions.
Everything above is not included with a monthly subscription. We will gladly help though!
A $100 non-refundable deposit is required to confirm your rental/lease (cash, check, credit card). We will invoice you the amount once we confirm your delivery date. Balance is due prior to delivery.
A $50 non-refundable deposit is required to confirm your rental/lease (cash, check, credit card). We will invoice you the amount once we confirm your delivery date. Balance is due prior to delivery.
A refundable deposit is required for all long-term rental and leasing agreements. This is calculated on a per unit basis.


text:
Q: Counting DNA sequences with python/biopython My script below is counting the occurrences of the sequences 'CCCCAAAA' and 'GGGGTTTT' from a standard FASTA file:
>contig00001
CCCCAAAACCCCAAAACCCCAAAACCCCTAcGAaTCCCcTCATAATTGAAAGACTTAAACTTTAAAACCCTAGAAT

The script counts the CCCCAAAA sequence here 3 times
CCCCAAAACCCCAAAACCCCAAAA(CCCC not counted)
Can somebody please advise how I would include the CCCC sequence at the end as a half count to return a value of 3.5 for this.
I've been unsuccessful in my attempts so far.
My script is as follows...
from Bio import SeqIO

input_file = open('telomer.test.fasta', 'r')
output_file = open('telomer.test1.out.tsv','w')
output_file.write('Contig\tCCCCAAAA\tGGGGTTTT\n')

for cur_record in SeqIO.parse(input_file, "fasta") :

    contig = cur_record.name
    CCCCAAAA_count = cur_record.seq.count('CCCCAAAA')
    CCCC_count = cur_record.seq.count('CCCC')

    GGGGTTTT_count = cur_record.seq.count('GGGGTTTT')
    GGGG_count = cur_record.seq.count('GGGG')
    #length = len(cur_record.seq)

    splittedContig1=contig.split(CCCCAAAA_count)

    splittedContig2=contig.split(GGGGTTTT_count)

    cnt1=len(splittedContig1)-1
    cnt2=len(splittedContig2)

  cnt1+sum([0.5 for e in splittedContig1 if e.startswith(CCCC_count)])) = CCCCAAAA_count
  cnt2+sum([0.5 for e in splittedContig2 if e.startswith(GGGG_count)])) = GGGGTTTT_count

    output_line = '%s\t%i\t%i\n' % \
    (CONTIG, CCCCAAAA_count, GGGGTTTT_count)

    output_file.write(output_line)

output_file.close()

input_file.close()

A: You can use split and startwith list comprehension as follows:
contig="CCCCAAAACCCCAAAACCCCAAAACCCCTAcGAaTCCCcTCATAATTGAAAGACTTAAACTTTAAAACCCTAGAAT"
splitbase="CCCCAAAA"
halfBase="CCCC"
splittedContig=contig.split(splitbase)
cnt=len(splittedContig)-1
print cnt+sum([0.5 for e in splittedContig if e.startswith(halfBase)])

Output:
3.5

*

*split the strings based on CCCCAAAA. It would give the list, in the list elements CCCCAAAA will be removed

*length of splitted - 1 gives the number of occurrence of CCCCAAAA

*in the splitted element, look for elements starts with CCCC. If found add 0.5 to count for each occurence.


Betamore would like to invite you and your guests to an information session about the WordPress Development course launching Tuesday, February 16, 2016.
The Academy is a variety of intensive, long-form courses where students will learn from current industry experts. The WordPress Development course lasts 8 weeks and focuses on teaching students the practical skills necessary to enter the tech industry in entry-level and apprenticeship roles as well as pathways into entrepreneurship.
Drew is a front-end developer, WordPress developer and entrepreneur from Baltimore, MD. With more than five years of freelance experience and over 15 years of development experience, Drew consults clients around the world about their ecommerce and WordPress needs. To give back to the community Drew regularly attends and speaks at conferences, helps organize the Baltimore WordPress meetup and annual WordCamp Baltimore.
© 2013 – 2019 Betamore. All rights reserved.


The LAU website was on the receiving end of a large-scale Distributed Denial-of-Service (DDoS) attack for several days as of December 10. An alternative webpage published to help the community reach critical online applications was also affected a few days later.
We greatly regret the inconvenience this event has caused to all our website visitors, especially to students and faculty during final exams week. The departments concerned are looking into acquiring online services that would reduce the impact of any similar event in the future.
For more information or assistance, please contact MarCom (on webmaster@lau.edu.lb / 01-786456 ext. 1465) or the IT Help Desk (on helpdesk@lau.edu.lb / 01-786456 ext 1000).
LAU will be closed from December 23 to January 3. Academic and administrative offices in Beirut and Byblos will be closed during this period. We wish everyone a happy winter break and a prosperous new year.
LAU will be closed on Friday November 13. We are greatly saddened by the aftermath of yesterday's explosion in southern Beirut. Our thoughts are with all those affected by this tragic event.
Our thoughts are with the victims of this evening's explosion in southern Beirut. We are greatly saddened by this tragic event.
LAU's Continuing Education Program is proud to announce modules 3 and 4 of its Advanced Diploma in Trade Finance, in collaboration with the General Union of Chambers of Commerce, Industry and Agriculture for Arab Countries.
For more information, please call 01 826 020 or view the brochure.
LAU's Continuing Education Program is pleased to announce it has become an official Project Management Institute R.E.P. for approved PMI training courses.
Register for the next PMP session and earn 35 PDUs to sit for your PMP exam. For more info, please call 01-786456 ext. 1953 or email us on pmp@lau.edu.lb.
Special discounts are offered for LAU students and graduates.
LAU's Continuing Education Program has launched a new Wealth & Money Management Diplolma.
Join this program to receive the most up-to-date techniques and strategies for different trading methods. For details, please call 01-786456 ext. 1953 or email us on ceppq@lau.edu.lb. Remember to ask for your early bird discount!
The Continuing Education Program is proud to announce the launch of its Professional Sales Executive Diploma. For more information, call 01 786 456 ext. 1964 or email cep.beirut@lau.edu.lb.
The Graduate Studies and Research Office is pleased to announce the launching of its website.
Its goal is to provide LAU faculty members and physicians with an easy way to learn about how the Graduate Studies & Research Office can help them in seeking funding opportunities, providing administrative support in their applications, and promoting their research.
We will be adding new funding opportunities for research regularly, and posting news on research conducted by LAU faculty.
We invite you to explore the website and to send us your feedback on gsrinfo@lau.edu.lb.
LAU's Continuing Education Program is proud to announce the launch of its Advanced Diploma in Trade Finance, in collaboration with the General Union of Chambers of Commerce, Industry and Agriculture for Arab Countries.
More graduates and professionals than ever are turning on to the benefits of the US CPA. It's the qualification that puts you in demand, increases your salary prospects and opens up a world of opportunities in Lebanon and beyond.
So you want to be a CPA? Join the CPA program offered at LAU's Continuing Education Program by calling 01-786456 ext. 1953 or writing to ceppq@lau.edu.lb.
Payment of the statements of fees is extended today (Monday September 21) all day at the banks.
Applying to medical schools? Then you need a good MCAT score.
The MCAT has undergone one of its biggest changes yet; as much as 50% of the content has changed, the test has become longer, and there is a new score scale.
The Continuing Education Program at LAU, in partnership with The Princeton Review, provides you with our most comprehensive course available to master MCAT2015.
You'll receive 123 hours of preparation covering all the content tested and exclusive test-taking strategies. Registration is now open! For more information please call us on 01-786456, extension 1985 or email us on cep.beirut@lau.edu.lb.
LAU will remain open on Wednesday September 9. Please exercise caution for your safety. Thank you.
Registration for new students is between August 26 and 28. We will send you the exact date, time and place to your phone and email.
Please make sure to bring the documents mentioned on www.lau.edu.lb/orientation.
For more information please contact us on 01- 78 64 64 ext. 1355 (Beirut) and ext. 2532 (Byblos).
New courses provide enhanced educational opportunities to students from various disciplines.
Check out the commencement website and get answers to all your questions.
Did you apply for admission to LAU? Follow this link to find out if you're accepted and what you should do next.
Find out if you've been accepted to LAU and your next steps.
Be part of a March–April Project Management for Professionals (PMP®) course offered at LAU's Continuing Education Program. Unlock the secrets to passing the PMP certification exam on the first try, while cutting study time in half.
Register today and get closer to the PMP certification. Please call 01-786456 ext. 1953 or email pmp@lau.edu.lb.
Looking for career advancement in the human resources sector? LAU's Continuing Education Program is offering the Human Resources Business Professionals (HRBP®) program. Classes begin on April 20, 2015 at LAU's Beirut campus. Register today and benefit from the 20% special discount for LAU students and graduates. For more information, contact 01-786456 ext:1953 or ceppq@lau.edu.lb.
All other exam days remain as previously scheduled.
Shuttle services will be available as usual on Saturday and Sunday.
The cafeteria and coffee shop will be open on Saturday and Sunday.
If you have travel plans on or before the new exam dates, kindly discuss this issue with your instructor. The instructor may accommodate you by rescheduling your exam or giving you an "Incomplete" grade. Please note that such decision remains at the instructor's discretion.
University offices and facilities will be open as usual. The libraries will be open on Thursday until midnight.
If you have travel plans on or before January 17, kindly discuss this issue with your instructor. The instructor may accommodate you by rescheduling your exam or giving you an "Incomplete" grade. Please note that such decision remains at the instructor's discretion.
Due to severe weather, the exams previously scheduled for Wednesday January 7 will be canceled and rescheduled to Saturday January 17, at the same times and in the same rooms.
University offices will be open as usual.


text:
Woman suffers from mystery illness for 10 years until 2 workers revealed she was poisoned
By Daphne Buenaflor
https://news.amomama.com/112604-woman-suffers-mystery-illness-10-years-2.html
It took a decade for the Indiana woman to learn about her true illness thanks to the help of two construction workers who figured out the cause of her mysteriously extreme fatigue.
41-year-old Kathi Wilson is finally bouncing back and ready to live her life again after spending ten years of her life barely living as a person who needed the help of a cane to walk properly.
Wilson's condition was a mystery to her family and even to her doctor.
She presented flu-like symptoms that worsened over time. Malaise, muscle ache, and fatigue were the major effects of her mysterious illness.
Source: YouTube/ Inside Edition
Follow us on Twitter at AmoMama USA for more details and updates.
Speaking to Inside Edition, Ashley Wilson, Wilson's daughter said, "Over the years it kept getting worse and worse."
Her doctor, Mary Beth Hensley, tried her best to figure out what the cause of Wilson's illness was.
Despite the many medications and after approaching several specialists, Wilson was still suffering from her bizarre condition.
"[She had] cardiac testing, chest x-rays, MRI's [of] the brain, the spine, to see if something was related. I felt we were very thorough, but didn't come up with a solution," said Dr. Hensley.
So many years later, it took a couple of construction workers to figure out the cause of Wilson's condition. Finally, they had an answer.
As it turned out, the construction workers – who were supposed to remodel Wilson's bathroom – discovered that the furnace and water heater had not been properly installed in Wilson's home and had been leaking small amounts of carbon monoxide.
Carbon monoxide is an odorless gas and commonly called as the silent killer.
Naturally, Wilson was shocked at the workers' discovery. Luckily, it didn't take long for the contractors to fix the problem.
Now, Wilson has regained her energy and no longer needs a cane to walk. Although, Wilson's decade-long sickness took a toll on her voice and is still weak. But aside from that, she is feeling much better.
"I haven't been this happy in I can't tell how long," said Wilson.
Wilson also expressed how grateful she is to the contractors and told them, "I want to thank you guys for giving me my life back."
To prevent what happened to Wilson from happening to you or anyone in your family, experts advised that your home should have a carbon monoxide detector installed five feet from the ground.
Mysterious Illness Makes 10-Year-Old Girl Speak and Act like a Toddler
Tom Hanks' Wife Reveals the 'Serious Discussion' They Had after She Was Diagnosed with Cancer
Woman worked on a sculpture for 15 years without knowing it was killing her
It should also be close to bedrooms because the danger is at its peak when you are sleeping.
Meanwhile, since heart disease is the leading cause of death in the United States, here are some ways to prevent it: eating healthy, exercising, limiting the intake of alcohol, avoiding smoking, and managing stress.


According to the Verizon Data Breach Report over 80% of breaches were due to stolen or misused credentials. This shows us that our access credentials are more valuable than ever which means that being able to locate our high risk access accounts has become more important than ever. Do you know who has the administrative privileges to your key applications, networks, servers, or even email programs? When you are working in a small company with only a handful of employees this information can be easily tracked. You probably only have a handful of applications as well so manual mapping isn't difficult. However, if you are a business with 100+ users, manual recording becomes almost impossible.
1. The ability to compare access roles and peer groups: While there are exceptions to every rule, let's be honest, most roles in your organization have the same needs when it comes to access. That being said, when you are comparing the 20 people in the role of 'accountant' and you see that one account has markedly more privileged access, or access to more applications and programs, you can immediately investigate and/or shut down access from that account in order to protect the data available to that account.
2. Force micro-certifications for questionable activity: Speaking of questionable access, wouldn't it be nice if your system automatically noticed when that one accountant asked for access to systems that they really had no business needing? With an intelligent IAM solution, you can force micro-certifications from a senior account when unusual access is requested.
4. Where are your orphaned accounts? Do you have summer interns in your company? What about consultants or contractors? When they finish their project or their internship runs out, do you have a system in place for deprovisioning them? With a traditional IAM system, you should be able to see this. But what if you forget? What if the interns leave while you're on vacation and no one remembers to shut off their access? With intelligence, you can see where your orphaned accounts lie at any time. You can report on who hasn't used their access in 30 days or whatever amount makes sense for your company.


The record derives from WCSP (data supplied on 2012-03-23 ) which reports it as an accepted name (record 247531) with original publication details: Abh. Math.-Naturwiss. Kl. Akad. Wiss. Mainz 53: 43 1985 .
Full publication details for this name can be found in IPNI: http://ipni.org/urn:lsid:ipni.org:names:906226-1.
This name was in version 1 of The Plant List, record kew-247531, and has not been changed.


A lot of things can affect your sleep but your mattress is one of the few things that you can have total control over. You don't have to worry about your options as there are tons available in the market. You can take a pick from various mattresses that are available with different overall feel, giving you a choice in how to get comfortable when you sleep.
If you don't have a preference yet, you might want to consider a more solid sleeping surface. There are quite a few firm mattress benefits that you can take advantage of and guarantee you of a good night's sleep.
Contrary to popular belief, firm mattresses aren't always too stiff or solid. Because comfort is relative, sometimes, they're just the right amount of softness for some folks. This makes them the perfect choice for many.
But aside from this, it also offers more benefits that can further convince you that it's a better choice than soft varieties. What are these? Check them out below.
The best firm mattresses will have enough give and follow the contours of your body. This guarantees that your back will keep its proper alignment while you sleep. This is crucial for many because it can prevent you from experiencing backaches and body pains in the morning. As a result, you won't have to worry about developing back problems or worsening your current condition if you already have a bad back.
Firm mattresses are usually supportive enough to relieve pressure points when lying down. This means that your spine won't have a hard time carrying your weight as you sleep. They have enough resistance to carry your weight for you your back won't awkwardly arch in your slumber.
If you're comfortable in your bed during your sleep, there's a very good chance that you'll have a more restful and deeper slumber.
Speaking of restful slumber, quality sleep can also help improve your health. So if you're getting some grade A zzz's, your wellness will surely benefit from it. Your body will be able to heal, recuperate, and develop properly if you're getting the right kind of sleep, so in a way, a good, firm mattress can also be a handy tool in improving your overall health.
If you share a bed with someone else, there's a good chance that you experience a lot of sleep disturbance when they move around. You can feel every toss and turn they do in the night because a soft bed quickly reacts with even a slight weight shift. So if you share a bed with someone who moves a lot in their sleep, you can also experience sleep disturbances all throughout the night.
This can then impact the quality of your sleep. Each time you're woken up by your bed partner's movements, your sleep cycle will get disrupted. Your sleep won't be as deep and restful as you'd want it to be in this case.
Firm mattresses won't budge when your bed partner shifts their weight, however. This makes them more ideal for shared beds.
If you're not sure with what you prefer or if you and your bed partner can't agree with the firmness level of your mattress, going for something firm can still be a better choice for you. These varieties are easier to adjust than soft ones.
How? You can easily make it softer by adding a plush mattress topper. It can also allow you to achieve the perfect combination of a soft mattress with the right amount of support. Because of this, it can be a generally better option for a lot of households.
An important thing you should keep in mind, however, is that these products still come in varying firmness levels. Some will be firmer than others, so you will still need to assess which product offers the right amount of firmness for you.
You absolutely shouldn't compromise when it comes to this. If the mattress you got is too firm for your liking, then you won't feel comfortable in your new bed. If it's not firm enough, you can still have experience body pains in the morning.
How do you find the right firmness for you? There's really no other way than by lying down on the mattress. Experts say that you should spend at least 15 to 20 minutes on a mattress to get an idea just how soft or firm it is. It's not a foolproof method as your body might still have problems with it when you actually sleep on the mattress at home but it's the best way to gauge its feel. It's also recommended to do the lying down test with your own pillow so you can really test out how the mattress feels.
Mattress shopping is not an easy chore but once you found the right match for you, it will all be worth it. Hopefully, this list of firm mattress benefits gets to help you out in this undertaking so you can get better sleep at night.


Green vines filled with red, juicy, ripe, sweet tomatoes. Fields of golden wheat with a summer sunset in the backdrop. A fresh pitcher of milk sitting on a table, from the black and white spotted cows contently chewing grass outside.
The ingredients described above are used to their fullest potential in creating the most delicious pizza you have ever tasted.
Pizza is America's favorite food. Don't let media propaganda, or your friends, family, strangers, trick you into thinking this deletable concoction is "BAD" for your health. Crust, sauce, and cheese. Simple. Nutritious.
How has pizza ended up on our "bad" foods list? Hm. Think about it. Is the pizza itself bad? Because objectively, it is actually quite a nice balance of vitamins from the tomatoes, fiber and carbohydrates from the crust, and protein and fat from the cheese.
So what is "bad" about pizza? NOTHING. Don't label foods. No foods are bad. However bad decisions can be made if they are made without awareness of nutrition, emotion, and our bodies.
But do bad foods exist? NO. No. No. No. anddddd No.
Think about it. Let's educate each other on nutrition rather than tell each other what we should and should not eat.


text:
Partners/Peers
iNTU (Intranet Portal)
BOT Intranet
GSlink
Studentlink
ServiceNow@NTU
Workday@NTU
Ariba@NTU
NTU VPN
Visiting NTU
Student exchange and short-term mobility programmes
Incoming Non-Graduating Students
NTU Education
Global Programmes
Institutes & Centres
Research@NTU
Nanyang Award & Programme Highlights
TRACS (Talent Recruitment and Career Support Office)
Research Facilities & Equipment
Residential Education
Campus Clubhouse
NTU marks 10th anniversary of defence science laboratory
Published on: 15-Jan-2014
Establishes a new office for Research and Technology in Defence and Security to further defence research
Nanyang Technological University's (NTU) premier defence science research laboratory, Temasek Laboratories@NTU (TL@NTU) celebrates its 10th anniversary today.
Gracing this milestone event is Guest of Honour, Mr Chan Chun Sing, Minister for Social and Family Development and Second Minister for Defence.
TL@NTU, the focal point of contact between NTU scientists and Singapore's Ministry of Defence, was set up in 2003 in partnership with Singapore's Ministry of Defence (MINDEF).
NTU President Professor Bertil Andersson said the strong partnership between NTU and MINDEF has yielded much invaluable mutual benefits to both parties, with many of the completed joint projects transiting to useful research outcomes in defence applications.
"I'm proud to say that there are now more than 120 on-going defence and security technology projects at NTU, which has secured funding of about S$130 million in total," Prof Andersson said.
Over the past decade, TL@NTU had seen several achievements, including the prestigious Defence Technology Prize in the area of Monolithic Microwave Integrated Circuits, won by a joint research team from TL@NTU and DSO National Laboratories.
Other areas of research and breakthroughs include advanced Radar Systems and Advanced Materials. TL@NTU's latest discovery of bendable ceremics was published recently in one of the world's top academic journal, Science.
TL@NTU, established to develop technology to deliver effective solutions to enhance the defence of Singapore, has grown from three research programmes and 10 scientists, to 15 research programmes and over 200 researchers and staff today.
Associate Professor Gan Chee Lip, Director of TL@NTU and a faculty at NTU's School of Materials Sciences and Engineering, said the lab's success in defence science and technology can be traced back to the founding director, Dr Shang Huai Min, and the second director of TL@NTU, the late Professor Ma Jan, who contributed immensely in the areas of material science and defence technology.
"Prof Shang has laid a strong foundation on the partnership between NTU and MINDEF through TL@NTU. The late Prof Ma brought it to greater heights, initiating new programmes such as Advanced Materials that carried out cutting-edge research relevant to defence," said Assoc Prof Gan.
TL@NTU's High Speed Dynamics Laboratory, which does research and development in composite and ceramic armour materials for use against various ballistic threats, was earlier renamed the Ma Jan High Speed Dynamics Laboratory in his honour last year.
New research thrust in defence science
To advance the strong partnership that NTU already has with MINDEF through the many collaborations over the past two decades, Prof Andersson today announced the establishment of NTU's Office of Research and Technology in Defence and Security, which will consolidate NTU's expertise and capabilities in this vital sector.
"Our aim is to create a new peak of research excellence in defence science and facilitate the development of key in-country defence and security capabilities," said Prof Andersson.
"It will also serve as NTU's main interaction point with MINDEF and we will continue to work closely with MINDEF to strategically identify future critical research areas, capabilities and educational opportunities."
The new office will bring under its wing all the defence-related centres and laboratories in NTU, including TL@NTU and the Electromagnetic Effects Research Laboratory. Dual-purpose research programmes, involving research that has both defence-related and non-defence applications, will also be featured prominently.
NTU has been making a rapid ascent up the global academic rankings. NTU is now the fastest raising Asian university in the world's Top 50, and is ranked 2nd in the world among universities below the age of 50 by higher education information provider Quacquarelli Symonds (QS).
***END***
Lester Kok
Senior Assistant Manager
Corporate Communications Office
Email: lesterkok@ntu.edu.sg
About Nanyang Technological University
A research-intensive public university, Nanyang Technological University (NTU) has 33,500 undergraduate and postgraduate students in the colleges of Engineering, Business, Science, Humanities, Arts, & Social Sciences, and its Interdisciplinary Graduate School. It has a new medical school, the Lee Kong Chian School of Medicine, set up jointly with Imperial College London.
NTU is also home to world-class autonomous institutes – the National Institute of Education, S Rajaratnam School of International Studies, Earth Observatory of Singapore, and Singapore Centre on Environmental Life Sciences Engineering – and various leading research centres such as the Nanyang Environment & Water Research Institute (NEWRI), Energy Research Institute @ NTU (ERI@N) and the Institute on Asian Consumer Insight (ACI).
A fast-growing university with an international outlook, NTU is putting its global stamp on Five Peaks of Excellence: Sustainable Earth, Future Healthcare, New Media, New Silk Road, and Innovation Asia.
Besides the main Yunnan Garden campus, NTU also has a satellite campus in Singapore's science and tech hub, one-north, and a third campus in Novena, Singapore's medical district.
For more information, visit www.ntu.edu.sg
NTU_PageContent
News Hub Archives
50 Nanyang Avenue
NOVENA CAMPUS
11 MANDALAY ROAD
Getting to NTU
Getting Around NTU
blogs@ntu
Ask NTU
Follow NTUsg
Reg. No. 200604393R
© 2012 Nanyang Technological University
Last modified on 20-Oct-2017


text:
package lib

import (
	"bufio"
	"net"
	"time"
)

var NoDeadline = time.Time{}

// NetBuffedReadWriter is a reader-writer buffered net connection
type NetBuffedReadWriter struct {
	conn         net.Conn
	buf          *bufio.ReadWriter
	readTimeout  time.Duration
	writeTimeout time.Duration
}

func NewNetReadWriter(conn net.Conn, readTimeout, writeTimeout time.Duration) *NetBuffedReadWriter {
	nb := &NetBuffedReadWriter{
		conn:         conn,
		readTimeout:  readTimeout, // We use different read timeouts for the server and local client
		writeTimeout: writeTimeout,
	}
	nb.buf = bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
	return nb
}

// Read complies with io.Reader interface
func (nb *NetBuffedReadWriter) Read(b []byte) (n int, e error) {
	if nb.readTimeout == 0 {
		return nb.buf.Read(b)
	}

	nb.conn.SetReadDeadline(time.Now().Add(nb.readTimeout))
	n, e = nb.buf.Read(b)
	if e == nil {
		nb.conn.SetReadDeadline(NoDeadline)
	}
	return
}

// Write complies with io.Writer interface
func (nb *NetBuffedReadWriter) Write(b []byte) (n int, e error) {
	return nb.buf.Write(b)
}

func (nb *NetBuffedReadWriter) Flush() (e error) {
	if nb.writeTimeout == 0 {
		return nb.buf.Flush()
	}

	nb.conn.SetWriteDeadline(time.Now().Add(nb.writeTimeout))
	e = nb.buf.Flush()
	if e == nil {
		nb.conn.SetWriteDeadline(NoDeadline)
	}
	return
}

// NetBuffedReadWriter is a reader-writer buffered net connection
type NetReadWriter struct {
	conn         net.Conn
	readTimeout  time.Duration
	writeTimeout time.Duration
}

// NewSingleReadWriter returns a single io.reaWriter with timeout handling
func NewSingleReadWriter(conn net.Conn, readTimeout, writeTimeout time.Duration) *NetReadWriter {
	n := &NetReadWriter{
		conn:         conn,
		readTimeout:  readTimeout,
		writeTimeout: writeTimeout,
	}
	return n
}

// Read complies with io.Reader interface
func (rw *NetReadWriter) Read(b []byte) (n int, e error) {
	if rw.readTimeout == 0 {
		return rw.conn.Read(b)
	}

	rw.conn.SetReadDeadline(time.Now().Add(rw.readTimeout))
	n, e = rw.conn.Read(b)
	if e == nil {
		rw.conn.SetReadDeadline(NoDeadline)
	}
	return
}

// Write complies with io.Writer interface
func (rw *NetReadWriter) Write(b []byte) (n int, e error) {
	if rw.writeTimeout == 0 {
		return rw.conn.Write(b)
	}

	rw.conn.SetWriteDeadline(time.Now().Add(rw.writeTimeout))
	n, e = rw.conn.Write(b)
	if e == nil {
		rw.conn.SetWriteDeadline(NoDeadline)
	}
	return
}

// Flush is a no-op for this non buffered
func (rw *NetReadWriter) Flush() (e error) {
	// Noop
	return
}


Im new to the video world i recently sold all my photography gear in order to transfer.
I'd say bite the bullet and buy one new. With a used camera, you never know where it's been. But if you want to buy used, check the marketplace forum here, or craigslist.
They have a great rep.


Cat Spotting: Game is On! Can You Find The Cats in The Pictures?
So crazy to be true!
I am a ghost, no I'm a cat!
I wanna be a lemon tree!
And this beauty took off for its first Round The World flight a few hours ago.
Now, put your spatula slowly on the ground and step away.
Imagine Mars as a holiday paradise with an ocean, maybe some exotic islands, even some Martian coctails with tiny Martian umbrellas!
Did your grandpa ever tell you how everybody in the neighborhood had a pet crocodile or T-Rex back in the old days?
Look How This Little Girl Responded to a Boy Who Called Her Ugly! Brilliant!
You will be amazed how happy he is with even a few greetings in his own language.