As the first half of the 2010-11 season drew to a close and the second half just beginning, the month of December featured some great performances, fantastic finishes, and a few surprises. Hockey's Future takes a look back at what happened in the final month of the 2010 calendar year. Unless otherwise noted, all stats are current as of Jan. 5.
Senior Carl Hagelin (NYR) and freshman defenseman Jon Merrill (NJ) each netted a pair of goals to lead Michigan in shutting out archrival Michigan State 5-0 in the Big Chill at the Big House in front of a world record crowd. While the announced attendance was 113,411, according to a news report the Guinness Book of World Records has officially (for now) announced the attendance at 85,451 with the final count to be announced at a later date.
The Wolverines dominated the game right from the puck drop and never looked back. Merrill opened the scoring for Michigan with two goals in a span of 2:50 with power play and even strength tallies in the first period. Two of the Wolverines' three power play goals were scored by Hagelin in the second and third periods. Hagelin also added an assist in the game. Junior David Wohlberg (NJ) closed out the scoring at the 10:45 mark of the third to seal the win for Michigan.
Senior Shawn Hunwick got the surprising start in goal for the Wolverines when fellow senior Bryan Hogan suffered an injury during warm-ups. Hunwick was outstanding, stopping all 34 shots he faced to earn his third win of the season and his second career shutout.
24 players and coaches with NCAA ties representing 16 schools participated in the recent 2011 World Junior Championship (WJC) in Buffalo. The 24 individuals represented four nations – Canada, Finland, Norway and the United States. Boston College and the University of Minnesota led all collegiate teams with three members apiece. The Eagles had three sophomores – forward Chris Kreider (NYR) and defensemen Brian Dumoulin (CAR) and Patrick Wey (WSH) playing for Team USA. Three players have ties to the University of Minnesota in freshman forward Nick Bjugstad (FLA) and former Golden Gophers defenseman Nick Leddy (CHI) that represented the US, while freshman forward Erik Haula (MIN) represented Finland.
In addition to Leddy, two other former collegians in forwards Kyle Palmieri (ANA) and Jerry D'Amigo (TOR) donned the red, white and blue in the tournament. Palmieri played at Notre Dame last season, while D'Amigo played at RPI.
Sophomore defenseman Dylan Olsen, who recently opted to leave the University of Minnesota-Duluth to sign with the Chicago Blackhawks, along with former Harvard Crimson standout Louis Leblanc (MON) and Colorado College freshman sensation Jaden Schwartz (STL) represented a formidable Canadian squad in this year's tournament.
Northeastern University recruit Rasmus Juell, playing this season with Cedar Rapids (USHL), represented Norway.
University of Denver's high-flying linemates of sophomore Drew Shore (FLA) and freshman Jason Zucker (MIN) were reunited, albeit briefly, with Team USA. Now-former University of Minnesota-Duluth defensive partners Justin Faulk (CAR) and Dylan Olsen faced one another in the semi-final game with the United States and Canada respectively.
Two of Team USA's coaches – head coach Keith Allain and assistant coach Mark Osiecki also have NCAA ties. Allain serves as the head coach at Yale University, currently the nation's top-ranked team, while Osiecki is the new bench boss at The Ohio State University.
The second round of collegiate holiday tournaments kicked off on Dec. 29 with seven tournaments on the slate as well as the U.S. Hockey Hall of Fame game.
In Storrs, CT, the Princeton Tigers claimed the championship in the 18th annual Toyota UConn Hockey Classic in convincing style, defeating Bowling Green 4-2 and host UConn 4-1 respectively. Freshman defenseman Jeremy Goodwin netted his first career goal which proved to be the championship-winner at the 1:42 mark of the second period. Sophomore defenseman Michael Sdao (OTT) chipped in an assist in the opening game versus the Falcons before being handed a Game-Disqualification and an automatic one-game suspension for fighting.
At Joe Louis Arena in Detroit, the 46th annual Great Lakes Invitational (GLI) took place. Coming off a stellar performance in the Big Chill, the Michigan Wolverines emerged as champions once again despite playing without freshman defenseman Jon Merrill (NJ) and sophomore forward Chris Brown (PHO). The Wolverines defeated co-host Michigan Tech 4-2 before defeating Colorado College 6-5 in overtime in one of the most thrilling games in this year's holiday tournaments. Senior Carl Hagelin (NYR) posted four assists over two games to earn a spot on the All-Tournament team.
Michigan's archrival Michigan State emerged victorious in the GLI third-place game after downing Michigan Tech 5-3. Sophomore Derek Grant (OTT) netted a pair of assists in the win and currently leads the Spartans with 18 points and 15 assists, playing in all 20 games to date.
One of the best tournament performances took place down in Estero, FL in the 11th annual Florida College Classic. After struggling through an inconsistent first half of the season, St. Cloud State got the second half off to a terrific start claiming the tournament championship. The Huskies earned the title after defeating co-host Cornell 4-3 in overtime before handing CCHA powerhouse Miami a stunning 3-4 loss, despite getting only 11 shots on goal. Freshman Nic Dowd (LA) turned in a sensational performance, netting the championship-winner and adding three assists in two games to earn the tournament's MVP honor.
After going down to Miami in the opening game, the Maine Black Bears got things back on track and defeated Cornell 3-2 in overtime in the tournament's third-place game. Freshman netminder Martin Ouellette (CLB) turned in a solid outing, stopping 21 of the Big Red's 23 shots for his second career win. Junior defenseman Will O'Neill (ATL) chipped in three assists in two games to earn a spot on the All-Tournament team.
Up in Hanover, NH, defending national champion Boston College took the title in the 22nd annual Ledyard National Bank Classic with a hard-fought 6-5 overtime victory over Colgate and a 4-1 win over Mercyhurst respectively. Despite playing without sophomore regulars Chris Kreider (NYR) and defensemen Brian Dumoulin (CAR) and Patrick Wey (WSH), the Eagles continued to show their sheer depth and resilience. Junior Paul Carey (COL) earned the tournament's MVP honor after a stellar performance, posting two goals and two assists to lead Boston College.
Carey's linemate, junior Cam Atkinson (CLB) is among the nation's hottest point producers and currently on a torrid point streak. In his last seven games, Atkinson has posted 14 points (seven goals, seven assists), which includes a five-point (one goal, four assists) performance in the tournament. In his 18 games to date, Atkinson has been held pointless in just three games and goal-less in just six. He currently leads Boston College with 26 points (15 goals, 11 assists).
After a heartbreaking shootout loss to Mercyhurst in the tournament opener, host Dartmouth needed overtime to defeat ECAC-rival Colgate in the third-place game. Senior defenseman Joe Stejskal (MON) netted the game-winner at the 2:31 mark of overtime for his first goal of the season.
One of the wildest of this year's holiday tournaments took place in Minneapolis in the 20th annual Dodge Holiday Classic. Newest WCHA member Bemidji State emerged as the tournament's champions after defeating Ferris State 3-2 and Union College 3-1 respectively. Tournament MVP Dan Bakala was brilliant between the pipes for the Beavers. The junior from Calgary, AB stopped 65 of the 68 combined shots he faced to guide Bemidji State.
In the third-place game, Ferris State and host Minnesota skated to a 2-2 tie after the conclusion of overtime. While it was announced that there would be a shootout if the scored remained tied at the end of the overtime session, Golden Gophers head coach Don Lucia had opted not to go to a shootout, much to the dismay of the Mariucci Arena crowd in attendance. Senior Jay Barriball (STL) netted the game-tying, power play goal at the 7:38 mark of the third period. He currently leads the Golden Gophers with 21 points (11 goals, 10 assists), which includes his team-best seven power play tallies in 20 appearances.
The final two tournaments got underway on New Year's Day.
At Hoffman Estates, Ill, another of the holiday's best tournaments took place as the 3rd annual Shillelagh Tournament got underway. The opening day saw two of the nation's most talent-rich teams go down in defeat as Brown downed Boston University in a resounding 6-1 win, while host Notre Dame fell to Minnesota State-Mankato 4-3. Minnesota State-Mankato's late-game surge that worked so well against the Fighting Irish continued in the championship game versus Brown as the Mavericks posted three goals in the final stanza. Junior Michael Dorr earned the tournament's MVP honor after a sensational five-point (three goals, two assists) performance.
After being humbled by Minnesota State-Mankato in the tournament opener, Notre Dame bounced back in the tournament's third-place game to defeat Boston University in a shootout. Senior Calle Ridderwall netted the lone shootout goal. Officially, the game goes down as a 3-3 tie. Junior Corey Trivino (NYI) posted an assist on all three Boston University goals in the loss.
Up in Burlington, VT, the 15th annual Catamount Cup was taking place. The Ohio State Buckeyes, playing without the services of head coach Mark Osiecki, won the tournament's championship after defeating host Vermont 3-1 and Army 5-3 respectively. Senior C.J. Severyn (CGY) tallied the eventual championship-winner over the Black Knights at the 10:27 mark of the second period.
In addition to various holiday tournaments, the annual U.S. Hockey Hall of Fame (USHHOF) game took place on Dec. 30 with the opening of the brand-new ASMOIL Arena in Duluth as host Minnesota-Duluth faced off against WCHA foe North Dakota. The depleted Fighting Sioux team spoiled the Bulldogs grand opening by handing their host a 5-0 shutout loss. North Dakota won in convincing fashion without freshmen Brock Nelson (NYI) and defenseman Derek Forbort, as well as injured juniors Jason Gregoire (NYI) and Brett Hextall (PHO).
North Dakota's "Pony Express" line of seniors Matt Frattin (TOR), Brad Malone (COL) and Evan Trupp combined for five points (three goals, two assists) in the win. Malone joins Boston College's Cam Atkinson as one of the hottest point producers in the country. He has amassed 10 points (five goals, five assists) in his last five games, which included a pair of goals in the USHHOF game.
Not to be outdone, Frattin has been equally as hot. In his last seven games, the Edmonton, AB native has amassed 11 points, including goals in each of his last six games. Frattin currently leads the nation with 18 goals and leads North Dakota with 26 points. A model of offensive consistency this season, Frattin has been held pointless in just six of the 21 games that he has appeared in thus far.
Fresh off of their second-place finish at the Great Lakes Invitational to start the second half of the season, Colorado College now turns its attention to making a push up the WCHA standings. And that push will be tested without co-leading scorer Jaden Schwartz (STL). The freshman standout suffered a fractured ankle on Dec. 28 versus the Czech Republic at the recent World Junior Championship and is expected to be out for six to eight weeks. Schwartz, one of the top scoring freshmen in the nation, currently co-leads the Tigers with 26 points (11 goals, 15 assists) through 17 games.
Three defensive NHL prospects have left their respective programs.
Dylan Olsen (CHI), playing with Team Canada in the recent World Junior Championship, has left Minnesota-Duluth to sign with the Chicago Blackhawks. Olsen, along with freshman Justin Faulk (CAR), made up one of the WCHA's best defensive pairings in the first half of the season. The Calgary, AB native appeared in 17 games for the Bulldogs this season, posting 13 points (one goal, 12 assists).
Providence College recently lost Alex Velischek (PIT), who opted to go to the USHL where he will suit up for Sioux City. As Friars head coach Tim Army explains, one reason for Velischek's departure was due to lack of playing time.
"Ultimately, Alex didn't think that he was playing enough. He wanted to play more minutes because he didn't think that he was playing enough. We had actually had several discussions about his game and how it could get better. We were about to play Alabama-Huntsville when Alex was able to return from his injury. I didn't want to disrupt our lineup, in part because the defensemen already playing were playing really well.
Alex won't be coming back to the program and we've already begun to move into another direction. It's disappointing because I don't like to see players leave, but it was his decision."
Velischek was hampered by an ankle injury earlier in the season, which in part, limited him to just nine games. In that span, he posted a goal and an assist.
The third player to leave the collegiate ranks was University of Denver sophomore William Wrenn (SJ), who has opted to play for the WHL's Portland Winterhawks. The Anchorage, AK native appeared in 18 games for the Pioneers this season, posting just an assist.
Senior Podge Turnbull (LA) is on pace to have the best year of his collegiate career at the University of Wisconsin.
Turnbull's chaotic career in Madison looks to have finally settled down. As a result, the Badgers have gotten a more focused contributor that adds some offensive depth to their lineup this season. The Hayward, WI native is coming off of one of his best career performances, after posting three goals in the recent weekend series versus non-conference foe UMass. In Turnbull's 19 appearances to date, he has posted 11 points (eight goals, three assists). His eight goals currently rank fourth on the team and are the most in his collegiate career thus far. His 11 points to date ties his career-best offensive output from his freshman season.
University of Denver freshman Beau Bennett (PIT) continues to be out of the lineup due to a knee injury he suffered back on Dec. 4 versus Minnesota-Duluth. The Gardena, CA native was originally slated to return to the Pioneers lineup after the holiday break versus Northern Michigan. Denver will be in conference play for the remainder of the regular season, and it is expected that Bennett will return to the lineup when the team travels to Minnesota State-Mankato on Jan. 14/15.
Already without their top defensive pairing due to the World Junior Championship, Minnesota-Duluth is missing another NHL prospect in freshman Joe Basaraba (FLA). The Fort Frances, ONT native is currently out of the Bulldogs lineup due to the flu and is listed as week to week.
Minnesota senior goaltender Alex Kangas (ATL) has been out of the lineup due to a leg injury that he suffered in practice back on Dec. 11.


