text:
And that appears to be exactly what Feinstein desired. At a May 23 Fish and Game Commission meeting, former state Assemblyman William Bagley, a Marin County resident who also supports Lunny, said that he had been in discussions with Feinstein's staff about the senator wanting Fish and Game to reassert Lunny's rights so that she could force Salazar's hand, according to a transcript of the meeting. "If she has a resolution from this good board that you intend to continue exercising your jurisdiction to issue leases," Bagley told the Fish and Game Commission, "she can hand that to the secretary [Salazar] and say, 'Look, my state wants to exercise its jurisdiction, please let them.'
"That means that the Park Service will be overridden and will receive, from the secretary, orders to issue another land-use permit" to Lunny, Bagley continued.
However, Fish and Game staff, along with the state Lands Commission and the Coastal Commission, strongly disagreed with Lunny and Feinstein's right-to-fish argument. In letters in response to Lunny and Feinstein, the agencies all said emphatically that oyster farming is not fishing; it's farming because no wild oysters are caught. Instead, the oysters are grown and harvested artificially. The commission unanimously agreed and refused to take up Lunny and Feinstein's request.
As a result, the question of whether Drakes Estero will become the first marine wilderness on the West Coast appears to be solely up to President Obama's appointee, Ken Salazar. There's no exact timetable for his decision, but he's expected to make it before Lunny's lease expires this November.


In Death Matters, you take on the role of a different settler every time you're killed.
If death doesn't have enough meaning for you in Fallout 4, this mod will encourage you to respectfully mourn every time you're battered apart by a deathclaw. In OW3Nx25's Death Matters (get it on Nexus here), each time you die you have to retrieve every non-quest item from your corpse, wherever you left it. Upon respawning, you take on the role of a settler from your nearest settlement—or Sanctuary, if there aren't any suitable settlements nearby.
Your journey to retrieve your items will then come up as a quest. The stakes are pretty high: your new character only has basic weapons and armour, and dying again will make your old body vanish for good. Keeping your settlements active is important, because for each respawn, the settler you're playing as is gone forever. You'll have the same appearance as your old self, though.
Death Matters brings, dare I say it, a Dark Souls-like tension to your journey through the Commonwealth, and OW3Nx25 suggests activating the mod in tandem with the game's Survival mode. The only caveat is that it doesn't work with Fallout 4's DLC locations, so keep that in mind if you want to try it out.
Check out our list of best Fallout 4 mods if you're looking for enhancements, new locations or anything else.


Brenda Michaels – Author of; The Gift of Cancer – A Miraculous Journey to Healing (co-authored with Marsha Mercant). Brenda writes about her 14 year battle with cancer and her journey of uncovering dysfunctional patterns and the healing along with it.
Brenda and her husband have also been hosting conscious talk radio for years helping people open up to spiritual possibilities and how we can move from our heads to our hearts.
We chat with Brenda about our unconscious beliefs and settling enough to open space for healing. We are the alchemists and through presence, stillness and creative outlets like writing we can learn to forgive and let go of negative patterns and resentments.
In intro Graham has a lot to wrap up and Darren tells of his Lucid Dream, or rather Lucid moment then awakening, lol. Graham chats about his great CSETI event experience just prior to the show and about the Modern Knowledge Event. See links below… Also some listener trip reports, feedback and paranormal reports are shared. Check our newest blogger Matt intheHat..


Danny Lee Crafton, 69, passed away at his home in Hansen, Idaho, on February 8, 2019. He was born May 23, 1949 in Twin Falls, Idaho, and grew up on a farm in Buhl. He served in the Idaho National Guard with the 101st Airborne during the Vietnam War and continued his Guard service for many years. Danny had a 30-year career in law enforcement that included service with Idaho State Police, Twin Falls PD and Buhl PD. On his police department days off, he drove cattle trucks regionally and, after retirement, he drove over-the-road full time until 2014.
Danny is survived by his wife, Anita; children, Vicki Brook of Buhl; Stacie Heiberg of Beaverton, OR; Melissa Homer of Yakima, WA; and David Crafton, Twin Falls; three sisters; five granddaughters; one great-granddaughter; and his German Shepherd, Ukas. He was preceded in death by his parents, Daniel R. Crafton and Mary Lily (Hadley) Crafton, and brother, Ivan M. "Bill" Crafton.
I was very saddened to hear of Danny Crafton"s sudden passing. You were a true Idahoan and a great American. God Bless You and Your Family and Rest In Peace. You are a true American Hero Danny!!!!
It only seems appropriate to comment here. Danny, I appreciate your dedication to the community. You clearly lived a good life and made your community a better place.


Available to purchase individually (350g) or as a PAK which includes a set of four 350g hammers, an activity card and storage bag.
This hammer is ideal for primary school use and provides a great introduction to the sport for young children.
The Primary School Hammer has been specifically designed for safe use in an indoor school environment. The hammer is available to purchase individually (350g) or as a PAK which includes a set of four 350g hammers, an activity card and storage bag. This hammer is ideal for primary school use and provides a great introduction to the sport for young children.


text:
CLAMPARU: Rare books stolen in Hatton Garden-style London raid 3 years ago found buried in Romania
ABOUT 200 culturally significant books stolen in a sophisticated Hatton garden-style burglary more then three years ago have been found buried in Romania. Officers from the Met Police Specialist Crime South in partnership with the Romanian National Police have recovered the books (pictured above) worth around £2.5 million from a rural location in Romania.
The books were recovered on Wednesday, September 16, following the search of a house in Neamț by Romanian officers who discovered them buried underground.
The books had been stolen in January 2017, during a highly sophisticated burglary in Feltham, west London, in which the burglars cut holes in the roof and abseiled into the warehouse, avoiding sensors.
The books, which include works from the seventeenth century by Italian astronomer Galileo, Sir Isaac Newton, and the eighteenth century Spanish painter Francisco Goya, have a combined value in excess of £2.5 million, but are deemed to be of international importance and are considered irreplaceable.
Over the past three years the Met has been working in conjunction with officers from the Romanian National Police and Italian Carabinieri, supported by Europol and Eurojust, on the international operation to recover the books and bring the offenders to justice.
In January 2017 the books were being stored in a postal transit warehouse in Feltham waiting to be sent to Las Vegas for a specialist book auction.
A Met Police spokesman said: "The suspects broke in by cutting holes in the roof and then abseiling down, avoiding the many sensors. The books were located and stolen in 16 large bags, with the suspects leaving the same way they entered."
Detective Inspector Andy Durham, from Specialist Crime South, said: "This recovery is a perfect end to this operation and is a demonstration of successful joint working between the Met and our European law enforcement partners in Romania and Italy - and at Europol and Eurojust.
"These books are extremely valuable, but more importantly they are irreplaceable and are of great importance to international cultural heritage.
"If it wasn't for the hard work of Detective Constable David Ward and others in this Joint Investigation Team these books would have been sadly lost to the world forever."
The Met investigation identified the suspects involved were part of a Romanian Organised Crime Group (OCG), known as the Clamparu crime gang, that were responsible for high-value warehouse burglaries across the UK.
RECOVERED: The books laid out after being found on Wednesday (Met Police)
The OCG flies members into the UK to commit specific offences and then fly them out of the country shortly afterwards, with the stolen property taken out of the country by other OCG members using different transport methods.
The OCG is linked to a number of prominent Romanian crime families who form part of the Clamparu crime group.
This group is based in the Lași region in Eastern Romania and have a history of complex and large-scale high value thefts, yet have mainly avoided prosecution by offending outside Romania.
A joint operation with the Romanian National Police and Italian Carabinieri, supported by Europol and Eurojust, has since evidenced another 11 offences in London and across the UK where a further £2 million worth of property has been stolen, generally using the same method of entering through the roof.
This culminated in coordinated arrests and searches of 45 addresses across the UK, Romania and Italy in June 2019.
Thirteen individuals were charged in the UK with conspiring to commit burglaries between December 2016 and April 2019, and to acquire criminal property.
Court proceedings continue at this time, with 12 individuals having already pleaded guilty and sentencing is due to take place over four days, beginning on Monday, 28 September.
The thirteenth defendant will tried in March 2021.
Investigations have continued since the coordinated action in June 2019 and this has resulted in the further searches today that have led to the recovery of these books.

redpajama_set_name: RedPajamaCommonCrawl