Today is the fifth day of Hanukkah, also known as the Festival of Lights. While Hanukkah is not mentioned in the Jewish Bible, it is mentioned in the Christian Bible in John 10:22. Jesus would have celebrated Hanukkah. It also is one of the most well-known Jewish holidays as it is celebrated in close proximity to Christmas. This is one of eight devotions exploring the many lessons this observance has for Christians. To learn more, download our complimentary Bible study.
Maybe you have had this experience. You are driving somewhere and before you know it, you arrive – only you don't remember getting there! While you were driving, your mind was on other things — you may have been making a grocery list, thinking about an argument that you had with your spouse last night, or planning a meeting coming up later in the day. Your body was physically present in the car, but your mind was elsewhere.
This phenomenon can creep up in all areas of our lives. We may look like we are driving, cooking, working, or reading a story to our child, when really, we are living in the past, or the future, or in the next room. Sadly, when we do this, we miss out on the life that is happening right now, exactly where we are.
Consider that just before Moses encountered God in the burning bush, Scripture tells us that "the LORD saw that he had gone over to look." The Jewish sages teach us that Moses was not the only one to pass by the burning bush; however, he was the first one to notice it and take time to look at it. When God saw that Moses went over to examine the bush, that's when He called out to Moses. Had Moses passed right by, lost in his thoughts, he may have never become the great leader he was.
The message for us is that we have to be present in our lives if we are going to make the most of the time we are given. We have to notice what's going on right here, right now. It's only when we take the time to really see what's going on around us that we can encounter God. When we live distracted and fragmented lives, we will have a hard time even catching a glimpse.
Tonight, as on all eight nights of Hanukkah, Jews around the world will light their menorah candles. According to Jewish law, the lights of these candles must just be used for looking at, and not for anything else. For example, we can't use them as a reading light, and we can't use them for lighting other candles. We are supposed to sit next to the candles and spend some time looking at them – nothing else.
In Psalm 46:10 we read, "Be still and know that I am God." This Hanukkah and holiday season, let's be still and appreciate the light that's all around us. Let's be fully present in the glorious moment that is now. As we take the time to really see each other, we may just catch a glimpse of God as well.


text:
Q: Gitlab repository with multiple branches to local This is more of a clarification question. In Gitlab, you can create multiple branches from the same repository, so the repository myrepository.git can have a master branch and then a development branch for example.
When I clone the repository to a local repository, I often do a single branch and not the whole repository with all of the branches like
git clone <url> --branch development --single-branch

If I am working on multiple branches, I then create a separate directory for each of the branches. My reasoning is that this seems cleaner since I will know what branches I am working in and there's no easy way to switch between the branches and sync up the files. Am I doing this incorrectly? Is there a reason why you would want to have multiple branches in the same directory?
Thanks.

A: In some version control systems (and some workflows) what you are saying makes perfect sense, because you only have a small number of long-lived branches.
An often repeated advantage of git over earlier versioning systems is that "branches are cheap", leading to workflows where it is common to create and delete multiple branches, every single day. It commonly looks like this:

*

*You start working on a task, and you create a new branch for that specific task.

*You make some changes, and commit them to that branch.

*Maybe you get called away to something more urgent before you're done - that's fine, you can check out the "main"/"master"/"develop" branch and work on a different branch, then come back to where you were.

*You finish the task to your satisfaction, and push it to a central location like Github.

*Your colleagues (or even just yourself) reviews the changes in a web interface and makes sure they're OK to merge.

*Maybe someone checks them out and does some testing; maybe an automated script checks them out and runs some tests.

*Finally, you merge the changes to the "main"/"master"/"develop" branch and delete the task branch.

All of this relies on branches being easy to create, and easy to switch between, which is no longer true if you tie each directory to a named branch.

A: Thank you everyone for your help. After some experimentation, I believe I was initially mistaken when I tried out Gitlab, so my procedure was based on a wrong assumption. I did something like this:

*

*Use git clone to clone a local repository of the remote one.

*Change to the clone local repository in the command line.

*Use git checkout  to try to switch from the master to the development branch. What happen was that I notice the files were not updating to the development branch, I still got the master branch files, so I was under the mistaken impression that this cannot be done with Gitlab.

Further experimentation was unable to duplicate this behavior. Git checkout  worked and if you made changes to the file, it will warn you to commit, just as I expected. I think perhaps the VPN was not running at the time, which is needed to connected to the Gitlab repository, though I would think I should have gotten a timeout when I run git checkout, so I am not still sure what happened.
Just to let everyone know that what I asked was not necessary. There is no need to setup separate directory for each branch.

redpajama_set_name: RedPajamaStackExchange


So begins Daniel Pipes' shallow postmortem of the 2012 electoral catastrophe. He "assumed" that Romney would win. Republican positions need to become "cool," which will come about through a Gramscian march through all of the institutions that are presently leftwing strongholds. The march will be spearheaded by such bastions of style as the the Liberty Film Festival, Wall Street Journal, and Commentary.
There is a complete mismatch between Pipes' ends (GOP dominance) and his means. He speaks of a long-term strategy in which Republicans create cultural institutions that will act as "feeders" for the Party.
That ship has already sailed. The GOP has had its think tanks and propaganda outlets for generations—almost 60 years, in National Review's case. They are marching through the institutions, alright—backwards! National Review, Wall Street Journal, and Commentary are in surrender mode. They support America's demographic destruction. They represent not the future of American conservatism, but its past. Pipes, like the rest of Conservatism, Inc., has learned nothing. These "conservatives" are as ideologically calcified as the racial socialists they claim to oppose, but to whom they in reality long ago surrendered.
Like so many other conservatives, I had come to assume that the Tea Party, the 2010 election results, Solyndra, 8 percent unemployment, Benghazi, and an aroused opposition (said one Romney adviser: on election day, "you just don't want to get in the way of a Republican heading into the polls") assured defeat for Barack Obama's bid for a second term. His victory was therefore particularly bitter. Was I alone in sleeping badly and avoiding the news for days?
So many analyses have been proffered for what went wrong: Romney was too conservative or not conservative enough, he ran on his biography, he shied away from winning issues, he could not connect with the masses. So many conclusions have also been drawn: conservatives need to modernize (hello, gay partnerships), they must reach out to non-whites (welcome, illegal immigrants), they should nominate true conservatives.
Myself, I subscribe to the "politics is downstream from culture" argument. While conservatives sometimes prevail in policy debates, they consistently lose in the classroom, on the best-seller list, on television, at the movies, and in the world of arts. These liberal bastions, which provide the feeders for Democratic party politics, did not develop spontaneously but result from decades of hard work traceable back to the ideas of Antonio Gramsci.
Conservatives should emulate this achievement. With Ed Gillespie, a former chairman of the Republican National Committee, I look forward to the day when it will be as cool "to believe in the principles of free enterprise, the need for strong national security, the merits of traditional families, and the value of religious faith as it is to sneer at capitalism, demean the military, denigrate parents, and deride religion."
Happily, American conservatives have a counter-establishment already in place: the Wall Street Journal and Fox News Channel may be best known, but the Bradley Foundation, Pepperdine University, the Liberty Film Festival, and Commentary matter no less. Yes, conservative institutions rarely enjoy the history, resources, and prestige of their liberal counterparts – but they do exist, they are growing, and they possess a convincing and optimistic message.
It will be a long, hard road to traverse, but there is no short cut and it can succeed.


Schenley Plaza in Pittsburgh continues to garner national and now international praise. The parking lot-to-park project of the Pittsburgh Parks Conservancy won a 2009 International Award for Livable Communities (the "LivCom" Awards) this past week in the Czech Republic and last month won the Pinnacle Award from the International Downtown Association.
"It has been wonderful to see Schenley Plaza grow and develop over the past four years, and we are thrilled that it has received international recognition," said Meg Cheever, President and CEO of the Pittsburgh Parks Conservancy.
The project has greatly improved the quality of life in the area, says Cheever. A model in terms of reorienting urban space from cars to people, the $12 million initiative was the product of a community wide effort between the city, nearby universities, businesses and residents. Completed in 2006, the five-acre parcel of Schenley Park is located in the Oakland area of Pittsburgh between the Carnegie and Hillman libraries, and is the busiest entrance to the larger 450-acre green space.
Cars replaced by many more people, After Renovation.
Once home to an unreceptive asphalt parking lot, the site was was transformed into a vibrant, public space and restored to its original purpose as a grand and welcoming gateway to Schenley Park. The Parks Conservancy operates the Plaza in partnership with the City of Pittsburgh and provides public programming. The site includes a lush open lawn, food kiosks and performance area.
I love this "reorienting urban space from cars to people" this initiative it is proof that we can do things better. I think this is a very important success for all.


These vanpools coming into Redmond are looking for riders like you to join them!
If you don't see a match for you, try running a ridematch on your Go Redmond account. There may be other vanpool and carpool options for you there!
The bulletins are also available on the King County Metro website.
New vanpool riders are eligible for $50 fare subsidy for 6 months from Go Redmond.


Here's what every designer wants for Christmas!
Switch over from that mouse pad to the new tablet from Wacom. The new drawing pad allows for 2000 levels of pressure sensitivity and tilt recognition. The Pro SE comes as a wireless option providing great options for the on the go designer or desk jockey.
The best camera is the camera you have with you and often that is simply your smartphone. With this lightweight attachment you can quickly add a fisheye, wide-angle, and two types of macro lenses to get the best photo possible. Other options include telephoto lens and circular polarizers.
Every designer's best friend and possibly least favorite task. With over 1000 swatch colors matching is even easier wit these color guide sets. Seriously. These top the list for what every designer wants for Christmas – especially if they're print designers.
This is a awesome dock that I personally recommend. Great for clearing up clutter and maintain a minimal workspace. You will need a external mouse and keyboard since you'll slide your MacBook pro into the vertical sleeve, but the dock does the rest with built in cables that run out to your external display setup and thunderbolt ready devices.
Got a noisy office, café or boss? The IE 80's are going to tune all of that out and replace it with high fidelity sound produce by neodymium magnets. These bad boys also come with the ability to tune the bass response to your personal tastes.
Having a color accurate monitor is super crucially to any designer, photography or artist for color crucial work. This 27 inch monitor uses IPS panel technology for amazing color fidelity and accuracy. Also included are a color calibration sensor and the SpectraViewII color software. Get your designer this and watch them swoon!
The Micron pen is one of my personal favorite types of pens to use for hand drawn artwork. These pens come in a wide array of tips and styles allowing for varied line widths and brush strokes. I find that they always leave a clean, crisp mark with little to no bleeding into the paper. The microns are also archival grade and will not fade. This is what your favorite designer wants for Christmas if they love hand drawn sketches.
This is big, guys. Here at Logan Gattis we do a quarterly Done For You Editorial Calendar Planning Session. This is invaluable for your designer. It helps me know months in advance what we're going to be writing/talking about and on which platform so I have plenty of time to prepare shareable graphics. Have you ever decided last minute what to write about on your blog and then had to choose a stock photo that wasn't really exactly what you wanted simply to get the post out in time? Or what about that Facebook post that would have been shared 96 more times if you had a nice infographic accompanying it? Don't let this happen to you and your designer again. Make things easy on everyone and get more information one of these sessions.
A compact leather and stretch holder for your power adaptor and cabling for any MacBook chargers that not only works but also looks great in variety of options. The compact profile saves space in your bag and prevents the unraveling of the cables.
Upgrade your work area with this wonderful drawing desk that provides a 38 by 24 inch workspace with enough drawers and storage built in to hold all of your tools with space to add more. The glass top can be used as a light table and is adjustable up to 35 degrees to make the most confortable-working angle. Plus, having the same name as one of your designer's favorite typefaces is sure to bring a smile to their face this Christmas!
How did I do? Did I miss anything? Let me know in the comments below!