text:
4 Films Every Colorists Should See from Filmmaker
4 FILMS EVERY COLORIST SHOULD SEE (Courtesy of Filmmaker U Blog - go to https://bit.ly/2XUKur4)Mad Max: Fury Road is continuously referred to as a stunningly beautiful film. John Seale, the cinematographer, was nominated for an Oscar and colorists everywhere were looking at Eric Whipp's work on the film as a triumph for color correction. With so many people looking to Eric's work as a colorist for inspiration, we decided to ask him what films he feels every colorist must-see. Aft...
Making the Cut with Bobbie O'Steen Course at Manh
The purpose of this course is to reveal the art and technique of master editors through the screening and discussion of their work. By doing a cut-by-cut analysis, Bobbie will explain the strategies and decisions behind the editing of many successful films - based on extensive interviews from her books, panels, and event series - which will ultimately empower you to become a better editor, filmmaker, and storyteller. REGISTER HERE: https://www.mewshop.com/registerSchedule:CLASS ONE...
Shutterstock TECH TALK at MEWShop on December 10th
Dream bigger. Your budgets may be small but your productions don't have to be. From the latest tips and tools, Shutterstock shows you how to increase the scope and scale of your projects on a shoestring budget. Not only will we share game-changing techniques and assets, but we will also show you how to monetize your idle content so that you can turn your passion into your profession.DATE: Tuesday, December 10, 2019TIME: 6:30 PM - 8:00PMCOST: FREE!WHERE: Manhattan Edit Workshop, 119 W. 23rd ...
How Editor Mary Jo Markey, ACE Enhanced the Actors
Editor Mary Jo Markey ACE sits down with Author & Historian Bobbie O'Steen to discuss the film "Super 8" from "Sight, Sound & Story: Post Production Summit" 2019. Mary Jo Markey, ACE, is an accomplished editor in both film and television. After cutting a series of independent films and television movies, Markey began her collaboration with JJ Abrams as one of the editors of the TV series "Felicity" during its first three seasons (1998-2000). Markey then moved over to edit the fi...
How Editor Leo Trombetta, ACE Covered for Inconsis
Leo Trombetta, ACE discusses how he combined the best takes from the set of "True Detective" despite the continuity challenges he faced. Leo Trombetta, ACE has over a dozen credits as a Film Editor including "Little Children" for director Todd Field and HBO Films' "Temple Grandin," for which he won both an Emmy and an ACE Eddie Award. Leo's television work includes Netflix's "13 Reasons Why" and "Narcos," "Wayward Pines," "Mad Men," and the Michael Mann/David Milch seri...
How Carla Gutierrez ACE, Made the Most of Limited
Editor Carla Gutierrez ACE, had only a select amount of footage of Justice Ruth Bader Ginsburg for the 2018 documentary "RBG." At the Sight, Sound & Story:Post Production Summit 2019 event, Carla explained how she used video editing to explore the parts of the Justice's life that were not captured on film. Carla Gutierrez, ACE, is the editor of the Oscar-nominated film "La Corona" and the Emmy-nominated documentaries "Reportero," "Kingdom of Shadows" and "Farewell Ferris Wheel....
Editor Mary Jo Markey ACE Explains How She Intensi
Editor Mary Jo Markey ACE Explains How She Intensified Mission Impossible III's Opening Scene from "Sight, Sound & Story: Post Production Summit" 2019. Mary Jo Markey, ACE, is an accomplished editor in both film and television. After cutting a series of independent films and television movies, Markey began her collaboration with JJ Abrams as one of the editors of the TV series "Felicity" during its first three seasons (1998-2000). Markey then moved over to edit the first two season...
How Mary Jo Markey ACE Enhanced the Clarity of The
Mary Jo Markey, ACE was tasked with bringing the final act of Star Wars the Force Awakens together in the edit room. She approached the X-Wing mission to destroy Starkiller Base with a 'less is more' philosophy that she explained here at our Sight, Sound and Story Event. Mary Jo Markey, ACE, is an accomplished editor in both film and television. After cutting a series of independent films and television movies, Markey began her collaboration with JJ Abrams as one of the editors of the ...
Sight, Sound & Story 2019: Inside the Cutting Room
Here's an in-depth look at the career of Editor Mary Jo Markey, ACE from our June 2019, Sight, Sound & Story Post Production Summit. With Bobbie O'Steen as the moderator, the two shared footage and talked about Markey's work on the groundbreaking television show Lost, and her various collaborations with Director JJ Abrams including "Mission Impossible III," "Super 8," "Star Trek," "Star Trek Into Darkness," and "Star Wars: Episode VII - The Force Awakens." Mary Jo Markey, ...
The Films That Influenced a Sound Design Master
(Courtesy of Filmmaker U Blog - go to https://bit.ly/2SwWwpO)There are a lot of things that go into mastering a craft. Hours of practice, mastery of your tools, numerous mistakes to learn from, and years of experience that pushes you to become a better craftsperson. You also need to explore and learn from your colleagues work to see how others have tackled something differently than you might have approached it, so you can be influenced and intellectually challenged.We sat down during a br...
"Star Wars: The Force Awakens" Editor Mary Jo Ma
Join us for an in-depth look at the climactic lightsaber duel in Star Wars the Force Awakens, with the film's editor Mary Jo Markey ACE and moderator Bobbie O'Steen! Learn how much of the clash between Rey and Kylo Ren was forged in the editing room. Mary Jo Markey, ACE, is an accomplished editor in both film and television. After cutting a series of independent films and television movies, Markey began her collaboration with JJ Abrams as one of the editors of the TV series "Felicity...


text:
require('../modules/esnext.array.filter-out');
require('../modules/esnext.typed-array.filter-out');

redpajama_set_name: RedPajamaGithub


text:
Giovanni da Verrazano
Italian Navigator & Explorer
Verrazano first became famous for raiding Spanish ships while serving the French. Late he sought and received a commission from the French King, Francis I, to seek a western sea route to China. This trip was not entirely funded by the French crown, but also by a group of private investors.
Since the Spanish had already explored South and Central America in search of a strait leading to Asia, Verrazano decided to seek such a strait on along the North American coast. He set sail in 1524 and quickly reached the coast of present day North Carolina and continued northward. While cruising along the Carolina Banks Verrazano spotted Pamlico Sound, which he mistook for the Pacific Ocean. He also discovered Block Island near Connecticut, Rhode Island, and the New York and Narragansett Bays. His explorations went further north, eventually reaching Nova Scotia. Although Verrazano was the first person to name sites in the New World after people and places in the Old World, but most for these names are no longer used. However, in his Journal, Verrazano compared Block Island to the Isle of Rhodes in the Mediterranean sea. Later, thinking Verrazano was referring to Aquidneck Island, named their new settlement �Rhode Island.�
Although Verrazano was unsuccessful in luring the French to invest on settlements and colonies in the New World, he was able to organize another expedition in 1527. He made no new discoveries during this voyage, but did return with a profitable cargo of logwood. The following year Verrazano led yet another expedition to the New World, but while exploring the Lesser Antilles, he was killed and eaten by the Carib Indians.
The Verrazano Narrows, at the mouth of New York Harbor and the Verrazano-Narrows Bridge in New York Harbor (between Brooklyn and Staten Island) are named after him.
Click on the Piece of Eight to return to the Main Page


The style of cream of the crop i20 follows the "Fluidic Sculpture 2.0" The Fluidic design was a significant favorite in the Indian Vehicle Market and the design has actually been involved in most of the cars by Hyundai. The fluidic design enables an aerodynamic-friendly structure which leads to better gas performance and smooth sailing on motorways. The style also minimizes the NVH degrees and travelling on the motorway is an actual satisfaction. The style of the vehicle stands out from the car and gives a stylish as well as smooth want to the vehicle.
The inside of the auto is ergonomically designed keeping the thoughts the convenience of the motorist and the passengers too. The auto boasts an automatic A.C control, a big boot room and also an Engine start/stop button. It likewise has an incorporated sound system which is tuned to an eight-speaker system and the audio system has Bluetooth. The Speedometer has an Info Display which informs all of us that is occurring with the auto. The convenience of the auto is high and also driving a car has never been even more pleasant.


text:
layerLeft = new Array();
layerTop = new Array();

function setVisibility(layer, on)
{
	if (on) {
		if (DOM) {
			document.getElementById(layer).style.visibility = 'visible';
		} else if (NS4) {
			document.layers[layer].visibility = 'show';
		} else {
			document.all[layer].style.visibility = 'visible';
		}
	} else {
		if (DOM) {
			document.getElementById(layer).style.visibility = 'hidden';
		} else if (NS4) {
			document.layers[layer].visibility = 'hide';
		} else {
			document.all[layer].style.visibility = 'hidden';
		}
	}
}

function isVisible(layer)
{
	if (DOM) {
		return (document.getElementById(layer).style.visibility == 'visible');
	} else if (NS4) {
		return (document.layers[layer].visibility == 'show');
	} else {
		return (document.all[layer].style.visibility == 'visible');
	}
}

function setLeft(layer, x)
{
layerLeft[layer] = x;
	if (DOM && !Opera5) {
		document.getElementById(layer).style.left = x + 'px';
	} else if (Opera5) {
		document.getElementById(layer).style.left = x;
	} else if (NS4) {
		document.layers[layer].left = x;
	} else {
		document.all[layer].style.pixelLeft = x;
	}
}

function getOffsetLeft(layer)
{
	var value = 0;
	if (DOM) {	// Mozilla, Konqueror >= 2.2, Opera >= 5, IE
		object = document.getElementById(layer);
		value = object.offsetLeft;
//alert (object.tagName + ' --- ' + object.offsetLeft);
		while (object.tagName != 'BODY' && object.offsetParent) {
			object = object.offsetParent;
//alert (object.tagName + ' --- ' + object.offsetLeft);
			value += object.offsetLeft;
		}
	} else if (NS4) {
		value = document.layers[layer].pageX;
	} else {	// IE4 IS SIMPLY A BASTARD !!!
		if (document.all['IE4' + layer]) {
			layer = 'IE4' + layer;
		}
		object = document.all[layer];
		value = object.offsetLeft;
		while (object.tagName != 'BODY') {
			object = object.offsetParent;
			value += object.offsetLeft;
		}
	}
	return (value);
}

function setTop(layer, y)
{
layerTop[layer] = y;
	if (DOM && !Opera5) {
		document.getElementById(layer).style.top = y + 'px';
	} else if (Opera5) {
		document.getElementById(layer).style.top = y;
	} else if (NS4) {
		document.layers[layer].top = y;
	} else {
		document.all[layer].style.pixelTop = y;
	}
}

function getOffsetTop(layer)
{
// IE 5.5 and 6.0 behaviour with this function is really strange:
// in some cases, they return a really too large value...
// ... after all, IE is buggy, nothing new
	var value = 0;
	if (DOM) {
		object = document.getElementById(layer);
		value = object.offsetTop;
		while (object.tagName != 'BODY' && object.offsetParent) {
			object = object.offsetParent;
			value += object.offsetTop;
		}
	} else if (NS4) {
		value = document.layers[layer].pageY;
	} else {	// IE4 IS SIMPLY A BASTARD !!!
		if (document.all['IE4' + layer]) {
			layer = 'IE4' + layer;
		}
		object = document.all[layer];
		value = object.offsetTop;
		while (object.tagName != 'BODY') {
			object = object.offsetParent;
			value += object.offsetTop;
		}
	}
	return (value);
}

function setWidth(layer, w)
{
	if (DOM) {
		document.getElementById(layer).style.width = w;
	} else if (NS4) {
//		document.layers[layer].width = w;
	} else {
		document.all[layer].style.pixelWidth = w;
	}
}

function getOffsetWidth(layer)
{
	var value = 0;
	if (DOM && !Opera56) {
		value = document.getElementById(layer).offsetWidth;
	} else if (NS4) {
		value = document.layers[layer].document.width;
	} else if (Opera56) {
		value = document.getElementById(layer).style.pixelWidth;
	} else {	// IE4 IS SIMPLY A BASTARD !!!
		if (document.all['IE4' + layer]) {
			layer = 'IE4' + layer;
		}
		value = document.all[layer].offsetWidth;
	}
	return (value);
}

function setHeight(layer, h)	// unused, not tested
{
	if (DOM) {
		document.getElementById(layer).style.height = h;
	} else if (NS4) {
//		document.layers[layer].height = h;
	} else {
		document.all[layer].style.pixelHeight = h;
	}
}

function getOffsetHeight(layer)
{
	var value = 0;
	if (DOM && !Opera56) {
		value = document.getElementById(layer).offsetHeight;
	} else if (NS4) {
		value = document.layers[layer].document.height;
	} else if (Opera56) {
		value = document.getElementById(layer).style.pixelHeight;
	} else {	// IE4 IS SIMPLY A BASTARD !!!
		if (document.all['IE4' + layer]) {
			layer = 'IE4' + layer;
		}
		value = document.all[layer].offsetHeight;
	}
	return (value);
}

function getWindowWidth()
{
	var value = 0;
	if ((DOM && !IE) || NS4 || Konqueror || Opera) {
		value = window.innerWidth;
//	} else if (NS4) {
//		value = document.width;
	} else {	// IE
		if (document.documentElement && document.documentElement.clientWidth) {
			value = document.documentElement.clientWidth;
		} else if (document.body) {
			value = document.body.clientWidth;
		}
	}
	if (isNaN(value)) {
		value = window.innerWidth;
	}
	return (value);
}

function getWindowXOffset()
{
	var value = 0;
	if ((DOM && !IE) || NS4 || Konqueror || Opera) {
		value = window.pageXOffset;
	} else {	// IE
		if (document.documentElement && document.documentElement.scrollLeft) {
			value = document.documentElement.scrollLeft;
		} else if (document.body) {
			value = document.body.scrollLeft;
		}
	}
	return (value);
}

function getWindowHeight()
{
	var value = 0;
	if ((DOM && !IE) || NS4 || Konqueror || Opera) {
		value = window.innerHeight;
	} else {	// IE
		if (document.documentElement && document.documentElement.clientHeight) {
			value = document.documentElement.clientHeight;
		} else if (document.body) {
			value = document.body.clientHeight;
		}
	}
	if (isNaN(value)) {
		value = window.innerHeight;
	}
	return (value);
}

function getWindowYOffset()
{
	var value = 0;
	if ((DOM && !IE) || NS4 || Konqueror || Opera) {
		value = window.pageYOffset;
	} else {	// IE
		if (document.documentElement && document.documentElement.scrollTop) {
			value = document.documentElement.scrollTop;
		} else if (document.body) {
			value = document.body.scrollTop;
		}
	}
	return (value);
}


text:
Simone Biles Gets Royal Welcome At Bush Airport And Returns The Love
Simone Biles returns to Houston to a cheering crowd, including elected officials, and band music.
| Posted on August 24, 2016, 2:54 PM (Last Updated: September 19, 2016, 3:58 PM )
The 4-foot-8-inch gymnast from Spring appeared in the doorway at the international terminal shortly after noon Tuesday.
On cue, the Klein Oak High School band started playing and the crowd cheered.
Houston Mayor Sylvester Turner guided Simone Biles through the crowd. They made their way to a podium with a sign that read, "Houston Welcomes Home Simone Biles," along with a picture of four gold and a bronze medal.
Behind them, balloons formed a giant American flag.
"Hi guys, I'm Simone Biles," Biles said with a chuckle. "And I can't thank everyone and all of Houston for coming out to see me today and to welcome me from Rio and… I don't know what else to say, I'm nervous! And I love you guys!"
Mayor Turner congratulated Biles for her accomplishments on the world stage.
"We were excited before the Olympics," he said. "We've been more excited today, the whole Houston region – not just the city of Houston but the whole Houston region. And we're excited about all of those who participated in the Olympics."
The mayor then proclaimed Aug. 24, 2016, "Simone Biles Day" in Houston.
U.S. Rep. Sheila Jackson Lee, R-Houston, said Biles is an inspiration to all boys and girls across the country, "and I want them to know that because of you, Simone, whatever their dream is, they can achieve it."
Jackson Lee then handed Biles a flag that recently flew over the U.S. Capitol in her honor.
Biles was sporting the contagious smile many Americans learned to love during the past two weeks.
The four gold medals and one bronze she won in Rio make her the most decorated U.S. gymnast ever in a single Olympics.
Florian Martin/
Florian Martin-Houston Public Media
Tags houston iah olympics sheila jackson lee simone biles sylvester turner
HPM Local Newscast for 6 pm, Tuesday, July 16, 2019
EPA Needs To Improve Outreach During Disasters In Texas, Houston's Special Ed Enrollment Still Lags National Rate, And CDC Takes Fight Against HIV To Harris County
Florian Martin is currently the News 88.7 business reporter. Florian's stories can frequently be heard on other public radio stations throughout Texas and on NPR nationwide. Some of them have earned him awards from Texas AP Broadcasters, the Houston Press Club, National Association of Real Estate Editors, and Public Radio...
CDC Takes Fight Against HIV To Houston
Study Suggests People Act Unethically At Work If They Leave Their Real Self At Home
As Houston's South Asian Population Grows, So Does The Popularity Of Cricket
Houston Considers Making Its Juvenile Curfew Rule Less Restrictive
Despite Moderate Oil Prices, Houston's Energy Economy Doing Well


text:
Q: Can I apply the variable separation method in this way? after applying the variable separation method to a 2D problem, suppose, I have the following equation
$a\frac{f(x)}{\frac{d\{f(x)\}}{dx}}+b\frac{g(y)}{\frac{d\{g(y)\}}{dy}}=c$
where $a,b,c$ are constants and a 2D function $F(x,y)$ has been decomposed as $F(x,y)=f(x)g(y)$.
Since the left hand side is equals to a constant, can I write
$a\frac{f(x)}{\frac{d\{f(x)\}}{dx}}=P$
and $b\frac{g(y)}{\frac{d\{g(y)\}}{dy}}=Q$
where $P$ and $Q$ are constant with $P\neq Q$

A: Yes, this is true.
You have two functions $r$ and $s$, such that $r(x)+s(y) = c$, where
$$r(x) = a\frac{f(x)}{f'(x)},$$
and
$$s(y) = b\frac{g(y)}{g'(y)}.$$
Let $y_1\neq y_2$, and fix some $x_0$. Then
$$r(x_0)+s(y_1) = c,$$
$$r(x_0)+s(y_2) = c.$$
Subtract the first equation from the second to obtain
$$s(y_2)-s(y_1) = 0.$$
This means that $s(y_2)=s(y_1)$. We chose arbitrary $y_1$ and $y_2$, so the value of $s(y)$ is the same for all $y$, meaning that $s$ is a constant function. Likewise for $r$.

redpajama_set_name: RedPajamaStackExchange


text:
Hautes-Pyrénées (65) is een Frans departement.

Geschiedenis
Het departement was een van de 83 departementen die werden gecreëerd tijdens de Franse Revolutie, op 4 maart 1790 door uitvoering van de wet van 22 december 1789, uitgaande van een deel van de provincie Guyenne.

Geografie

Hautes-Pyrénées wordt omringd door de departementen Pyrénées-Atlantiques, Gers en Haute-Garonne, en verder grenst het aan Spanje. Het departement behoort tot de regio Occitanie.

Demografie
De inwoners van de Hautes-Pyrénées heten Haut-Pyrénéens.

Demografische evolutie sinds 1962

Frankrijk* = exclusief overzeese gebieden

Bron: Recensement Populaire INSEE - 1962 tot 1999 population sans doubles comptes, nadien Population Municipale

Op  had Hautes-Pyrénées  inwoners.

Lijst van de 10 grootste gemeenten in het departement

Zie ook
 Lourdes stad/bedevaartsoord in Hautes-Pyrénées
 Tourmalet bekende berg van de Ronde van Frankrijk
 Gavarnie Toeristisch oord, staat op de werelderfgoedlijst

Afbeeldingen

Externe links
 Préfecture
 Conseil général

redpajama_set_name: RedPajamaWikipedia


90% of pregnant women crave some food or the other.
It is important to eat a well balanced diet.
The terms pregnancy and cravings go hand in hand. There is not a single pregnant woman who doesn't get cravings. From pickles to potato chips and fish to fruits, they crave them all.
It's true that pregnant women have a tendency to crave food and we give you an inside scoop into pregnant women and craving. Also, we will tell you why it happens and what you should do about it.
This does not really start the day you find out you are pregnant. In most of the cases, in the first trimester, that is the first three months, anything and everything puts you off.
You may as well start hating your favorite chicken biryani that you used to savor before pregnancy. Yes, that happens too. No one knows for sure why this happens though. Hormones are not to be blamed entirely.
Real food cravings start around the 4th month of pregnancy. There is, obviously, no harm in eating the foods that pregnant women crave. However, you should always check with your doctor about which foods you should avoid given certain health conditions.
Pregnancy cravings are very different from the normal cravings that we usually get. These cravings are a lot stronger than the regular cravings. There are also a lot of old wives' tales that tell you whether you'll have a boy or a girl when you crave different kinds of food.
But what is it that makes women crave with so much intensity? There is science and research involved in it. For example, sometimes women crave spicy food. Science says that when women sweat after eating spicy food, it brings their body temperature down.
This is important mostly because with pregnancy comes a lot of sweating. And when you sweat, your body automatically cools down. But for some women, sweating doesn't happen so your body makes you crave spicy food. At least this is what science has to say.
What do cravings really mean? If we are to believe some health professionals, at times it could mean a deficiency of some sort in the body. For example, a lot of pregnant women find the smell of dirt or sand very attractive. They might even want to start eating it.
When it does happen, it shows an iron or zinc deficiency. Similarly, a craving for chocolate or anything chocolate-like could warn of a magnesium deficiency.
That being said, there's not enough evidence to suggest that food cravings are linked to deficiency in the body.
The question that arises now is what can you really do about these cravings? Whatever it is, we suggest you eat your most-craved food only in moderation.
It is important to eat a nutrient-rich diet. Eat only small quantities of sweet or overly spicy food items. Chances are that if you eat too much of sugary foods, you may put on more weight that you should. Similarly, eating way too much spicy food can cause you heartburn and acidity.
Heartburn and acidity are two of the most common problems that pregnant women face with. So, a little precaution goes a long way. Most importantly, avoid any food items that are raw or unpasteurized. For example, raw meat, unboiled milk etc.
Reason being that raw and unboiled food items are the birthplace of bacteria which can be harmful to you and your baby.


text:
PureTech challenges Roche's Esbriet in head-to-head IPF trial
Roche's idiopathic pulmonary fibrosis (IPF) therapy Esbriet is already being squeezed by its main rival in the market, and could come under renewed pressure if another competitor from PureTech Health gets approved.
PureTech is developing a modified version of the active ingredient in Esbriet (pirfenidone) that has just been shown to be less likely to cause gastrointestinal side effects than Roche's drug in a proof-of-concept trial.
The company is also planning to move quickly ahead with a truncated FDA registration pathway that could shorten the development time by allowing it to tap into clinical data submitted for Esbriet in IPF.
GI effects such as appetite loss, nausea and diarrhoea are common with Esbriet as well as its main rival in the IPF market, Behringer Ingelheim's Ofev (nintedanib).
In around 50% of cases, the dose of Esbriet is reduced to try to improve tolerability below the FDA-approved dose of 801 mg three times a day, treatment is discontinued, or patients switch to Ofev or vice versa to try to reduce side effect burden, according to PureTech.
The company aims to bring a more patient-friendly therapy for IPF to market based on a deuterated form of pirfenidone – called LYT-100 (deupirfenidone) – that it hopes will retain its efficacy against the progressive fibrosis seen in the lungs of IPF patients with better tolerability.
The first clinical data on the drug in healthy older adults seems to back up that hypothesis. The phase 1 trial showed that GI side effects were 50% less frequent with LYT-100 compared to Esbriet, occurring in 17% and 34% of recipients, respectively.
A phase 2 dose-ranging trial – due to start in the first half of 2022 – will also investigate a higher dose exposure than is currently approved for Esbriet in the hope of showing improved efficacy.
If the company can convince the FDA to accept a filing for LYT-100 via the 505(b)(2) pathway – which would that allows it to reference Esbriet data in its dossier – it could be able to file for approval with a single phase 3 trial.
Esbriet has been playing second fiddle to Ofev in the IPF market, making blockbuster sales of $1.2 billion in 2020 but starting to decline as Boehringer's drug is enjoying buoyant growth. Ofev made $2.34 billion for the German drugmaker in 2020, a rise of around 38%.
The big question for PureTech will be the impact of upcoming patent expiries for both Esbriet and Ofev, allowing cheaper generics to enter the market, plus a string of new IPF candidates with new mechanisms of action in the late-stage pipeline.
The ranks of the IPF hopefuls lost a front-runner last year when Gilead Sciences and Galapagos discontinued their ziritaxestat candidate after it failed a phase 3 trial, but there are plenty more still coming through the pipeline.
Those include Fibrogen's pamrevlumab and Roche's PRM-151 in phase 3 – as well as Novartis' ianalumab, Galecto Biotech's TD-139/, Bristol-Myers Squibb's CC-90001 and BMS-986278, and Liminal Bioscience's PBI-4050 in earlier-stage clinical development.
PureTech meanwhile is also exploring the use of LYT-100 in other indications, including as a treatment for respiratory complications of long COVID and breast cancer-related, upper limb secondary lymphoedema, both in phase 2.
Otsuka dips its toe in psychedelic waters, backing Mindset Pharma
Japan approves Pfizer COVID vaccine for children aged...
Biliary tract cancer drug granted orphan drug designation...
Oslo Medicines Initiative asks how to balance innovation...
27 drugmakers to provide generic COVID drug to...
Japan approves Pfizer COVID vaccine for children aged 5 to 11
Biliary tract cancer drug granted orphan drug designation in US
Oslo Medicines Initiative asks how to balance innovation incentivisation with security of access
27 drugmakers to provide generic COVID drug to low-income countries


The Samsung Galaxy S5 may just have been spotted in some leaked benchmarks that see it outpaced by the iPhone 5S.
A benchmark result for a smartphone with the code name Samsung SM-G900F has appeared courtesy of a Rightware Browsermark test.
The Samsung Galaxy S5 benchmark result was 3303.88, which put it behind the Apple iPhone 5S at 3669.91 and surprisingly, the Samsung Galaxy Note 3 as well at 3353.07.
However, Rightware said that the Galaxy S5 is running a slightly older browser, Google Chrome 28, which may affect the results. If it was running Chrome 31, it could have leapfrogged the Galaxy Note 3 and sparred with the iPhone 5S.
The Samsung SM-G900F is slightly different to the model number of the claimed Galaxy S5 that appeared in GFXBench benchmarks last week, but it may just be a variation of the smartphone for a different network provider. We doubt the letter would have any effect on the actual smartphone itself.
The GFXBench benchmarks revealed a preliminary specs sheet for the Samsung Galaxy S5, and suggested it would have a 5.5-inch 2560 x 1440p 2K or Quad HD display.
It should have a quad-core Snapdragon 800 CPU clocked at 2.5GHz and run Android 4.4 KitKat.
The Galaxy S5 is also tipped to have an Adreno 330 GPU and potentially a flexible plastic OLED display.
Of course, both the models listed in the benchmarks could not be the Samsung Galaxy S5 at all. Samsung has already said it has a total of four or five new phones planned for early 2014 already.
The Samsung Galaxy S5 release date has been tipped for March 2014, with an announcement event apparently scheduled for February around MWC 2014 time.


Halal Ethnic Indian and Sri lankan Cuisine at Dahami in Shizuoka City!
Strong points: Authentic Indian and Sri Lankan Cuisines. Take-outs available. Asian beers.
Dahami Restaurant located in a back street away from busy Kitakaido Street is small.
But it serves authentic ethnic cuisines from India and Sri Lanka!
Their prices are very reasonable, especially the lunch sets and bento so popular with nearby office workers.
But even a full lunch is so reasonable!
My advice is to visit it at least in pairs, or better in group of four to be able to share and taste a great variety of dishes!
For all its simplicity the restaurant and its chef are being recognized by the local media!
Left: Second Chef, Mr. Herath Mudiyangelage Wasantha Kumara herath, "Wasantha Herath" for short!
Right: Firts Chef, Mr. Mahanamage Rukman Bandara Weerasingha, "Rukman Bandara" for short!
Traditional Sri Lankan fish and potato balls called "cutlets"!
It was my first visit with a good Sri Lankan friend, Mr. Lalith Prelis, and being three of us we were able to share quite a few scrumptious dishes!
We ordered three types of curry in sauce!
Sri lankan Black Chicken Curry!
We also had some salad.
And ginger tea to wash it all down!
The above is only part of the lunch menu.
Lunch and dinner menus would take quite a few visits to exhaust!
Next time I will have one of those Asian Beers!
Take outs and bentos available!


text:
Microsoft SQL Server 2012 Internals: Special Storage
Large object storage
FILESTREAM and FileTable data
Table and index partitioning
SQL Server provides the capability of data compression, a feature introduced in SQL Server 2008 and available in the Enterprise edition only. Compression can reduce the size of your tables by exploiting existing inefficiencies in the actual data. These inefficiencies can be grouped into two general categories.
The first category relates to storage of individual data values when they are stored in columns defined using the maximum possible size. For example, a table might need to define a quantity column as int because occasionally you could be storing values larger than 32,767, which is the maximum smallint value. However, int columns always need 4 bytes, and if most of your quantity values are less than 100, those values could be stored in tinyint columns, which need only 1 byte of storage. The Row Compression feature of SQL Server can compress individual columns of data to use only the actual amount of space required.
The second type of inefficiency in the data storage occurs when the data on a page contains duplicate values or common prefixes across columns and rows. This inefficiency can be minimized by storing the repeating values only once and then referencing those values from other columns. The Page Compression feature of SQL Server can compress the data on a page by maintaining entries containing common prefixes or repeating values. Note that when you choose to apply page compression to a table or index, SQL Server always also applies Row Compression.
Vardecimal
SQL Server 2005 SP2 introduced a simple form of compression, which could be applied only to columns defined using the decimal data type. (Keep in mind that the data type numeric is completely equivalent to decimal, and anytime I mention decimal, it also means numeric.) In SQL Server 2005, the option must be enabled at both the database level (using the procedure sp_db_vardecimal_storage_format) and at the table level (using the procedure sp_tableoption). In SQL Server 2008, SQL Server 2008 R2, and SQL Server 2012, all user databases are enabled automatically for the vardecimal storage format, so vardecimal must be enabled only for individual tables. Like data compression, which this section looks at in detail, the vardecimal storage format is available only in SQL Server Enterprise edition.
In SQL Server 2005, when both of these stored procedures were run, decimal data in the tables enabled for vardecimal were stored differently. Rather than be treated as fixed-length data, decimal columns are stored in the variable section of the row and use only the number of bytes required. (Chapter 6 looked at the difference between fixed-length data and variable-length data storage.) In addition to all the table partitions that use the vardecimal format for all decimal data, all indexes on the table automatically use the vardecimal format.
Decimal data values are defined with a precision of between 1 and 38 and, depending on the defined precision, they use between 5 and 17 bytes. Fixed-length decimal data uses the same number of bytes for every row, even if the actual data could fit into far fewer bytes. When a table doesn't use the vardecimal storage format, every entry in the table consumes the same number of bytes for each defined decimal column, even if the value of a row is 0, NULL, or some value that can be expressed in a smaller number of bytes, such as the number 3. When vardecimal storage format is enabled for a table, the decimal columns in each row use the minimum amount of space required to store the specified value. Of course, as you saw in Chapter 6, every variable-length column has 2 bytes of additional overhead associated with it, but when storing very small values in a column defined as decimal with a large precision, the space saving can more than make up for those additional 2 bytes. For vardecimal storage, both NULLs and zeros are stored as zero-length data and use only the 2 bytes of overhead.
Although SQL Server 2012 supports the vardecimal format, I recommend that you use row compression when you want to reduce the storage space required by your data rows. Both the table option and the database option for enabling vardecimal storage have been deprecated.
Row compression
You can think of row compression as an extension of the vardecimal storage format. In many situations, SQL Server uses more space than needed to store data values, and without the Row Compression feature, the only control you have is to use a variable-length data type. Any fixed-length data types always use the same amount of space in every row of a table, even if space is wasted.
As mentioned earlier, you can declare a column as type int because occasionally you might need to store values greater than 32,767. An int needs 4 bytes of space, no matter what number is stored, even if the column is NULL. Only character and binary data can be stored in variable-length columns (and, of course, decimal, when that option is enabled). Row compression allows integer values to use only the amount of storage space required, with the minimum being 1 byte. A value of 100 needs only a single byte for storage, and a value of 1,000 needs 2 bytes. The storage engine also includes an optimization that allows zero and NULL to use no storage space for the data itself.
Later, this section provides the details about compressed data storage. Starting in SQL Server 2008 R2, row compression also can compress Unicode data. Rather than each Unicode character always be stored in two bytes, if the character needs only a single byte, it is stored only in a single byte.
Enabling row compression
You can enable compression when creating a table or index, or when using the ALTER TABLE or ALTER INDEX command. Also, if the table or index is partitioned, you can choose to compress just a subset of the partitions. (You'll look at partitioning later in this chapter.)
The script in Listing 8-6 creates two copies of the dbo.Employees table in the AdventureWorks2012 database. When storing row-compressed data, SQL Server treats values that can be stored in 8 bytes or fewer (that is, short columns) differently than it stores data that needs more than 8 bytes (long columns). For this reason, the script updates one of the rows in the new tables so that none of the columns in that row contains more than 8 bytes. The Employees_rowcompressed table is then enabled for row compression, and the Employees_uncompressed table is left uncompressed. A metadata query examining pages allocated to each table is executed against each table so that you can compare the sizes before and after row compression.
Listing 8-6 Comparing two tables to show row compression
USE AdventureWorks2012;
IF OBJECT_ID('Employees_uncompressed') IS NOT NULL
DROP TABLE Employees_uncompressed;
SELECT e.BusinessEntityID, NationalIDNumber, JobTitle,
BirthDate, MaritalStatus, VacationHours,
FirstName, LastName
INTO Employees_uncompressed
FROM HumanResources.Employee e
JOIN Person.Person p
ON e.BusinessEntityID = p.BusinessEntityID;
UPDATE Employees_uncompressed
SET NationalIDNumber = '1111',
JobTitle = 'Boss',
LastName = 'Gato'
WHERE FirstName = 'Ken'
AND LastName = 'Sánchez';
ALTER TABLE dbo.Employees_uncompressed
ADD CONSTRAINT EmployeeUn_ID
PRIMARY KEY (BusinessEntityID);
SELECT OBJECT_NAME(object_id) as name,
rows, data_pages, data_compression_desc
FROM sys.partitions p JOIN sys.allocation_units au
ON p.partition_id = au.container_id
WHERE object_id = object_id('dbo.Employees_uncompressed');
IF OBJECT_ID('Employees_rowcompressed') IS NOT NULL
DROP TABLE Employees_rowcompressed;
SELECT BusinessEntityID, NationalIDNumber, JobTitle,
INTO Employees_rowcompressed
FROM dbo.Employees_uncompressed
ALTER TABLE dbo.Employees_rowcompressed
ADD CONSTRAINT EmployeeR_ID
REBUILD WITH (DATA_COMPRESSION = ROW);
WHERE object_id = object_id('dbo.Employees_rowcompressed');
The dbo.Employees_rowcompressed table is referred to again later in this section, or you can examine it on your own as the details of compressed row storage are covered.
Now you can start looking at the details of row compression, but keep these points in mind:
Row compression is available only in SQL Server 2008, SQL Server 2008 R2, and SQL Server 2012 Enterprise and Developer editions.
Row compression doesn't change the maximum row size of a table or index.
Row compression can't be enabled on a table with any columns defined as SPARSE.
If a table or index has been partitioned, row compression can be enabled on all the partitions or on a subset of the partitions.
New row format
Chapter 6 looked at the format for storing rows that has been used since SQL Server 7.0 and is still used in SQL Server 2012 if you haven't enabled compression. That format is referred to as the FixedVar format because it has a fixed-length data section separate from a variable-length data section. A completely new row format was introduced in SQL Server 2008 for storing compressed rows, and this format is referred to as CD format. The term CD, which stands for "column descriptor," refers to every column having description information contained in the row itself.
You might want to re-examine Figure 6-6 in Chapter 6 as a reminder of what the FixedVar format looks like and compare it to the new CD format. Figure 8-9 shows an abstraction of the CD format. It's difficult to be as specific as Figure 6-6 is because except for the header, the number of bytes in each region is completely dependent on the data in the row.
Figure 8-9 General structure of a CD record.
Each of these sections is described in detail.
Header The row header is always a single byte and roughly corresponds to what Chapter 6 referred to as Status Bits A. The bits have the following meanings.
Bit 0 This bit indicates the type of record; it's 1 for the new CD record format.
Bit 1 This bit indicates that the row contains versioning information.
Bits 2 through 4 Taken as a 3-bit value, these bits indicate what kind of information is stored in the row. The possible values are as follows:
000 Primary record
001 Ghost empty record
010 Forwarding record
011 Ghost data record
100 Forwarded record
101 Ghost forwarded record
110 Index record
111 Ghost index record
Bit 5 This bit indicates that the row contains a long data region (with values greater than 8 bytes in length).
Bits 6 and 7 These bits are not used in SQL Server 2012.
The CD region The CD region is composed of two parts. The first part is either 1 or 2 bytes, indicating the number of short columns. If the most significant bit of the first byte is set to 0, it's a 1-byte field with a maximum value of 127. If a table has more than 127 columns, the most significant bit is 1, and SQL Server uses 2 bytes to represent the number of columns, which can be up to 32,767.
Following the 1 or 2 bytes for the number of columns is the CD array, which uses 4 bits for each column in the table to represent information about the length of the column. Four bits can have 16 different possible values, but in SQL Server 2012, only 13 of them are used.
0 (0×0) indicates that the corresponding column is NULL.
1 (0×1) indicates that the corresponding column is a 0-byte short value.
9 (0×9) indicates that the corresponding column is an 8-byte short value.
10 (0×a) indicates that the corresponding column is long data value and uses no space in the short data region.
11 (0×b) is used for columns of type bit with the value of 1. The corresponding column takes no space in the short data region.
12 (0×c) indicates that the corresponding column is a 1-byte symbol, representing a value in the page dictionary. (Later, the section "Page compression" talks about the dictionary).
The short data region The short data region doesn't need to store the length of each short data value because that information is available in the CD region. However, if table has hundreds of columns, accessing the last columns can be expensive. To minimize this cost, columns are grouped into clusters of 30 columns each and at the beginning of the short data region is an area called the short data cluster array. Each array entry is a single-byte integer and indicates the sum of the sizes of all the data in the previous cluster in the short data region, so that the value is basically a pointer to the first column of the cluster. The first cluster of short data starts right after the cluster array, so no cluster offset is needed for it. A cluster might not have 30 data columns, however, because only columns with a length less than or equal to 8 bytes are stored in the short data region.
As an example, consider a row with 64 columns, and columns 5, 10, 15, 20, 25, 30, 40, 50, and 60 are long data, and the others are short. The CD region contains the following.
A single byte containing the value 64, the number of columns in the CD region.
A CD array of 4 * 64 bits, or 32 bytes, containing information about the length of each column. It has 55 entries with values indicating an actual data length for the short data, and 8 entries of 0xa, indicating long data.
The short data region contains the following.
A short data cluster offset array containing the two values, each containing the length of a short data cluster. In this example, the first cluster, which is all the short data in the first 30 columns, has a length of 92, so the 92 in the offset array indicates that the second cluster starts 92 bytes after the first. The number of clusters can be calculated as (Number of columns – 1) /30. The maximum value for any entry in the cluster array is 240, if all 30 columns were short data of 8 bytes in length.
All the short data values.
Figure 8-10 illustrates the CD region and the short data region with sample data for the row described previously. The CD array is shown in its entirety, with a symbol indicating the length of each of the 64 values. (So the depiction of this array can fit on a page of this book, the actual data values aren't shown.) The first cluster has 24 values in the short data region (6 are long values), the second cluster has 27 (3 are long), and the third cluster has the remaining 4 columns (all short).
Figure 8-10 The CD region and short data region in a CD record.
To locate the entry for a short column value in the short data region, the short data cluster array is first examined to determine the start address of the containing cluster for the column in the short data region.
The long data region Any data in the row longer than 8 bytes is stored in the long data region. This includes complex columns, which don't contain actual data but instead contain information necessary to locate data stored off the row. This can include large object data and row overflow data pointers. Unlike short data, where the length can be stored simply in the CD array, long data needs an actual offset value to allow SQL Server to determine the location of each value. This offset array looks very similar to the offset array discussed in Chapter 6 for the FixedVar records.
The long data region is composed of three parts: an offset array, a long data cluster array, and the long data.
The offset array is composed of the following.
A 1-byte header in which currently only the first two bits are used Bit 0 indicates whether the long data region contains any 2-byte offset values. Currently, this value is always 1, because all offsets are always 2 bytes. Bit 1 indicates whether the long data region contains any complex columns.
A 2-byte value indicating the number of offsets to follow The most significant bit in the first byte of the offset value indicates whether the corresponding entry in the long data region is a complex column. The rest of the bits/bytes in the array entry store the ending offset value for the corresponding entry in the long data region.
Similar to the cluster array for the short data, the long data cluster array is used to limit the cost of finding columns near the end of a long list of columns. It has one entry for each 30-column cluster (except the last one). Because the offset of each long data column is already stored in the offset array, the cluster array just needs to keep track of how many of the long data values are in each cluster. Each value is a 1-byte integer representing the number of long data columns in that cluster. Just as for the short data cluster, the number of entries in the cluster array can be computed as (Number of columns in the table – 1)/30.
Figure 8-11 illustrates the long data region for the row described previously, with 64 columns, nine of which are long. Values for the offsets aren't included for space considerations. The long data cluster array has two entries indicating that six of the values are in the first cluster and two are in the second. The remaining values are in the last cluster.
Figure 8-11 The long data region of a CD record.
Special information The end of the row contains three optional pieces of information. The existence of any or all of this information is indicated by bits in the 1-byte header at the very beginning of the row.
Forwarding pointer This value is used when a heap contains a forwarding stub that points to a new location to which the original row has been moved. Chapter 6 discussed forwarding pointers. The forwarding pointer contains three header bytes and an 8-byte row ID.
Back pointer This value is used in a row that has been forwarded to indicate the original location of the row. It's stored as an 8-byte Row ID.
Versioning info When a row is modified under one of the snapshot-based isolation levels, SQL Server adds 14 bytes of versioning information to the row. Chapter 13 discusses row versioning and Snapshot isolation.
Now look at the actual bytes in two of the rows in the dbo.Employees_rowcompressed table created earlier in Listing 8-6. The DBCC PAGE command gives additional information about compressed rows and pages. In particular, before the bytes for the row are shown, DBCC PAGE displays the CD array. For the first row returned on the first page in the dbo.Employees_rowcompressed table, all the columns contain short data. The row has the data values shown here:
Click to view larger image
For short data, the CD array contains the actual length of each of the columns, and you can see the following information for the first row in the DBCC PAGE output:
CD array entry = Column 1 (cluster 0, CD array offset 0): 0x02 (ONE_BYTE_SHORT)
CD array entry = Column 2 (cluster 0, CD array offset 0): 0x06 (FIVE_BYTE_SHORT)
CD array entry = Column 4 (cluster 0, CD array offset 1): 0x04 (THREE_BYTE_SHORT)
So the first column has a CD code of 0x02, which indicates a 1-byte value, and, as you can see in the data row, is the integer 1. The second column contains a 5-byte value and is the Unicode string 1111. Notice that compressed Unicode strings are always an odd number of bytes. This is how SQL Server determines that the string has actually been compressed, because an uncompressed Unicode string—which needs 2 bytes for each character—will always be an even number of bytes. Because the Unicode string has an even number of characters, SQL Server adds a single byte 0x01 as a terminator. In Figure 8-12, which shows the DBCC PAGE output for the row contents, you can see that three strings have the 0x01 terminator to make their length odd: '1111', 'Boss', and 'Gato'. I'll leave it to you to inspect the codes for the remaining columns.
Figure 8-12 A compressed row with eight short data columns.
Now look at a row with some long columns. The 22nd row on the page (Slot 21) has three long columns in the data values shown here:
The CD array for this row looks like the following:
CD array entry = Column 2 (cluster 0, CD array offset 0): 0x0a (LONG)
CD array entry = Column 7 (cluster 0, CD array offset 3): 0x08 (SEVEN_BYTE_SHORT)
Figure 8-13 shows the bytes that DBCC PAGE returns for this data row. The bytes in the long data region are boldfaced.
Figure 8-13 A compressed row with five short data columns and three long.
Notice the following in the first part of the row, before the long data region.
The first byte in the row is 0x21, indicating that not only is this row in the new CD record format, but also that the row contains a long data region.
The second byte indicates eight columns in the table, just as for the first row.
The following 4 bytes for the CD array has three values of a, which indicate long values not included in the short data region.
The short data values are listed in order after the CD array and are as follows:
The BusinessEntityID is 1 byte, with the value 0x96, or +22.
The Birthdate is 3 bytes.
The MaritalStatus is 1 byte, with the value 0x0053, or 'S'.
The VacationHours is 1 byte, with the value 0xad, or +45.
The FirstName is 7 bytes, with the value 53617269796110 or 'Sariya'.
The Long Data Region Offset Array is 8 bytes long, as follows.
The first byte is 0x01, which indicates that the row-offset positions are 2 bytes long.
The second byte is 0x03, which indicates three columns in the long data region.
The next 6 bytes are the 2-byte offsets for each of the three values. Notice that the offset refers to position the column ends with the Long Data area itself.
The first 2-byte offset is 0x0009, which indicates that the first long value is 9 bytes long.
The second 2-byte offset is 001e, or 30, which indicates that the second long value ends 21 bytes after the first. The second value is Marketing Specialist, which is a 21-byte string.
The third 2-byte offset is 0x002f, or 47, which indicates the third value, Harnpadoungsataya, ends 17 bytes after the second long value.
Fewer than 30 columns means no Long Data Cluster Array, but the data values are stored immediately after the Long Data Region Offset Array.
Because of space constraints, this chapter won't show you the details of a row with multiple column clusters (that is, more than 30 columns), but you should have enough information to start exploring such rows on your own.
Page compression
In addition to storing rows in a compressed format to minimize the space required, SQL Server 2012 can compress whole pages by isolating and reusing repeating patterns of bytes on the page.
Unlike row compression, page compression is applied only after a page is full, and only if SQL Server determines that compressing the page saves a meaningful amount of space. (You'll find out what that amount is later in this section.) Keep the following points in mind when planning for page compression.
Page compression is available only in the SQL Server 2008, SQL Server 2008 R2, and SQL Server 2012 Enterprise and Developer editions.
Page compression always includes row compression—that is, if you enable page compression for a table, row compression is automatically enabled.
When compressing a B-tree, only the leaf level can be page compressed. For performance reasons, the node levels are left uncompressed.
If a table or index has been partitioned, page compression can be enabled on all the partitions or on a subset of the partitions.
The code in Listing 8-7 makes another copy of the dbo.Employees table and applies page compression to it. It then captures the page location and linkage information from DBCC IND for the three tables: dbo.Employees_uncompressed, dbo.Employees_rowcompressed, and dbo. Employees_pagecompressed. The code then uses the captured information to report on the number of data pages in each of the three tables.
Listing 8-7 Applying page compression to a table
IF OBJECT_ID('Employees_pagecompressed') IS NOT NULL
DROP TABLE Employees_pagecompressed;
INTO Employees_pagecompressed
ALTER TABLE dbo.Employees_pagecompressed
ADD CONSTRAINT EmployeeP_ID
REBUILD WITH (DATA_COMPRESSION = PAGE);
WHERE object_id = object_id('dbo.Employees_pagecompressed');
SELECT object_name(object_id) as Table_Name, count(*) as Page_Count
FROM sys.dm_db_database_page_allocations(db_id('AdventureWorks2012'), null, null, null,
'DETAILED')
WHERE object_name(object_id) like ('Employees%compressed')
AND page_type_desc = 'DATA_PAGE'
GROUP BY object_name(object_id);
If you run this script, notice in the output that row compression reduced the size of this small table from five pages to three, and then page compression further reduced the size from three pages to two.
SQL Server can perform two different operations to try to compress a page by using common values: column prefix compression and dictionary compression.
Column prefix compression
As the name implies, column prefix compression works on data columns in the table being compressed, but it looks only at the column values on a single page. For each column, SQL Server chooses a common prefix that can be used to reduce the storage space required for values in that column. The longest value in the column that contains that prefix is chosen as the anchor value. Each column is then stored—not as the actual data value, but as a delta from the anchor value. Suppose that you have the following character values in a column of a table to be page-compressed:
SQL Server might note that DEE is a useful common prefix, so DEED is chosen as the anchor value. Each column would be stored as the difference between its value and the anchor value. This difference is stored as a two-part value: the number of characters from the anchor to use and the additional characters to append. So DEEM is stored as <3><M>, meaning the value uses the first three characters from the common prefix and appends a single character, M, to it. DEED is stored as an empty string (but not null) to indicate it matched the prefix exactly. DEE is stored as <3>, with the second part empty, because no additional characters can be appended. The list of column values is replaced by the values shown here:
DEEM -> <3><M>
DEE -> <3><>
FFF -> <><FFF>
DEED -> <><>
DAN -> <1><AN>
Keep in mind that the compressed row is stored in the CD record format, so the CD array value has a special encoding to indicate the value is actually NULL. If the replacement value is <><>, and the encoding doesn't indicate NULL, the value matches the prefix exactly.
SQL Server applies the prefix detection and value replacement algorithm to every column and creates a new row called an anchor record to store the anchor values for each column. If no useful prefix can be found, the value in the anchor record is NULL, and then all the values in the column are stored just as they are.
Figure 8-14 shows an image of six rows in a table page compression, and then shows the six rows after the anchor record has been created and the substitutions have been made for the actual data values.
Figure 8-14 Before and after column prefix compression.
Dictionary compression
After prefix compression is applied to every column individually, the second phase of page compression looks at all values on the page to find duplicates in any column of any row, even if they have been encoded to reflect prefix usage. You can see in the bottom part of Figure 8-16 that two of the values occur multiple times: <3><> occurs three times and <1><AN> occurs twice. The process of detecting duplicate values is data type–agnostic, so values in completely different columns could be the same in their binary representation. For example, a 1-byte character is represented in hex as 0x54, and it would be seen as a duplicate of the 1-byte integer 84, which is also represented in hex as 0x54. The dictionary is stored as a set of symbols, each of which corresponds to a duplicated value on the data page. After the symbols and data values are determined, each occurrence of one of the duplicated values is replaced by the symbol. SQL Server recognizes that the value actually stored in the column is a symbol and not a data value by examining the encoding in the CD array. Values which have been replaced by symbols have a CD array value of 0xc. Figure 8-15 shows the data from Figure 8-14 after replacing the five values with symbols.
Figure 8-15 A page compressed with dictionary compression.
Not every page in a compressed table has both an anchor record for prefixes and a dictionary. If no useful prefix values are available, the page might have just a dictionary. If no values repeat often enough that replacing them with symbols saves space, the page might have just an anchor record. Of course, some pages might have neither an anchor record nor a dictionary if the data on the page has no patterns at all.
When a page is compressed, only one main structural change occurs. SQL Server adds a hidden row right after the page header (at byte offset 96, or 0x60) called the compression information (CI) record. Figure 8-16 shows the structure of the CI record.
Figure 8-16 Structure of a CI record.
The CI record doesn't have an entry in the slot array for the page, but it's always at the same location. Also, a bit in the page header indicates that the page is page-compressed, so SQL Server looks for the CI record. If you use DBCC PAGE to dump a page, the page header information contains a value called m_typeFlagBits. If this value is 0x80, the page is compressed.
You can run the following script to use the sys.dm_db_database_page_allocations function to find the page ID (PID) of the first page and the file ID (FID) of the first page for each of the three tables that you've been exploring. You can use this information to examine the page with DBCC PAGE. Notice that only the page for Employees_pagecompressed has the m_typeFlagBits value set to 0x80.
SELECT object_name(object_id) as Table_Name, allocated_page_file_id as First_Page_FID,
allocated_page_page_id as First_Page_PID
FROM sys.dm_db_database_page_allocations(db_id('AdventureWorks2012'),
null, null, null, 'DETAILED')
AND previous_page_page_id  IS NULL;
Using DBCC PAGE to look at a page-compressed page does provide information about the contents of the CI record, and you'll look at some of that information after examining what each section means.
Header The header is a 1-byte value keeping track of information about the CI. Bit 0 indicates the version, which in SQL Server 2012 is always 0. Bit 1 indicates whether the CI has an anchor record, and bit 2 indicates whether the CI has a dictionary. The rest of the bits are unused.
PageModCount The PageModCount value keeps track of the changes to this particular page and is used when determining whether the compression on the page should be reevaluated, and a new CI record built. The next section, "Page compression analysis," talks more about how this value is used.
Offsets The offsets contain values to help SQL Server find the dictionary. It contains a value indicating the page offset for the end of the anchor record and a value indicating the page offset for the end of the CI record itself.
Anchor Record The anchor record looks exactly like a regular CD record on the page, including the record header, the CD array, and both a short data area and a long data area. The values stored in the data area are the common prefix values for each column, some of which might be NULL.
Dictionary The dictionary area is composed of three sections.
A 2-byte field containing a numeric value representing the number of entries in the dictionary
An offset array of 2-byte entries, indicating the end offset of each dictionary entry relative to the start of the dictionary data section
The actual dictionary data entries
Remember that each dictionary entry is a byte string that is replaced in the regular data rows by a symbol. The symbol is simply an integer value from 0 to N. Also, remember that the byte strings are data type–independent—that is, they are just bytes. After SQL Server determines what recurring values are stored in the dictionary, it sorts the list first by data length, then by data value, and then assigns the symbols in order. So suppose that the values to be stored in the dictionary are these:
0x 53 51 4C
0x FF F8
0x DA 15 43 77 64
0x 34 F3 B6 22 CD
Table 8-9 shows the sorted dictionary, along with the length and symbol for each entry.
Table 8-9 Values in a page compression dictionary
The dictionary area would then resemble Figure 8-17.
Figure 8-17 Dictionary area in a compression information record.
Note that the dictionary never actually stores the symbol values. They are stored only in the data records that need to use the dictionary. Because they are simply integers, they can be used as an index into the offset list to find the appropriate dictionary replacement value. For example, if a row on the page contains the dictionary symbol [2], SQL Server looks in the offset list for the third entry, which in Figure 8-17 ends at offset 0800 from the start of the dictionary. SQL Server then finds the value that ends at that byte, which is 0x 53 51 4C. If this byte string was stored in a char or varchar column—that is, a single-byte character string—it would correspond to the character string SQL.
Earlier in this chapter, you saw that the DBCC PAGE output displays the CD array for compressed rows. For compressed pages, DBCC PAGE shows the CI record and details about the anchor record within it. Also, with format 3, DBCC PAGE shows details about the dictionary entries. When I captured the DBCC PAGE in format 3 for the first page of my Employees_pagecompressed table and copied it to a Microsoft Office Word document, it needed 384 pages. Needless to say, I won't show you all that output (just copying the CI record information required 10 pages, which is still too much to show in this book). You can explore the output of DBCC PAGE for the tables with compressed pages on your own.
Page compression analysis
This section covers some of the details regarding how SQL Server determines whether to compress a page and what values it uses for the anchor record and the dictionary. Row compression is always performed when requested, but page compression depends on the amount of space that can be saved. However, the actual work of compressing the rows has to wait until after page compression is performed. Because both types of page compression—prefix substitution and dictionary symbol substitution—replace the actual data values with encodings, the row can't be compressed until SQL Server determines what encodings will replace the actual data.
When page compression is first enabled for a table or partition, SQL Server goes through every full page to determine the possible space savings. (Any pages that aren't full aren't considered for compression.) This compression analysis actually creates the anchor record, modifies all the columns to reflect the anchor values, and generates the dictionary. Then it compresses each row. If the new compressed page can hold at least five more rows, or 25 percent more rows than the current page (whichever is larger), the compressed page replaces the uncompressed page. If compressing the page doesn't result in this much savings, the compressed page is discarded.
When determining what values to use for the anchor record on a compressed page, SQL Server needs to look at every byte in every row, one column at a time. As it scans the column, it also keeps track of possible dictionary entries that can be used in multiple columns. The anchor record values can be determined for each column in a single pass—that is, by the time all the bytes in all the rows for the first column are examined once, SQL Server has determined the anchor record value for that column or has determined that no anchor record value will save sufficient space.
As SQL Server examines each column, it collects a list of possible dictionary entries. As discussed earlier, the dictionary contains values that occur enough times on the page so that replacing them with a symbol is cost-effective in terms of space. For each possible dictionary entry, SQL Server keeps track of the value, its size, and the count of occurrences. If (size_of_data_value –1) * (count–1) –2 is greater than zero, it means the dictionary replacement saves space, and the value is considered eligible for the dictionary. Because the dictionary symbols are single-byte integers, SQL Server tries can't store more than 255 entries in the dictionary on any page, so if more dictionary entries might be used based on the data on the page, they are sorted by number of occurrences during the analysis, and only the most frequently occurring values are used in the dictionary.
CI record rebuilding
If a table is enabled for either page or row compression, new rows are always compressed before they are inserted into the table. However, the CI record containing the anchor record and the dictionary is rebuilt on an all-or-nothing basis—that is, SQL Server doesn't just add some new entry to the dictionary when new rows are inserted. SQL Server evaluates whether to rebuild the CI record when the page has been changed a sufficient number of times. It keeps track of changes to each page in the PageModCount field of the CI record, and that value is updated every time a row is inserted, updated, or deleted.
If a full page is encountered during a data modification operation, SQL Server examines the PageModCount value. If the PageModCount value is greater than 25 or the value PageModCount/ <number of rows on the page> is greater than 25 percent, SQL Server applies the compression analysis as it does when it first compresses a page. Only when recompressing the page makes room for at least five more rows (or 25 percent more rows than the current page) does the new compressed page replace the old page.
Page compression in a B-tree and page compression in a heap each have important differences.
Compression of B-tree pages For B-trees, only the leaf level is page compressed. When inserting a new row into a B-tree, if the compressed row fits on the page, it is inserted, and nothing more is done. If it doesn't fit, SQL Server tries to recompress the page, according to the conditions described in the preceding section. A successful recompression means that the CI record changed, so the new row must be recompressed and then SQL Server tries to insert it into the page. Again, if it fits, it is simply inserted; if the new compressed row doesn't fit on the page, even after possibly recompressing the page, the page needs to be split. When splitting a compressed page, the CI record is copied to a new page exactly as is, except that the PageModCount value is set to 25. This means that the first time the page gets full, it gets a full analysis to determine whether it should be recompressed. B-tree pages are also checked for possible recompression during index rebuilds (either online or offline) and during shrink operations.
Compression of heap pages Pages in a heap are checked for possible compression only during rebuild and shrink operations. Also, if you drop a clustered index on a table so that it becomes a heap, SQL Server runs compression analysis on any full pages. To make sure that the RowID values stay the same, heaps aren't recompressed during typical data modification operations. Although the PageModCount value is maintained, SQL Server never tries to recompress a page based on the PageModCount value.
Compression metadata
An enormous amount of metadata information relating to data compression doesn't exist. The catalog view sys.partitions has a data_compression column and a data_compression_desc column. The data_compression column has possible values of 0, 1, 2, and 3 corresponding to data_compression_desc values of NONE, ROW, PAGE, and COLUMNSTORE. (Only ROW and PAGE compression are discussed here.) Keep in mind that although row compression is always performed if enabled, page compression isn't. Even if sys.partitions indicates that a table or partition is page compressed, that just means that page compression is enabled. Each page is analyzed individually, and if a page isn't full, or if compression won't save enough space, the page isn't compressed.
You can also inspect the dynamic management function sys.dm_db_index_operational_stats. This table-valued function returns the following compression-related columns.
page_compression_attempt_count The number of pages evaluated for PAGE-level compression for specific partitions of a table, index, or indexed view. This includes pages that weren't compressed because significant savings couldn't be achieved.
page_compression_success_count The number of data pages that were compressed by using PAGE compression for specific partitions of a table, index, or indexed view.
SQL Server also provides a stored procedure called sp_estimate_data_compression_savings, which can give you some idea of whether compression provides a large space savings. This procedure samples up to 5,000 pages of the table and creates an equivalent table with the sampled pages in tempdb. Using this temporary table, SQL Server can estimate the new table size for the requested compression state (NONE, ROW, or PAGE). Compression can be evaluated for whole tables or parts of tables, including heaps, clustered indexes, nonclustered indexes, indexed views, and table and index partitions.
Keep in mind that the result is only an estimate and your actual savings can vary widely based on the fill factor and the size of the rows. If the procedure indicates that you can reduce your row size by 40 percent, you might not actually get a 40 percent space savings for the whole table. For example, if you have a row that's 8,000 bytes long and you reduce its size by 40 percent, you still can fit only one row on a data page, and your table still needs the same number of pages.
Running sp_estimate_data_compression_savings might yield results that indicate that the table will grow. This can happen when many rows in the table use almost the whole maximum size of the data types, and the addition of the overhead needed for the compression information is more than the savings from compression.
If the table is already compressed, you can use this procedure to estimate the size of the table (or index) if it were to be uncompressed.
The main motivation for compressing your data is to save space with extremely large tables, such as data warehouse fact tables. A second goal is to increase performance when scanning a table for reporting purposes, because far fewer pages need to be read. Keep in mind that compression comes at a cost: You see a tradeoff between the space savings and the extra CPU overhead to compress the data for storage and then uncompress the data when it needs to be used. On a CPU-bound system, you might find that compressing your data can actually slow down your system considerably.
Page compression provides the most benefit for I/O-bound systems, with tables for which the data is written once and then read repeatedly, as in the situations mentioned in the preceding paragraph: data warehousing and reporting. For environments with heavy read and write activity, such as online transaction processing (OLTP) applications, you might want to consider enabling row compression only and avoid the costs of analyzing the pages and rebuilding the CI record. In this case, the CPU overhead is minimal. In fact, row compression is highly optimized so that it's visible only at the storage engine layer. The relational engine (query processor) doesn't need to deal with compressed rows at all. The relational engine sends uncompressed rows to the storage engine, which compresses them if required. When returning rows to the relational engine, the storage engine waits as long as it can before uncompressing them. In the storage engine, comparisons can be done on compressed data, as internal conversions can convert a data type to its compressed form before comparing to data in the table. Also, only columns requested by the relational engine need to be uncompressed, as opposed to uncompressing an entire row.
Compression and logging In general, SQL Server logs only uncompressed data because the log needs to be read in an uncompressed format. This means that logging changes to compressed records has a greater performance impact because each row needs to be uncompressed and decoded (from the anchor record and dictionary) before writing to the log. This is another reason compression gives you more benefit on primarily read-only systems, where logging is minimal.
SQL Server writes compressed data to the log in a few situations. The most common situation is when a page is split. SQL Server writes the compressed rows as it logs the data movement during the split operation.
Compression and the version store Chapter 13 covers the version store during a discussion about Snapshot isolation, but I want to mention briefly here how the version store interacts with compression. SQL Server can write compressed rows to the version store, and the version store processing can traverse older versions in their compressed form. However, the version store doesn't support page compression, so the rows in the version store can't contain encodings of the anchor record prefixes and the page dictionary. So anytime any row from a compressed page needs to be versioned, the page must be uncompressed first.
The version store is used for both varieties of Snapshot isolation (full snapshot and read-committed snapshot) and is also used for storing the before-and-after images of changed data when triggers are fired. (These images are visible in the logical tables inserted and deleted.) Keep this in mind when evaluating the costs of compression. Snapshot isolation has lots of overhead already, and adding page compression into the mix affects performance even more.
Chapter 1, "SQL Server 2012 architecture and configuration," briefly mentioned backup compression when discussing configuration options. It's worth repeating that the algorithm used for compressing backups is very different than the database compression algorithms discussed in this chapter. Backup compression uses an algorithm very similar to zipping, where it's just looking for patterns in the data. Even after tables and indexes are compressed by using the data compression techniques, they still can be compressed further by using the backup compression algorithms.
Page compression looks only for prefix patterns and can still leave other patterns uncompressed, including common suffixes. Page compression eliminates redundant strings, but in most cases plenty of strings aren't redundant, and string data compresses very well using zip-type algorithms.
Also, a fair amount of space in a database constitutes overhead, such as unallocated slots on pages and unallocated pages in allocated extents. Depending on whether Instant File Initialization was used, and what was on the disk previously if it was, the background data can actually compress very well.
Thus, making a compressed backup of a database that has many compressed tables and indexes can provide additional space savings for the backup set.
Microsoft SQL Server 2012 Internals


Home / Wizards Seasons / 2016-17 Wizards / Who is Brandon Jennings Now, After All These Years?
So, the Wizards are expected to sign Brandon Jennings after he was waived by the Knicks and no team chose to claim him, along with his $5 million salary, on the wire. Jennings is making a painful transition from young starter with star potential to veteran with a serious injury history, a transition and career trend that may or may not be reversible.
What can Jennings do, along with recent trade pickup Bojan Bogdanovic, to mitigate the foibles of a weak Washington bench? TAI's Conor Dirks and Rashad Mobley discuss, below.
The Wizards ain't the type of team to chase players in an early-March scramble to upgrade before the playoffs. Or at least they don't typically chase players that are being chased down by other teams. For reference, the last few late-winter or early-spring signings by the Wizards have been: Drew Gooden in February 2014; Touré Murry and Will Bynum in March 2015; J.J. Hickson in February 2016; and Marcus Thornton in March 2016. By any measure, none of these players were drawing interest from contending teams. Drew Gooden was jacking up 3-pointers in an Bethesda LA Fitness before signing with the Wizards.
But what had happened was: The Knicks waived Brandon Jennings, a former lottery pick who was averaging 15.4 points and 6.6 assists for the Pistons back in early 2015 when he tore his ACL, and many immediately believed the Wizards would pursue the sudden free agent. Jennings' waiver was unusual. The Knicks are not a good team, have little point guard depth behind what remains of Derrick Rose, and struggle to score. Jennings, a first-year Knick, didn't click with the Zen Doofus, Phil Jackson. Jackson is an all-time great coach who has systematically alienated almost every important player on New York's roster in his role as president of basketball operations, seemingly building towards nothing. At this point, Jackson's rejection of Jennings should be seen as a badge of quality.
But lest we become blinded by Jennings' name, it's important to note that Jennings is not having a good year. He's shooting 38 percent overall, and 34 percent on 3-pointers (down from career-highs of 41.8% and 37.5% in 2011-12 and 2012-13, respectively), while sporting a career-worst turnover percentage on a career-low usage rate.
Still, there's a good basketball player in there. Maybe. And the Wizards can't afford to care, either way. Washington is boxed in by an offseason that was utterly wasted on flop free agent signings (Nicholson, Thornton, Burke), the hard luck of a big-money signing that has barely played (Mahinmi), and Trey Burke, who isn't any better this season than he's been in any other season since college. The Wizards needed to secure some semblance of quality backup point guard minutes. Wall can't play every minute of every game.
But let me tell you what I remember about Brandon Jennings. I remember that he played for Lottomatica Virtus Roma in Italy instead of working for free for one of our great American universities. I remember a fantastic article that described how Jennings actively chose to drive a $26,000 Ford Edge rather than a car more befitting his station as an NBA lottery pick (while then-teammate Michael Redd opted for a Ferrari). I remember him banking 55 points in one game during his rookie season. I remember him falling out with Milwaukee after a pretty good year in which he tallied a 2.1 on the enigmatic VORP (Value over Replacement Player) rating, a rating higher than Bradley Beal (1.9) is scoring in this—his best—season. I remember that he kept up his above-average play in Detroit despite an awkward fit, and that he bounced from Detroit to Orlando to New York after a brutal ACL injury. He hasn't been the same.
That's a wealth of experience, and Jennings lived through the tyranny of the triangle in New York. I'm cautiously optimistic. What say you, Rashad?
First, let us take the time to acknowledge that we live in a world where Brandon Jennings begs off the New York f-ing Knicks, says he wants to play for a contender, and is now on the cusp of wearing a Washington Wizards uniform. It isn't quite the Sally Field moment Paul Pierce gave us two years ago when he chose the Wizards, but it is significant (to me, at least) that the words "contender" and "Wizards" seem to be synonyms. Yes, even after two lackluster post-All-Star game losses that preceded last night's impressive win against the Golden State Warriors (sans KD).
Second, I think Ernie Grunfeld deserves some slight commendation for his moves in the past week. Two mistakes of his (Andrew Nicholson and Marcus Thornton) are gone, and another mistake/disappointment (Trey Burke) will be benched, moved down in the rotation, or perhaps even cut. In return, Grunfeld received Chris McCullough, who could pay dividends later, Bojan Bogdanovic, who already has played well in a limited sample size, and now Brandon Jennings.
There are certainly reasons to be nervous about Jennings. If he sees his first two shots go down on any given night, he morphs into a 5-foot-11 shooting guard and he ceases to get other players involved. There are also times when he over-dribbles to and from the basket without having any real plan of action with the basketball. During his tenure as a Knick, there were rumblings that he gets under the skin of his teammates by calling them out via the media—something I saw firsthand when the Knicks visited the Verizon Center this past November. Jennings was less than thrilled at the effort of his teammates, as well as their inability to carry out Coach Jeff Hornacek's instructions. To be fair, Jennings also called out his own play earlier this season, which means he's not afraid to hold himself accountable. But this is not a new development: Jennings put Coach Jim Boylan on blast when they both were members of the Milwaukee Bucks. Apparently there's vocal, and then there's Brandon Jennings.
This type of vocal spiriting would not faze a team like the Warriors or the Cleveland Cavaliers, because the incumbent leaders on those teams (Draymond Green, Steph Curry, Kevin Durant and LeBron James, et al) are comfortable with who they are as players and the hierarchy of talent. The Wizards have been winning at an impressive clip since December, and that good-smelling deodorant has smothered whiffs Wall and Beal allegedly not getting along or Marcin Gortat criticizing the bench. Should the Wizards struggle on one or both of their upcoming road trips, perhaps some internal strife emerges and perhaps Jennings speaks out of turn and louder than Wall, Beal, or Gortat. That could create the very locker room tension that a young(ish), playoff-bound, Paul Pierce-less team may not be able to overcome.
Last night against the Warriors, when Coach Brooks was experimenting with Beal at the point guard, there were at least three or four possessions when Beal came to Bogdanovic's side of the floor for a little two-man action. Bogdanovic did score on a contested 3-pointer during one possession but during the others there was little space for either player to operate, and it was quite easy for the Warriors to defend them. This is not a knock on Beal's ability to facilitate, but when he does—which he frequently was asked to do during the Wittman era—Beal is a shooter first. Attention paid to Beal off the ball serves to free Bogdanovic, Oubre, or even Porter to hit an open shot on the other side of the floor. Now, if Jennings is running the point, the defense has to respect his ability to score off the dribble, get to the basket (something no current Wizards backup point guard can do consistently), or find the open man. This keeps defenses honest, and it will allow Brooks to run the second-team offense more like the starters, which theoretically should lead to a more seamless and productive bench.
Given poor performances by the Wizards' bench in two out of the last three games, and given that the Wizards either tried, failed or didn't pursue viable options like Deron Willliams, Jarrett Jack, Mario Chalmers, and Jose Calderon, Brandon Jennings was the option they had to take. I'm optimistic that this is an upgrade. I know the risks involved, but this feels like a winning combination.


text:
Q: Construct smooth mapping $f: B^{n + 1} \to S^n$ with two singularities at which $f$ has degree $+/- 1$. I'm currently working through a paper by Pjotr Hajlasz who wants to show that

For smooth manifolds $M,N$, if $\pi_{[p]}(N) \neq 0$ and $1 \leq p < n = \dim M$, then the smooth mappings $C^\infty(M,N)$ are not dense in $W^{1,p}(M,N)$.

In his proof he asserts that

"It is easy to construct a smooth mapping $f: B^{[p]+1} \to S^{[p]}$ with two singularities such that $f$ restricted to small spheres centered at the singularities have degree +1 and -1 respectively."

How would one go about to construct or at least think about such smooth mapping?
I'd appreciate any help!

A: Use the fact that $B^{n+1}\setminus\{p,q\}\cong S^n\times(0,1)$, and define your map $f\colon S^n\times(0,1)\to S^n$ to just be projection onto the first factor.


WASHINGTON (AP) ? President Barack Obama is channeling President Theodore Roosevelt, embracing a mantle of economic fairness for the nation's middle class Tuesday that draws parallels to the progressive reformer's calls for a "square deal" for regular Americans more than a century ago.
Obama intends to use a speech in small town Osawatomie, Kan. ? where Roosevelt delivered his "New Nationalism" address in 1910 ? to lay out economic themes of giving middle-class workers a fair shake and greater financial security, concepts the president will probably return to repeatedly during the 2012 campaign.
Only a month before Republican voters begin choosing a presidential nominee, the White House said Obama would describe this as a "make-or-break moment" for the middle class and those hoping to join it that demands balance and rules of the road to help strengthen working families.
Obama has frequently turned to former presidents ? many Republicans ? to offer examples of why Congress should support his agenda.
Last week, the president told donors in New York that as a nation, "we all must have a stake in each other's success." He reminded supporters that President Abraham Lincoln launched the Transcontinental Railroad, the National Academy of Sciences and the first land-grant colleges while Theodore Roosevelt called for a progressive income tax.
"Our politics may be divided, but most Americans still understand we will stand or fall together," he said in New York.