The word self confidence carries a lot of power and help you to believe on yourself. If you have a self confidence you are free from doubt, fear and worthlessness .You believe your capabilities that you can anything whatever you want to do if you have self confidence. When you are lacking of self confidence negative remarks made by other people affects you a lot.
Beauty does not have any standard. Beauty cannot make a person better. It will fade one day. People may be beautiful from outside appearance but might be ugliest from inside. Hence what matters is how Lew Wallace best described that beauty is altogether in the eye of the beholder.
People might tell you that you are stupid to destroy your self confidence. You should know that each of us has different degrees of intelligence, skills and knowledge .People might have different expectation .But it doesn't mean that you are stupid if you don't live up to their expectation.
You might looser your confidence level if they tell you that you are a looser. Don't take it seriously. People might have ups and down in their lie but it doesn't mean that you are a looser. You need to believe on yourself and to wait for the right opportunity to grab it.
Saying these words to you probably lowers down your confidence level. But don't be worried about it. You be on. Try to avoid these type of words or don't take it by heart.
People might compare you with someone else and this might make you unhappy. Everybody has their different, thoughts and ideas. By hearings these words don't start comparing yourself with others. There will always be someone who will be above you and there no point comparing. You stick on your ideas and thoughts and that will make you unique.
Don't take these seriously as it doesn't have any sense. Every people have their own pace of doing and with their own style. You might be doing at a slower pace but the output which you will be giving is best. Being fast doesn't make a person perfect of efficient and vice versa.
There might be end number of phrases which might lower yourself confidence. But it is up to you how you tackle it. If you're a strong believer on yourself nothing can affect .Negative comment will not be applicable to you if you take it very lightly. You should concentrate and focus on your things rather than spending time analyzing their comment. It is always advisable not to be with negative people. Someone who always tells some words which disturbs your mind, you should try to be away from them. Be with positive people to make your confidence lever stronger.


Amazing Open Face Eggplant and Peppers Sandwich, A KEEPER!
I've been busy over here, but had to stop for a second to drop this amazing treat on you. It's vegetarian, which might make some of you happy, but if you're a carnivore, don't worry because you won't miss the meat at all. Trust me.
This is one of those amazing sandwiches that you can modify to your heart's content, but the main component is thinly sliced eggplant, from there you can go crazy and try any combination of veggie that is sliceable and able to stack.
Start by using a mandolin to evenly and thinly slice your eggplant. Once sliced, lightly salt and set aside to let some of the liquid release. While that's sitting, prep your other veggies.
I used an organge bellpepper and a pablano chili. Both of those were charred on the stovetop, the skins removed and sliced into strips.
Back to the eggplant. Beat one egg and pull slices through the egg, then coat with panko. I put some dried oregano in my panko and it was a nice touch.
Once your eggplant is cooked through, both sides nicely browned, set aside. Keep the fire on medium or low so it won't burn, the eggplant takes a few minutes to cook all the way through, so be patient and cover for a couple of minutes if you need to to speed up the cooking process.
I used store bought rolls for this sandwich and cut them in half, placing a layer of Asiago cheese on the bottom. Next layer was eggplant, then strips of bellpeper followed by the Poblano. If you add another layer of thinly cut cheese here, it will allow the final layer of eggplant to stay in place. Once your last layer of eggplant is in place, put a few thinly sliced pieces of the Asiago on top and place in oven for about 6-7 minutes.
Once your sandwich is out of the oven, top with small diced cuts of the peppers to add some extra, colorful fun to the presentation. I also added some diced quick pickled red onion which added a nice contrast to the sweet orange pepper and the smokey Poblano.
I also made a sour cream herb dressing, but the sandwich didn't need it and it wasn't even used. Now... EAT!
This sandwich was truly scrumptious. So many wonderful flavors working harmoniously together and the satisfying light crunch of the Panko covered eggplant. This sammie has it all. I didn't have a beer, but a nice cold one would have gone really well with this any time meal. This is going to be a staple in my house this summer! Enjoy.


DUNWOODY, Ga. Democrat Jon Ossoff not talks about making President Donald Trump livid. Whats up.every thing we and hear…to know is actual.. Simply bear in mind OF SIGHT OUT OF THOUGHTS!!!!! Just since you didn't see it.does not imply it's not there….you possibly can't see air however you want it to breath.. Don't be fooled by the voices of others.. So long as you concern.. The demons are there.. I have many solutions..to forbidden just isn't all the time good to place your hand in the HEARTH..if you recognize it's going to to some that fire is like water washing their arms..thank you for hearing me..simply dropping in to see who the VOID let loose.
Between the ocean view eating space and the storage there's a sleek middle island kitchen with flat fronted walnut (or maybe teak) cabinetry and taupe-toned stable surface counter tops. An expensive bevy of stainless steel appliances contains a number of ovens, an integrated coffee maker and fridge/freezer flanked by a glass-fronted full-height beverage cooler and an additionally full-peak and glass fronted wine fridge. We always presumed someone knew the place the party was and we might observe. Normally, we were right in following, though I do recall a number of nights when no one knew the place we have been going and we'd spend about three hours driving up and down varied motorways earlier than admitting defeat!


text:
Perspective > Medscape Infectious Diseases > Expert Reviews and Commentary
Literature Commentary by Dr. John G. Bartlett: Norovirus and Acute Gastroenteritis, January 2008
John G. Bartlett, MD
Centers for Disease Control and Prevention (CDC). Norovirus Activity - United States, 2006-2007. MMWR Morb Mortal Wkly Rep. 2007;56:842-846.
Purpose: The report provides an update on norovirus activity for outbreaks that occurred from October 2006 through June 2007. The study investigators emphasize the substantial increase in cases of norovirus that appear to be associated with 2 new GII.4 norovirus variants designated Minerva and Laurens. Some of the specific information provided is summarized below.
Individual State and City Data: Data are provided for North Carolina, Wisconsin, New York state, and Boston, Massachusetts. The data in Table 1 summarize the number of outbreaks of acute gastroenteritis (AGE) for 2005 and 2006 and the number of cases and deaths in 2006.
United States Laboratory Surveillance: During 2006, the National Calicivirus Laboratory at the United States Centers for Disease Control and Prevention (CDC) tested 761 stool specimens from 126 outbreaks and confirmed norovirus in 114 (90%), including 87 (76%) that were associated with the new GII.4 norovirus variants noted. The Minerva variant accounted for 15 of 25 outbreaks on cruise ships in December 2006, and Laurens accounted for 10 of 25 outbreaks in 2006 and 33 of 122 outbreaks in 2007. The totals provided for the United States showed 372 outbreaks of AGE from October through December 2005; this number increased by 254% to 1316 for the same period in 2006. Of these 1316 cases, a total of 382 (29%) had norovirus confirmation by reverse transcription polymerase chain reaction (RT-PCR). An epidemiologic tracing for the past 3 years showed the typical epidemiology of norovirus based on the percentage of emergency department visits for nausea, vomiting, or diarrhea in Boston. As anticipated, there was an increase in the percentage of AGE cases attributed to norovirus from December to May, with a low of approximately 2.5% and a peak of approximately 9%.
Outbreak Settings: Table 2 provides a perspective on the wide range of outbreak settings in which AGE has been attributed to norovirus in 2006.
Prevention: The following lists some of the recommended procedures to prevent norovirus transmission:
Hand hygiene with alcohol-based hand gels;
Disinfection of contaminated surfaces with a 1:10-50 dilution of chlorine bleach;
Do not return to work or school for 24 to 72 hours after symptoms resolve;
During outbreaks, use contact precautions. Avoid sharing staff members between units or facilities with affected patients, cluster symptomatic patients, instruct visitors on hand hygiene, and close affected units to new admissions and transfers, and
For further information see https://www.cdc.gov/ncidod/dhqp/id_norovirusFS.html# and https://www.epa.gov/oppad001/list_g_norovirus.pdf
Comment: Norovirus is now recognized as the dominant cause of outbreaks of AGE in the United States. This generally causes a self-limited bout of vomiting or diarrhea, usually as a result of contaminated food. However, this report includes several deaths resulting from acute disease, primarily in elderly patients who were presumably quite fragile. The diversity of settings is of interest. The dominant season for norovirus infection is winter, hence the term "winter vomiting disease." The organism has been known for many decades, but the ability to make the diagnosis and more clearly define the epidemiology is now readily available with RT-PCR.
Medscape Infectious Diseases © 2008 Medscape
Cite this: Literature Commentary by Dr. John G. Bartlett: Norovirus and Acute Gastroenteritis, January 2008 - Medscape - Jan 10, 2008.
Outbreaks of Acute Gastroenteritis at Various US Locations 2005 and 2006
Number of Outbreaks 2005
Cases 2006
North Carolina 6 17 861 1
Wisconsin 23 106 2071 2
New York state 76 333 12,224 16
Boston, Massachusetts 2 8 1327 NR
Totals - 24 states 372 1316 NR NR
NR = not reported
Outbreaks of Acute Gastroenteritis: Settings 2006
Number of Outbreaks
Cruise ships 37
Long-term care facilities 37
Restaurants 13
Colleges 3
Parties 3
John G. Bartlett, MD, Professor of Medicine, Johns Hopkins University School of Medicine, Baltimore, Maryland; Director, HIV Care Program, Johns Hopkins Hospital, Baltimore, Maryland
John G. Bartlett, MD, has disclosed that he has served on the HIV advisory board for Bristol-Myers Squibb and Abbott. Dr. Bartlett has also disclosed that he has served on the antimicrobial advisory board for Pfizer and the advisory board for Johnson & Johnson. Dr. Bartlett has also disclosed that he has received a research grant from Gilead.
Experts And Viewpoints Literature Commentary by Dr. John G. Bartlett: Norovirus and Acute Gastroenteritis, January 2008
Journal Article Avian Influenza and Other Viral Infections: September 2006
Experts And Viewpoints Epidemiology of Hepatitis C Virus and Norovirus: August 2006
Journal Article Bacterial Infections: September 2006

redpajama_set_name: RedPajamaCommonCrawl


Julian brings his tools to design and create defined sounding spaces often bringing scientific rigour to Soundzipper projects given his civil and audio engineering background. With a Masters Degree in Engineering Acoustics from the Technical University of Denmark (DTU) he provides clients with an understanding of the importance of excellent acoustics to match his diverse capabilities.
When not crunching on numbers, Julian gets his fender telecaster to the moving playing his sweet licks to the sound of rock an roll.


Sugar, glucose syrup, starch, concentrated fruit juices (1%), banana puree (0.1%).
May contain traces of milk, almonds, hazelnuts, peanut oil, soy.
Small children (5 or younger) have limited chewing skills and may choke on small candy.
Perugina's soft Fondants are unique specialties nobody can match! A combination of harmonious sensations that gently melt in the mouth providing truly delicious moments. These unique treats come in 4 delicious fruit flavors: apple, orange, tangerine, and lemon.
The only place that I have been able to find this specific candy is in Italy. They are absolutely my favorite .


The gorgeous rainbow new baby twins card is a wonderful way to welcome both new born babies into the world.
The bright rainbow coloured typography reads 'hello little ones' and is a lovely way to welcome brand new twins or triplets. Perfect for either gender.
This will make a lovely keepsake for twins in their nursery.


text:
#ifndef __DeformableModelBasicAdaptator__
#define __DeformableModelBasicAdaptator__

/*!
 * \file DeformableModelBasicAdaptator.h
 *
 * \brief Deformation of triangular mesh to gradient feature in an image.
 *
 * \author Benjamin De Leener - NeuroPoly (http://www.neuropoly.info)
 */

#include <vector>
#include <algorithm>

#include <itkPoint.h>
#include <itkImageAlgorithm.h>
#include <itkImageFileReader.h>
#include <itkSingleValuedCostFunction.h>

#include <vtkPolyData.h>
#include <vtkCellArray.h>
#include <vtkSmartPointer.h>
#include <vtkPolyDataNormals.h>
#include <vtkPointData.h>
#include <vtkPoints.h>

#include "Image3D.h"
#include "Mesh.h"
#include "Vertex.h"
#include "util/Matrix3x3.h"
#include "util/MatrixNxM.h"
#include "SpinalCord.h"

typedef itk::CovariantVector<double,3> PixelType;
typedef itk::Image< PixelType, 3 > ImageVectorType;
typedef ImageVectorType::IndexType Index;
typedef itk::Point< double, 3 > PointType;

/*!
 * \class FoncteurDeformableBasicLocalAdaptation
 * \brief Equation class for deformable model optimization
 *
 * This class compute the value and the derivatives of the energy equation used for the optimization of the deformable model.
 */
class FoncteurDeformableBasicLocalAdaptation: public itk::SingleValuedCostFunction
{
public:
	typedef itk::SingleValuedCostFunction	Superclass;
	typedef Superclass::ParametersType		ParametersType;
	typedef Superclass::DerivativeType		DerivativeType;

	FoncteurDeformableBasicLocalAdaptation(Image3D* image, Mesh* m, ParametersType &pointsInitiaux, int nbPoints) :
		image_(image), mesh_(m), pointsInitiaux_(pointsInitiaux), nbParametres_(3*nbPoints)
	{
        verbose_ = false;

		listeTriangles_ = m->getListTriangles();

		type_image_factor = image->getTypeImageFactor();

		InitParameters();

		trianglesBarycentre_.resize(listeTriangles_.size()/3);

		computeOptimalPoints(pointsInitiaux);

		listeTrianglesContenantPoint = mesh_->getConnectiviteTriangles();
		pointsVoisins = mesh_->getNeighbors();
	}

	virtual void GetDerivative (const ParametersType &parameters, DerivativeType &derivative) const
	{
		//std::vector<CVector3> der;
		unsigned int nbTrianglesInt = listeTriangles_.size(), nbTriangles = nbTrianglesInt/3, nbPoints = nbParametres_/3;
		std::vector<CVector3> trianglesBarycentre(nbTriangles);
		for (unsigned int i=0; i<nbTrianglesInt; i+=3)
		{
			trianglesBarycentre[(i+1)/3] = CVector3((parameters[3*listeTriangles_[i]]+parameters[3*listeTriangles_[i+1]]+parameters[3*listeTriangles_[i+2]])/3,
													(parameters[3*listeTriangles_[i]+1]+parameters[3*listeTriangles_[i+1]+1]+parameters[3*listeTriangles_[i+2]+1])/3,
													(parameters[3*listeTriangles_[i]+2]+parameters[3*listeTriangles_[i+1]+2]+parameters[3*listeTriangles_[i+2]+2])/3);
		}

		derivative = DerivativeType(nbParametres_);

		CVector3 index, gradient, laplacien, distancePoint, expect, ci1, c1, ci2, c2, point, voisin;
		for (int i=0; i<nbPoints; i++)
		{
			point(parameters[3*i],parameters[3*i+1],parameters[3*i+2]);
			ci1 = point - transformation_*CVector3(pointsInitiaux_[3*i],pointsInitiaux_[3*i+1],pointsInitiaux_[3*i+2]);
			c1 = CVector3::ZERO; c2 = CVector3::ZERO;
			for (unsigned int j=0; j<pointsVoisins[i].size(); j++) {
				voisin(parameters[3*pointsVoisins[i][j]],parameters[3*pointsVoisins[i][j]+1],parameters[3*pointsVoisins[i][j]+2]);
				c2 += point - voisin;
				c1 += ci1 - voisin + transformation_*CVector3(pointsInitiaux_[3*pointsVoisins[i][j]],pointsInitiaux_[3*pointsVoisins[i][j]+1],pointsInitiaux_[3*pointsVoisins[i][j]+2]);
			}
			derivative[3*i] = 2*alpha*c1[0] + 2*beta*c2[0]; // Internal energy
			derivative[3*i+1] = 2*alpha*c1[1] + 2*beta*c2[1];
			derivative[3*i+2] = 2*alpha*c1[2] + 2*beta*c2[2];
			for (int k=0; k<3; k++)
			{
				for (unsigned int j=0; j<listeTrianglesContenantPoint[i].size(); j++)
				{
					expect = listeXiOpt[listeTrianglesContenantPoint[i][j]];
					if (image_->TransformPhysicalPointToContinuousIndex(expect,index))
					{
						gradient = type_image_factor*image_->GetContinuousPixelVector(index).Normalize();
						distancePoint = listeXiOpt[listeTrianglesContenantPoint[i][j]]-trianglesBarycentre[listeTrianglesContenantPoint[i][j]];
						derivative[3*i+k] += -(2.0/3.0)*listeWi[listeTrianglesContenantPoint[i][j]]*gradient[k]*(gradient*distancePoint);
					}
				}
			}
			//der.push_back(CVector3(derivative[3*indexParam[i]],derivative[3*indexParam[i]+1],derivative[3*indexParam[i]+2]));
			//cout << derivative[i] << " " << derivative[i+1] << " " << derivative[i+2] << " " << endl;
		}
	}

	virtual MeasureType GetValue (const ParametersType &parameters) const
	{
		double result = 0.0, interne1 = 0.0, interne2 = 0.0, externe = 0.0;

		unsigned int nbTrianglesInt = listeTriangles_.size(), nbTriangles = nbTrianglesInt/3, nbPoints = nbParametres_/3;
		std::vector<CVector3> trianglesBarycentre(nbTriangles);
		for (unsigned int i=0; i<nbTrianglesInt; i+=3)
		{
			trianglesBarycentre[(i+1)/3] = CVector3((parameters[3*listeTriangles_[i]]+parameters[3*listeTriangles_[i+1]]+parameters[3*listeTriangles_[i+2]])/3,
													(parameters[3*listeTriangles_[i]+1]+parameters[3*listeTriangles_[i+1]+1]+parameters[3*listeTriangles_[i+2]+1])/3,
													(parameters[3*listeTriangles_[i]+2]+parameters[3*listeTriangles_[i+1]+2]+parameters[3*listeTriangles_[i+2]+2])/3);
		}

		CVector3 index, gradient, expect;
		for (unsigned int i=0; i<nbTriangles; i++)
		{
			expect = listeXiOpt[i];
			if (image_->TransformPhysicalPointToContinuousIndex(expect,index))
			{
				gradient = type_image_factor*image_->GetContinuousPixelVector(index).Normalize();
				externe += listeWi[i]*pow(gradient*(listeXiOpt[i]-trianglesBarycentre[i]),2);
			}
		}

		CVector3 c1, c2;

		for (int i=0; i<nbPoints; i++)
		{
			for (unsigned int j=0; j<pointsVoisins[i].size(); j++)
			{
				c2 = CVector3(parameters[3*i]-parameters[3*pointsVoisins[i][j]],parameters[3*i+1]-parameters[3*pointsVoisins[i][j]+1],parameters[3*i+2]-parameters[3*pointsVoisins[i][j]+2]);//point - voisin;
				c1 = c2 - transformation_*CVector3(pointsInitiaux_[3*i]-pointsInitiaux_[3*pointsVoisins[i][j]],pointsInitiaux_[3*i+1]-pointsInitiaux_[3*pointsVoisins[i][j]+1],pointsInitiaux_[3*i+2]-pointsInitiaux_[3*pointsVoisins[i][j]+2]);
				interne1 += pow(c1[0],2)+pow(c1[1],2)+pow(c1[2],2);
				interne2 += pow(c2[0],2)+pow(c2[1],2)+pow(c2[2],2);
			}
		}

		result = externe + alpha*interne1 + beta*interne2;
		//cout << "Energie Externe = " << externe << endl << "Energie Interne = " << interne1 << endl << "Energie Totale : " << result << endl;
		return result;
	}

	virtual unsigned int GetNumberOfParameters (void) const { return nbParametres_; }

	MeasureType GetInitialValue ()
	{
		return GetValue(pointsInitiaux_);
	}

	double getInitialNormDerivatives ()
	{
		DerivativeType derivative;
		GetDerivative (pointsInitiaux_, derivative);
		double normeGradient = 0.0;
		for (int i=0; i<nbParametres_; i++)
			normeGradient += pow(derivative[i],2);
		return sqrt(normeGradient);
	}

	void setInitialParameters(const ParametersType &pointsInitiaux)
	{
		listeXiOpt.clear();
		listeWi.clear();

		computeOptimalPoints(pointsInitiaux);
	}

	void computeOptimalPoints(const ParametersType &pointsInitiaux)
	{
		listeXiOpt.clear();
		listeWi.clear();

		unsigned int sizeBary = trianglesBarycentre_.size(), nbTrianglesInt = listeTriangles_.size();
		CVector3 point1, normale1, point2, normale2, point3, normale3;
		for (unsigned int i=0; i<nbTrianglesInt; i+=3) {
			point1(pointsInitiaux[3*listeTriangles_[i]],pointsInitiaux[3*listeTriangles_[i]+1],pointsInitiaux[3*listeTriangles_[i]+2]);
			point2(pointsInitiaux[3*listeTriangles_[i+1]],pointsInitiaux[3*listeTriangles_[i+1]+1],pointsInitiaux[3*listeTriangles_[i+1]+2]);
			point3(pointsInitiaux[3*listeTriangles_[i+2]],pointsInitiaux[3*listeTriangles_[i+2]+1],pointsInitiaux[3*listeTriangles_[i+2]+2]);
			trianglesBarycentre_[(i+1)/3] = Vertex((point1+point2+point3)/3,-((point1-point2)^(point1-point3)).Normalize());
		}

        // define startPos as meanRadius of the mesh
        int startPos = line_search;

		double resultCkMax = 0.0, resultCkMax_mask = 0.0, resultCk;
		CVector3 xi, ni, ck, ci, index, gradient;
		int k;

        Matrice imageDistance = Matrice(sizeBary,2*line_search+1);

		listeXiOpt.resize(sizeBary);
		listeWi.resize(sizeBary);
		std::vector<double> listeDistancePointsOpt(sizeBary);

		double threshold_distance_mask = 2.0;
		CVector3 point_position;
		double distance_point_from_mask = 0.0;

		for (unsigned int i=0; i<sizeBary; i++)
		{
			xi = trianglesBarycentre_[i].getPosition();
			ni = trianglesBarycentre_[i].getNormal();
			k = 0;
			resultCkMax = 0.0;

			bool has_point_mask = false;
			int k_point_mask = 0;
			double distance_min_mask = 100000.0;

			for (int j=-startPos; j<=line_search; j++)
			{
			    point_position = xi + j*deltaNormale*ni;
				if (image_->TransformPhysicalPointToContinuousIndex(point_position,index)) {
					resultCk = type_image_factor*ni*image_->GetContinuousPixelVector(index) - tradeOff*deltaNormale*deltaNormale*j*j;
                    //imageDistance(i,j+startPos) = resultCk;
					if (resultCk >= resultCkMax) {
						k = j;
						resultCkMax = resultCk;
					}

					// including information from correction mask
					for (int ind_mask=0; ind_mask<points_mask_correction_.size(); ind_mask++)
					{
					    distance_point_from_mask = sqrt((points_mask_correction_[ind_mask][0]-point_position[0])*(points_mask_correction_[ind_mask][0]-point_position[0]) + (points_mask_correction_[ind_mask][1]-point_position[1])*(points_mask_correction_[ind_mask][1]-point_position[1]) + (points_mask_correction_[ind_mask][2]-point_position[2])*(points_mask_correction_[ind_mask][2]-point_position[2]));
                        if (distance_point_from_mask <= threshold_distance_mask && distance_point_from_mask < distance_min_mask)
                        {
                            k_point_mask = j;
                            distance_min_mask = distance_point_from_mask;
                            resultCkMax_mask = 1000;
                            has_point_mask = true;
                        }
					}
				}
			}

			if (has_point_mask)
			{
                listeXiOpt[i] = xi + k_point_mask*deltaNormale*ni;
			    listeDistancePointsOpt[i] = k_point_mask*deltaNormale;
                listeWi[i] = std::max(0.0,resultCkMax_mask);
			}
			else
			{
			    listeXiOpt[i] = xi + k*deltaNormale*ni;
			    listeDistancePointsOpt[i] = k*deltaNormale;
                listeWi[i] = std::max(0.0,resultCkMax);
            }
		}

        /*std::vector<int> indexOptPoints = minimalPath(imageDistance, true);
        double posDist;
        for (unsigned int i=0; i<indexOptPoints.size(); i++)
        {
            xi = trianglesBarycentre_[i].getPosition();
            ni = trianglesBarycentre_[i].getNormal();
            posDist = indexOptPoints[i]-startPos;
            listeXiOpt[i] = xi + posDist*deltaNormale*ni;
            listeDistancePointsOpt[i] = posDist*deltaNormale;
            listeWi[i] = std::max(0.0,imageDistance(i,indexOptPoints[i]));
        }*/

		meanDistance = 0.0;
		meanAbsoluteDistance = 0.0;
		for (unsigned int i=0; i<sizeBary; i++) {
			meanDistance += listeDistancePointsOpt[i];
			meanAbsoluteDistance += abs(listeDistancePointsOpt[i]);
		}
		meanDistance /= (double)sizeBary;
		meanAbsoluteDistance /= (double)sizeBary;
		if (verbose_) {
            cout << "Most promising points mean distance [mm] = " << meanDistance << endl;
            cout << "Most promising points absolute mean distance [mm] = " << meanAbsoluteDistance << endl;
        }
	}

    /*void computeOptimalPoints(const ParametersType &pointsInitiaux)
    {
        listeXiOpt.clear();
        listeWi.clear();

        unsigned int sizeBary = trianglesBarycentre_.size(), nbTrianglesInt = listeTriangles_.size();
        CVector3 point1, normale1, point2, normale2, point3, normale3;
        for (unsigned int i=0; i<nbTrianglesInt; i+=3) {
            point1(pointsInitiaux[3*listeTriangles_[i]],pointsInitiaux[3*listeTriangles_[i]+1],pointsInitiaux[3*listeTriangles_[i]+2]);
            point2(pointsInitiaux[3*listeTriangles_[i+1]],pointsInitiaux[3*listeTriangles_[i+1]+1],pointsInitiaux[3*listeTriangles_[i+1]+2]);
            point3(pointsInitiaux[3*listeTriangles_[i+2]],pointsInitiaux[3*listeTriangles_[i+2]+1],pointsInitiaux[3*listeTriangles_[i+2]+2]);
            trianglesBarycentre_[(i+1)/3] = Vertex((point1+point2+point3)/3,-((point1-point2)^(point1-point3)).Normalize());
        }

        double resultCkMax = 0.0, resultCk;
        CVector3 xi, ni, ck, ci, index, gradient;
        int k;

        Matrice imageDistance = Matrice(sizeBary,2*line_search+1);

        listeXiOpt.resize(sizeBary);
        listeWi.resize(sizeBary);
        std::vector<double> listeDistancePointsOpt(sizeBary);

        for (unsigned int i=0; i<sizeBary; i++)
        {
            xi = trianglesBarycentre_[i].getPosition();
            ni = trianglesBarycentre_[i].getNormal();
            k = 0;
            resultCkMax = 0.0;
            for (int j=-line_search; j<=line_search; j++) {
                if (image_->TransformPhysicalPointToContinuousIndex(xi + j*deltaNormale*ni,index)) {
                    resultCk = type_image_factor*ni*image_->GetContinuousPixelVector(index) - tradeOff*deltaNormale*deltaNormale*j*j;
                    imageDistance(i,j+line_search) = resultCk;
                    if (resultCk >= resultCkMax) {
                        k = j;
                        resultCkMax = resultCk;
                    }
                }
            }
            listeXiOpt[i] = xi + k*deltaNormale*ni;
            listeDistancePointsOpt[i] = k*deltaNormale;
            listeWi[i] = std::max(0.0,resultCkMax);
        }

        std::vector<int> indexOptPoints = minimalPath(imageDistance, true);
        double posDist;
        for (unsigned int i=0; i<indexOptPoints.size(); i++)
        {
            xi = trianglesBarycentre_[i].getPosition();
            ni = trianglesBarycentre_[i].getNormal();
            posDist = indexOptPoints[i]-line_search;
            listeXiOpt[i] = xi + posDist*deltaNormale*ni;
            listeDistancePointsOpt[i] = posDist*deltaNormale;
            listeWi[i] = std::max(0.0,imageDistance(i,indexOptPoints[i]));
        }

        meanDistance = 0.0;
        meanAbsoluteDistance = 0.0;
        for (unsigned int i=0; i<sizeBary; i++) {
            meanDistance += listeDistancePointsOpt[i];
            meanAbsoluteDistance += abs(listeDistancePointsOpt[i]);
        }
        meanDistance /= (double)sizeBary;
        meanAbsoluteDistance /= (double)sizeBary;
        if (verbose_) {
            cout << "Most promising points mean distance [mm] = " << meanDistance << endl;
            cout << "Most promising points absolute mean distance [mm] = " << meanAbsoluteDistance << endl;
        }
    }*/

    std::vector<int> minimalPath(Matrice image, bool invert=true, double factx=sqrt(2))
    {
        /*% MINIMALPATH Recherche du chemin minimum de Haut vers le bas et de
         % bas vers le haut tel que dÈcrit par Luc Vincent 1998
         % [sR,sC,S] = MinimalPath(I,factx)
         %
         %   I     : Image d'entrÔøΩe dans laquelle on doit trouver le
         %           chemin minimal
         %   factx : Poids de linearite [1 10]
         %
         % Programme par : Ramnada Chav
         % Date : 22 fÈvrier 2007
         % ModifiÈ le 16 novembre 2007*/

        int m = image.getNombreLignes(); // x
        int n = image.getNombreColonnes(); // y

        if (invert)
        {
            double max_value = -1000000000;
            // compute max value in the matrix
            for (int x=0; x<m; x++)
            {
                for (int y=0; y<n; y++)
                {
                    if (image(x,y) > max_value)
                        max_value = image(x,y);
                }
            }
            // invert the matrix
            for (int x=0; x<m; x++)
            {
                for (int y=0; y<n; y++)
                    image(x,y) = max_value - image(x,y);
            }
        }

        // create image with high values J1
        // IMPORTANT: first slice of J1 and last slice of J2 must be set to 0...
        Matrice J1 = image, J2 = image, cPixel = image;
        for (int x=0; x<m; x++)
        {
            for (int y=0; y<n; y++)
            {
                if (x==0)
                    J1(x,y) = 0.0;
                else
                    J1(x,y) = 100000000.0;
                if (x==m-1)
                    J2(x,y) = 0.0;
                else
                    J2(x,y) = 100000000.0;
            }
        }

        // iterate on slice from slice 1 (start=0) to slice p-2. Basically, we avoid first and last slices.
        for (int row=1; row<m; row++)
        {
            // 1. extract pJ = the (slice-1)th slice of the image J1
            Matrice pJ = Matrice(1,n);
            for (int y=0; y<n; y++)
                pJ(0,y) = J1(row-1,y);

            // 2. extract cP = the (slice)th slice of the image cPixel
            Matrice cP = Matrice(1,n);
            for (int y=0; y<n; y++)
                cP(0,y) = cPixel(row,y);

            // 3. Create a matrix VI with 5 slices, that are exactly a repetition of cP without borders
            // multiply all elements of all slices of VI except the middle one by factx
            Matrice VI = Matrice(3,n-2);
            for (int i=0; i<3; i++)
            {
                for (int y=0; y<n-2; y++)
                {
                    if (i!=1)
                        VI(i,y) = cP(0,y+1)*factx;
                    else
                        VI(i,y) = cP(0,y+1);
                }
            }

            // 4. create a matrix of 5 slices, containing pJ(vectx-1,vecty),pJ(vectx,vecty-1),pJ(vectx,vecty),pJ(vectx,vecty+1),pJ(vectx+1,vecty) where vectx=2:m-1; and vecty=2:n-1;
            Matrice Jq = Matrice(3,n-2);
            for (int y=0; y<n-2; y++)
                Jq(0,y) = pJ(0,y);
            for (int y=0; y<n-2; y++)
                Jq(1,y) = pJ(0,y+1);
            for (int y=0; y<n-2; y++)
                Jq(2,y) = pJ(0,y+2);

            // 5. sum Jq and Vi voxel by voxel to produce JV
            Matrice JV = VI + Jq;

            // 6. replace each pixel of the (slice)th slice of J1 with the minimum value of the corresponding column in JV
            for (int y=0; y<n-2; y++)
            {
                double min_value = 100000000;
                for (int i=0; i<3; i++)
                {
                    if (JV(i,y) < min_value)
                        min_value = JV(i,y);
                }
                J1(row,y+1) = min_value;
            }
        }

        // iterate on slice from slice n-1 to slice 1. Basically, we avoid first and last slices.
        for (int row=m-2; row>=0; row--)
        {
            // 1. extract pJ = the (slice-1)th slice of the image J1
            Matrice pJ = Matrice(1,n);
            for (int y=0; y<n; y++)
                pJ(0,y) = J2(row+1,y);

            // 2. extract cP = the (slice)th slice of the image cPixel
            Matrice cP = Matrice(1,n);
            for (int y=0; y<n; y++)
                cP(0,y) = cPixel(row,y);

            // 3. Create a matrix VI with 5 slices, that are exactly a repetition of cP without borders
            // multiply all elements of all slices of VI except the middle one by factx
            Matrice VI = Matrice(3,n-2);
            for (int i=0; i<3; i++)
            {
                for (int y=0; y<n-2; y++)
                {
                    if (i!=1)
                        VI(i,y) = cP(0,y+1)*factx;
                    else
                        VI(i,y) = cP(0,y+1);
                }
            }

            // 4. create a matrix of 5 slices, containing pJ(vectx-1,vecty),pJ(vectx,vecty-1),pJ(vectx,vecty),pJ(vectx,vecty+1),pJ(vectx+1,vecty) where vectx=2:m-1; and vecty=2:n-1;
            Matrice Jq = Matrice(3,n-2);
            for (int y=0; y<n-2; y++)
                Jq(0,y) = pJ(0,y);
            for (int y=0; y<n-2; y++)
                Jq(1,y) = pJ(0,y+1);
            for (int y=0; y<n-2; y++)
                Jq(2,y) = pJ(0,y+2);

            // 5. sum Jq and Vi voxel by voxel to produce JV
            Matrice JV = VI + Jq;

            // 6. replace each pixel of the (slice)th slice of J1 with the minimum value of the corresponding column in JV
            for (int y=0; y<n-2; y++)
            {
                double min_value = 100000000;
                for (int i=0; i<3; i++)
                {
                    if (JV(i,y) < min_value)
                        min_value = JV(i,y);
                }
                J2(row,y+1) = min_value;
            }
        }

        // add J1 and J2 to produce "S" which is actually J1 here.
        Matrice S = J1 + J2;

        // Find the minimal value of S for each slice and create a binary image with all the coordinates
        // TO DO: the minimal path shouldn't be a pixelar path. It should be a continuous spline that is minimum.
        double val_temp;
        std::vector<int> list_index;
        for (int row=0; row<m; row++)
        {
            double min_value_S = 1000000000;
            int index_min = 0;
            for (int y=1; y<n-1; y++)
            {
                val_temp = S(row,y);
                if (val_temp < min_value_S)
                {
                    min_value_S = val_temp;
                    index_min = y;
                }
            }
            list_index.push_back(index_min);
        }

        return list_index;
    }

	void setTransformation(CMatrix4x4 m) { transformation_ = m; };

	std::vector<CVector3> getMostPromisingPoints() { return listeXiOpt; };

	void setDeltaNormale(double deltaNormale) { this->deltaNormale = deltaNormale; };
	void setTradeOff(double tradeOff) { this->tradeOff = tradeOff; };
    double getTradeOff() { return tradeOff; };
	void setLineSearchLength(double line_search) { this->line_search = line_search; };
    double getLineSearchLength() { return line_search; };
	void setAlpha(double alpha) { this->alpha = alpha; };
	void setBeta(double beta) { this->beta = beta; };

	double getMeanDistance() { return meanDistance; };
	double getAbsoluteMeanDistance() { return meanAbsoluteDistance; };

    void setMeanRadius(double meanRadius) { meanRadius_ = meanRadius; };

    void setVerbose(bool verbose) { verbose_ = verbose; };
    bool getVerbose() { return verbose_; };

    void addCorrectionPoints(std::vector<CVector3> points_mask_correction) { points_mask_correction_ = points_mask_correction; };

private:
	void InitParameters()
	{
        line_search = 15; //15;
		alpha = 25; // 25
		beta = 0.0;
		deltaNormale = 0.2;
        tradeOff = 10;
	};

	Image3D* image_;
	Mesh* mesh_;
	std::vector<int> listeTriangles_;
	ParametersType pointsInitiaux_;
	CMatrix4x4 transformation_;

	int nbParametres_;
	std::vector<CVector3> listeXiOpt;
	std::vector<double> listeWi;
	std::vector< std::vector<int> > listeTrianglesContenantPoint;
	std::vector< std::vector<int> > pointsVoisins;
	std::vector<Vertex> trianglesBarycentre_;

	double line_search, deltaNormale, tradeOff, alpha, beta;
	double type_image_factor;

	double meanDistance, meanAbsoluteDistance;

    double meanRadius_;

    bool verbose_;

    std::vector<CVector3> points_mask_correction_;
};

/*!
 * \class DeformableModelBasicAdaptator
 * \brief Deformation of a mesh to the gradient in an image.
 *
 * This class deform  a ttriangular mesh using deformable model based energy equation towards gradient std::vector in the input image. The deformation equation is quadratic and minimized using conjugate gradient.
 */
class DeformableModelBasicAdaptator
{
public:
	DeformableModelBasicAdaptator(Image3D* image, Mesh* m);
	DeformableModelBasicAdaptator(Image3D* image, Mesh* m, int nbIteration, double contrast, bool computeFinalMesh=true);
    DeformableModelBasicAdaptator(Image3D* image, Mesh* m, int nbIteration, std::vector<std::pair<CVector3,double> > contrast, bool computeFinalMesh=true);
	~DeformableModelBasicAdaptator();

	void setInput(Mesh* m) { mesh_ = m; };
	void setNumberOfIteration(int nbIteration) { numberOfIteration_ = nbIteration; };
	double adaptation();
	Mesh* getOutput() { return meshOutput_; };
	SpinalCord* getSpinalCordOutput() {
		return new SpinalCord(*meshOutput_);
	};

	void setFinalMeshBool(bool f) { meshBool_ = f; };
	void changedParameters() { this->changedParameters_ = true; };
	void setDeltaNormale(double deltaNormale) { this->deltaNormale = deltaNormale; };
	void setTradeOff(double tradeOff) { this->tradeOff = tradeOff; tradeoff_bool = true; };
	void setContrast(double contrast) { this->contrast = contrast; };

	void setLineSearch(double line_search) { this->line_search = line_search; };
	void setAlpha(double alpha) { this->alpha = alpha; };
	void setBeta(double beta) { this->beta = beta; };
	void setStopCondition(double s) { stopCondition = s; };
	void setNumberOptimizerIteration(int nbIt) { numberOptimizerIteration = nbIt; };
    void setProgressiveLineSearchLength(bool value) { progressiveLineSearchLength = value; };

    void setVerbose(bool verbose) { verbose_ = verbose; };
    bool getVerbose() { return verbose_; };

    void addCorrectionPoints(std::vector<CVector3> points_mask_correction) { points_mask_correction_ = points_mask_correction; };

private:
	Image3D* image_;
	int numberOfIteration_;
	Mesh *mesh_, *meshOutput_;
	bool meshBool_;

	bool changedParameters_;
	int line_search;
	double deltaNormale, tradeOff, alpha, beta, contrast;
	std::vector<std::pair<CVector3,double> > contrastvector;
	double stopCondition;
	int numberOptimizerIteration;
    bool progressiveLineSearchLength, tradeoff_bool;

    bool verbose_;

    std::vector<CVector3> points_mask_correction_;
};

#endif

redpajama_set_name: RedPajamaGithub


text:
Danny Boyle Confirmed for '127 Hours' Mountaineer Project Next
As is the case with any director who wins an Oscar, their next film is always a hot topic. Variety has finally confirmed today that the next film from Danny Boyle will be 127 Hours, the story about the mountaineer Aron Ralston who had to amputate his own arm back in 2003. The title obviously pertains to how long he was stuck pinned beneath a boulder in Utah. I think the title actually ups the intensity, too, even just a little bit, because now we know this guy was sitting there hanging on to life for that long. Fellow Oscar winner Simon Beaufoy, who wrote the Slumdog Millionaire script, is in talks to write the script for 127 Hours.
In addition to Boyle and Beaufoy, producer Christian Colson will also be back, making this a "reunion of the creative team and the financiers behind Slumdog Millionaire, which won eight Oscars." Fox Searchlight will be financing and distributing the project in partnership with Pathe. Boyle wrote the original treatment and handed it off to Beaufoy to turn into a complete script. This confirms our report from October that Danny Boyle would be shooting this project next year. However, Variety says he hasn't chosen an actor yet to play Ralston, so that rumor about Ryan Gosling isn't true (for the time being). We'll keep you updated on casting.
Not interested. It's weird to think that Boyle used to make great films. Then came Millions and Slumdog...I hope he can recover sometime.
whomever on Nov 4, 2009
He should do the follow up to 28 weeks later i.e 28 months later!!
Ranz on Nov 4, 2009
This should be interesting. @Ranz: Maybe, but he's doing this first. @whomever: It's only "weird" if you're oblivious to the fact that so many people think Millions and Slumdog were great films.
@Whomever are you serious? Slumdog was obviously the best film that year it won the Oscars. Everybody in my family enjoyed it, including my 40 year old mother and 15 year old sister. Don't forget about the underrated Sunshine which was brilliant.
klaus_komix on Nov 5, 2009
Is that guys head really that big? He reminds me of Brain from Pinky and the Brain.
ugh on Nov 5, 2009
yeah his head Is epicly large, @Ranz: he's said he Is developing a script for said film and i'm agree with Dark Fist's second comment in response to the lunacy that was Whomevers opening statement. this is a great story not documented enough, should be great.
Alex on Nov 5, 2009
Is that dude's head photo-shopped for some reason? WTF? That's not a 4head, it's a 5head!
Cmurder on Nov 5, 2009
I would love to watch this. The tree-hugger in me will love it as long as the cinematography is great.
dqniel on Nov 5, 2009