text:
<?xml version="1.0" encoding="UTF-8"?>
<spirit:component xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <spirit:vendor>xilinx.com</spirit:vendor>
  <spirit:library>user</spirit:library>
  <spirit:name>pattern_controller</spirit:name>
  <spirit:version>1.0</spirit:version>
  <spirit:busInterfaces>
    <spirit:busInterface>
      <spirit:name>reset_n</spirit:name>
      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/>
      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/>
      <spirit:slave/>
      <spirit:portMaps>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>RST</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>reset_n</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
      </spirit:portMaps>
    </spirit:busInterface>
    <spirit:busInterface>
      <spirit:name>clk</spirit:name>
      <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/>
      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/>
      <spirit:slave/>
      <spirit:portMaps>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>CLK</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>clk</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
      </spirit:portMaps>
    </spirit:busInterface>
  </spirit:busInterfaces>
  <spirit:model>
    <spirit:views>
      <spirit:view>
        <spirit:name>xilinx_anylanguagesynthesis</spirit:name>
        <spirit:displayName>Synthesis</spirit:displayName>
        <spirit:envIdentifier>:vivado.xilinx.com:synthesis</spirit:envIdentifier>
        <spirit:language>Verilog</spirit:language>
        <spirit:modelName>pattern_controller</spirit:modelName>
        <spirit:fileSetRef>
          <spirit:localName>xilinx_anylanguagesynthesis_view_fileset</spirit:localName>
        </spirit:fileSetRef>
        <spirit:parameters>
          <spirit:parameter>
            <spirit:name>viewChecksum</spirit:name>
            <spirit:value>753df0cc</spirit:value>
          </spirit:parameter>
        </spirit:parameters>
      </spirit:view>
      <spirit:view>
        <spirit:name>xilinx_anylanguagebehavioralsimulation</spirit:name>
        <spirit:displayName>Simulation</spirit:displayName>
        <spirit:envIdentifier>:vivado.xilinx.com:simulation</spirit:envIdentifier>
        <spirit:language>Verilog</spirit:language>
        <spirit:modelName>pattern_controller</spirit:modelName>
        <spirit:fileSetRef>
          <spirit:localName>xilinx_anylanguagebehavioralsimulation_view_fileset</spirit:localName>
        </spirit:fileSetRef>
        <spirit:parameters>
          <spirit:parameter>
            <spirit:name>viewChecksum</spirit:name>
            <spirit:value>753df0cc</spirit:value>
          </spirit:parameter>
        </spirit:parameters>
      </spirit:view>
      <spirit:view>
        <spirit:name>xilinx_xpgui</spirit:name>
        <spirit:displayName>UI Layout</spirit:displayName>
        <spirit:envIdentifier>:vivado.xilinx.com:xgui.ui</spirit:envIdentifier>
        <spirit:fileSetRef>
          <spirit:localName>xilinx_xpgui_view_fileset</spirit:localName>
        </spirit:fileSetRef>
        <spirit:parameters>
          <spirit:parameter>
            <spirit:name>viewChecksum</spirit:name>
            <spirit:value>3f726323</spirit:value>
          </spirit:parameter>
        </spirit:parameters>
      </spirit:view>
    </spirit:views>
    <spirit:ports>
      <spirit:port>
        <spirit:name>clk</spirit:name>
        <spirit:wire>
          <spirit:direction>in</spirit:direction>
          <spirit:wireTypeDefs>
            <spirit:wireTypeDef>
              <spirit:typeName>std_logic</spirit:typeName>
              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
            </spirit:wireTypeDef>
          </spirit:wireTypeDefs>
        </spirit:wire>
      </spirit:port>
      <spirit:port>
        <spirit:name>controls_input</spirit:name>
        <spirit:wire>
          <spirit:direction>in</spirit:direction>
          <spirit:vector>
            <spirit:left spirit:format="long">5</spirit:left>
            <spirit:right spirit:format="long">0</spirit:right>
          </spirit:vector>
          <spirit:wireTypeDefs>
            <spirit:wireTypeDef>
              <spirit:typeName>std_logic_vector</spirit:typeName>
              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
            </spirit:wireTypeDef>
          </spirit:wireTypeDefs>
        </spirit:wire>
      </spirit:port>
      <spirit:port>
        <spirit:name>numSample</spirit:name>
        <spirit:wire>
          <spirit:direction>in</spirit:direction>
          <spirit:vector>
            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.ADDR_WIDTH')) - 1)">17</spirit:left>
            <spirit:right spirit:format="long">0</spirit:right>
          </spirit:vector>
          <spirit:wireTypeDefs>
            <spirit:wireTypeDef>
              <spirit:typeName>std_logic_vector</spirit:typeName>
              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
            </spirit:wireTypeDef>
          </spirit:wireTypeDefs>
        </spirit:wire>
      </spirit:port>
      <spirit:port>
        <spirit:name>single_b</spirit:name>
        <spirit:wire>
          <spirit:direction>in</spirit:direction>
          <spirit:wireTypeDefs>
            <spirit:wireTypeDef>
              <spirit:typeName>std_logic</spirit:typeName>
              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
            </spirit:wireTypeDef>
          </spirit:wireTypeDefs>
        </spirit:wire>
      </spirit:port>
      <spirit:port>
        <spirit:name>reset_n</spirit:name>
        <spirit:wire>
          <spirit:direction>in</spirit:direction>
          <spirit:wireTypeDefs>
            <spirit:wireTypeDef>
              <spirit:typeName>std_logic</spirit:typeName>
              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
            </spirit:wireTypeDef>
          </spirit:wireTypeDefs>
        </spirit:wire>
      </spirit:port>
      <spirit:port>
        <spirit:name>pattern_addrB</spirit:name>
        <spirit:wire>
          <spirit:direction>out</spirit:direction>
          <spirit:vector>
            <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.ADDR_WIDTH')) - 1)">17</spirit:left>
            <spirit:right spirit:format="long">0</spirit:right>
          </spirit:vector>
          <spirit:wireTypeDefs>
            <spirit:wireTypeDef>
              <spirit:typeName>std_logic_vector</spirit:typeName>
              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
            </spirit:wireTypeDef>
          </spirit:wireTypeDefs>
        </spirit:wire>
      </spirit:port>
      <spirit:port>
        <spirit:name>pattern_enb</spirit:name>
        <spirit:wire>
          <spirit:direction>out</spirit:direction>
          <spirit:wireTypeDefs>
            <spirit:wireTypeDef>
              <spirit:typeName>reg</spirit:typeName>
              <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef>
              <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef>
            </spirit:wireTypeDef>
          </spirit:wireTypeDefs>
        </spirit:wire>
      </spirit:port>
    </spirit:ports>
    <spirit:modelParameters>
      <spirit:modelParameter xsi:type="spirit:nameValueTypeType" spirit:dataType="integer">
        <spirit:name>ADDR_WIDTH</spirit:name>
        <spirit:displayName>Addr Width</spirit:displayName>
        <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.ADDR_WIDTH">18</spirit:value>
      </spirit:modelParameter>
    </spirit:modelParameters>
  </spirit:model>
  <spirit:fileSets>
    <spirit:fileSet>
      <spirit:name>xilinx_anylanguagesynthesis_view_fileset</spirit:name>
      <spirit:file>
        <spirit:name>pulse_gen.v</spirit:name>
        <spirit:fileType>verilogSource</spirit:fileType>
      </spirit:file>
      <spirit:file>
        <spirit:name>pattern_controller.v</spirit:name>
        <spirit:fileType>verilogSource</spirit:fileType>
        <spirit:userFileType>CHECKSUM_8ab75484</spirit:userFileType>
      </spirit:file>
    </spirit:fileSet>
    <spirit:fileSet>
      <spirit:name>xilinx_anylanguagebehavioralsimulation_view_fileset</spirit:name>
      <spirit:file>
        <spirit:name>pulse_gen.v</spirit:name>
        <spirit:fileType>verilogSource</spirit:fileType>
      </spirit:file>
      <spirit:file>
        <spirit:name>pattern_controller.v</spirit:name>
        <spirit:fileType>verilogSource</spirit:fileType>
      </spirit:file>
    </spirit:fileSet>
    <spirit:fileSet>
      <spirit:name>xilinx_xpgui_view_fileset</spirit:name>
      <spirit:file>
        <spirit:name>xgui/pattern_controller_v1_0.tcl</spirit:name>
        <spirit:fileType>tclSource</spirit:fileType>
        <spirit:userFileType>CHECKSUM_941253fc</spirit:userFileType>
        <spirit:userFileType>XGUI_VERSION_2</spirit:userFileType>
      </spirit:file>
    </spirit:fileSet>
  </spirit:fileSets>
  <spirit:description>Controller to generate enable and reset signals from start, stop, step, number of samples, single/multiple pattern generation control inputs</spirit:description>
  <spirit:parameters>
    <spirit:parameter>
      <spirit:name>ADDR_WIDTH</spirit:name>
      <spirit:displayName>Addr Width</spirit:displayName>
      <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.ADDR_WIDTH">18</spirit:value>
    </spirit:parameter>
    <spirit:parameter>
      <spirit:name>Component_Name</spirit:name>
      <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.Component_Name" spirit:order="1">pattern_controller_v1_0</spirit:value>
    </spirit:parameter>
  </spirit:parameters>
  <spirit:vendorExtensions>
    <xilinx:coreExtensions>
      <xilinx:supportedFamilies>
        <xilinx:family xilinx:lifeCycle="Production">zynq</xilinx:family>
      </xilinx:supportedFamilies>
      <xilinx:taxonomies>
        <xilinx:taxonomy>/UserIP</xilinx:taxonomy>
      </xilinx:taxonomies>
      <xilinx:displayName>Pattern Controller</xilinx:displayName>
      <xilinx:definitionSource>package_project</xilinx:definitionSource>
      <xilinx:coreRevision>4</xilinx:coreRevision>
      <xilinx:coreCreationDateTime>2017-07-30T00:03:39Z</xilinx:coreCreationDateTime>
      <xilinx:tags>
        <xilinx:tag xilinx:name="nopcore"/>
        <xilinx:tag xilinx:name="xilinx.com:user:pattern_controller:1.0_ARCHIVE_LOCATION">C:/xup/PYNQ_2_0_rel/ip/pattern_controller_1.1</xilinx:tag>
      </xilinx:tags>
    </xilinx:coreExtensions>
    <xilinx:packagingInfo>
      <xilinx:xilinxVersion>2016.1</xilinx:xilinxVersion>
      <xilinx:checksum xilinx:scope="busInterfaces" xilinx:value="444b145d"/>
      <xilinx:checksum xilinx:scope="fileGroups" xilinx:value="03a678bb"/>
      <xilinx:checksum xilinx:scope="ports" xilinx:value="73d9640b"/>
      <xilinx:checksum xilinx:scope="hdlParameters" xilinx:value="bc581699"/>
      <xilinx:checksum xilinx:scope="parameters" xilinx:value="57224d11"/>
    </xilinx:packagingInfo>
  </spirit:vendorExtensions>
</spirit:component>


These acrylic stands, also known as sign holders, are modern looking advertising tools. These acrylic stands are manufactured with 3/4" thick, polished acrylic and stand 45" high. Acrylic displays are durable and strong. Clear stands are ideal for busy areas like bank queue lines, hotel lobbies, retail front doors, and large offices.
A sign holder is included with this clear display stand for advertising an 8-1/2"w x 11h sheet straight from your printer! The sign holder display has a PVC lens frame cover. The PVC frame protects graphics from tampering. To place your graphic into the holder, lift the frame from the top and insert the graphic. Two side magnets secure the graphic from falling out. The sign holder displays an 8-1/2"w x 11"h standard graphic. These clear acrylic display stands are shipped in two separate pieces, but are easy to put together, taking only minutes to assemble.
11.8" x 45.0" x 10.3"


So, let me see if I have this right. We believe that God miraculously impregnated a woman without any human physical contact. We believe this baby was born in a stable in Bethlehem. We believe this baby was "God in flesh," God's son. We believe angels appeared in the sky to shepherds.
Why would God come to earth and why would angels seek out a few shepherds to inform of this great event? These shepherds lived in a nearly constant state of being ceremonially unclean. They raised sheep. They handled sheep. They got dirty in ways best not mentioned. The job was gross.
They endured loneliness and isolation from others because they were always moving from one pasture to another. They endured isolation from God. The ritual required by Pharisees to be clean enough to come into the temple was such a lengthy ordeal it was seldom worth the effort.
We are told "wise men"--astrologers--followed a bright star so they could offer fairly expensive gifts to this humble family. We believe this child grew up, was human in every way we are, worked in His father's carpentry shop, and lived a fairly normal Middle Eastern life until He was about thirty years old.
At that time, He suddenly began revealing who He is. He turned water into wine; not just any wine, but the finest wine ever tasted on planet earth. He touched people who could not walk and they walked. He touched people who were blind from birth and suddenly, for the first time in their lives, they could see. He approached a woman drawing the day's water at a local well and told her He knew everything about her. And what He knew was stuff the woman preferred He didn't know.
This man named Jesus started teaching about God and painting picture after picture of what God was like. The people of that day had accepted the fact that they were just not good religious people, that the church leaders, the Pharisees, were good religious people, and that God was really not interested in the bad people.
People accepted the reality that they would never measure up.
Men of status and power threw elaborate dinner parties; Jesus was occasionally invited. It was a men-only occasion. During one of those dinners, a very sinful woman who was overcome by the love and hope Jesus offered found Him, barged into the room, and bowed at His feet. She used a combination of tears and perfume to demonstrate her love for this man of God.
The men around the table could not believe that Jesus was allowing this to happen. By allowing this unclean woman to touch Him, He became unclean. Jesus had quite a reprimand for the men and knew their thoughts about this woman.
This story gets more bizarre with each passing moment.
And we who claim to be Christians believe this. We believe it so much we give money--sometimes a lot of money--to our churches because the Bible says God blesses tithing and generosity. We send our kids to Christian schools and make it to Sunday school and church most Sundays.
In other words: we build our lives around this virgin-born, God-in-flesh healer, forgiver, rule-breaker, one who welcomes the worst of society, one who claims that He will live even after He dies, one who says He will one day come back to take the rest of us where He is.
Many people declare this story a myth, the stuff of a fairy tale, a story that only the weak, gullible, and uneducated would consider true.
I'll admit I was a bit confused as a high school student until I visited the Holy Lands in the Middle East where this story of Jesus supposedly took place. This story became very believable as we read the Bible's account of the life of Jesus while looking at the places and signs of His presence on this earth. I saw it with my own eyes.
There is nothing anyone could say that will ever cause me to see it any other way. Since that journey into the lands where Jesus lived, I've personally experienced the virgin-born healer, forgiver, the one who died and came back to life.
I've personally experienced making decisions that did not make sense from a human standpoint, but made perfect sense according to the Bible. I've personally experienced the concept "give and it will be given to you." I've personally experienced the "nudge" that makes no sense but turns into a relationship with a young lady who became my wife. I've personally experienced the "nudge" that had me walk away from my dreams as a college graduate to go to a place I'd never lived and take a job I never thought I'd want. I've personally experienced the extreme discomfort of the "nudge" that takes you out of your comfort zone, places you in a position that is very uncomfortable, and yet God uses in ways completely impossible and unlikely. I have personally experienced "water into wine" miracles, feeling as dirty as that woman at the well, yet being used by God to let all the "dirty folks" know they are in fact loved by God.
I was not there at the manger that night when a baby was born to a virgin mother. I was not there when the angels showed up. I've never witnessed a blind person see or a crippled person walk. But I have personally seen God use a reluctant, sinful, uneducated, and undeserving kid (me) lead a group of people to take radical steps of faith and build a church that has impacted a city.
I'll never, ever be talked out of the journey that leads me to live by faith, be a voice of hope, and be known by love in my life, my home, my church, and my city.
Now you know why I'm so thankful to once again celebrate the arrival of God on the planet.


text:
Put Into Perspective – How Small Hedge Funds Outperform Bigger Rivals
Posted By: Sheeraz Raza Dec 11, 2015, 3:24 pm
Put Into Perspective – How Small Hedge Funds Outperform Bigger Rivals by Skenderbeg Alternative Investments
Bigger hedge funds didn't do as well as smaller ones over a recent 20-year stretch, and that disparity was even more pronounced during the 2008-09 financial crisis. So concludes a working paper by three finance professors at City University London. Among investors, however, "the demand has been for larger funds," says Nick Motson, one of the paper's authors. As of Oct. 31, an estimated 90% of the nearly $3 trillion of global hedge fund assets was in the hands of firms that manage more than $1 billion, according to HFR, a Chicago firm that tracks the industry. In contrast, firms overseeing less than $100 million accounted for under 5% of total assets. And roughly two-thirds of hedge fund assets are managed by the top 6% of all hedge-fund firms.
Motson and two colleagues, Andrew Clare and Dirk Nitzsche, crunched hedge fund returns stretching from January 1995 to December 2014. In all, they analyzed 7,261 funds, including those that had closed over that span, to avoid survivorship bias. They found that the largest funds—those in the top decile based on assets under management—returned 0.61% per month, on average. That's below the monthly re-turn of 0.75% for the funds in the bottom decile for assets. On a yearly basis, the behemoths averaged a 7.32% return, versus 9% for the smallest portfolios.
That's a pretty sizable gap, particularly since the larger funds typically market themselves as offering better infrastructure, including risk management, technology, and compliance capabilities, than do smaller funds. And they usually have more cachet, with recognizable-name partners. One possible explanation for the performance disparity, says Motson, is that the bigger a fund gets, the more closely it correlates with the overall market. "And there's only so much money you can put into your best ideas," he notes. Of course, the object of many hedge fund strategies is to zig when the stock market zags, in order to offer ballast to a portfolio. The numbers, also, are merely averages.
Scott Schweighauser, president of Aurora Investment Management, a nearly $8 billion fund of hedge funds, says that the paper's findings make sense, though he's agnostic when it comes to investing in a hedge fund based on size. It's important to understand the fee structure of hedge funds, which mainly generate revenue from two sources: a management fee, often 2% of assets under management, and an incentive fee, typically a 20% cut of the fund's profits. Smaller funds, Schweighauser says, are "much more attuned to generating returns that capture that incentive fee" because of their size. But, "as firms grow, the management fee becomes a much larger [part] of the overall revenue stream." Indeed, 2% of $20 million is a lot less than 2% of $3 billion. Schweighauser argues that a bigger firm with a more cautious, less vola-tile approach can work well, provided that it is what investors want.
Managing a lot more assets, however, can change a hedge fund firm's DNA, says Peter Borish, chief strategist at Quad Group, which helps smaller hedge funds with back-office functions, funding, and other support. He likens many of the large funds to a "supertanker" that isn't "nimble." There's also a tendency for larger funds to be more risk averse, says Borish, who worked for Tudor Investment for a decade with the firm's founder, Paul Tudor Jones. "If I take a risk and I'm wrong, I may lose assets," he says of the mind-set of some bigger funds. Borish also says that those in a position to allocate money tend to prefer established brands, which are easier to justify when there's a blowup, compared with when a small, newer fund runs into trouble.
The working paper, meanwhile, also found that larger funds trailed smaller ones during periods of financial stress, most notably the 2008-09 downturn. In 2008, for example, the funds in the tenth, or smallest, decile by size, outperformed the largest funds by 0.8% a month—losing 0.48% per month to the bigger funds' 1.28% monthly shortfall. Annualized, that's a 9.6% difference, a big discrepancy.
Schweighauser surmises that being nimbler and more reliant on their annual incentive fees may have enabled the smaller funds to do better than the bigger ones during that period of tumult. Smaller funds "are keenly focused on maximizing that incentive fee, which is a larger com-ponent of their revenue stream" than it is for bigger funds. He still believes that each fund needs to be evaluated individually. "One hundred million could be too much for someone, but $10 billion might not be enough for someone else," Schweighauser says. "It all depends on the strategy and the manager and the investment dynamics at the firm."
Motson, however, isn't so sure: "This trend of just investing in the largest funds is probably flawed," he says.
UBS says investors favor hedge funds as bond returns lackluster
Institutional investors seeking higher returns and portfolio diversification are allocating more to hedge funds as interest rates remain low, according to the chief investment officer of the hedge-fund platform at UBS Group AG. Those allocations are generally in the high single dig-its and can be as much as 20 percent, Bruce Amlicke, CIO at UBS Hedge Fund Solutions, said in an interview in Singapore. Five years ago, that share was "a couple of percent less," he said without elaborating.
"Monetary policy responses to drive interest rates lower pushed fixed-income markets and yields to a level where you can look at hedge funds as an alternative to fixed income," Amlicke said. "It's a global phenomenon." US treasuries returned 4.7 percent in the three years through the end of 2014, according to the US Treasury Master Index compiled by Bank of America Corp. That compares with a three-year return of 22.2 percent for the Eurekahedge Hedge Fund Index. This year, treasuries have returned 1 percent, less than half of the gains in the Eurekahedge index.
"The expected returns of investing in hedge funds are not the 10-plus returns of yesteryear," said Amlicke, who heads the $34.4 billion UBS hedge-fund platform that invests in 230 funds globally. "What people are hoping to capture in the zero-interest rate world, is Libor plus 400 basis points and then mitigating some of the risk of fixed-income and equity markets."
The importance of due diligence and manager selection
One of the most appealing aspects of alternative investments is that they're alternative to the major broad-market indices, allowing investors to increase their diversification through reduced correlation to traditional asset classes. The flip-side of this attribute is that alternatives don't really fit into a Morningstar "style box," and this makes them difficult to evaluate against "similar" strategies – or to even determine which strategies are actually similar.
How should one compare and benchmark alternative funds? This is one of the questions explored in a new white paper by Steben & Company CIO John Dolfin and Senior Portfolio Manager Christopher Maxey. Titled "The Importance of Manager Selection within the Alternative Investments World," the paper focuses on the role of fund of funds ("FoFs") in selecting alternative investments, and it looks at how inves-tors might conduct due diligence on their own.
The Role of Fund of Funds
"A quantitative comparison of alternative managers must be supplemented with solid qualitative due diligence and a diversified set of managers," according to Messrs. Dolfin and Maxey. Historically, FoF firms have filled this role for many investors, as FoFs have the experience and scale to conduct proper due diligence and to provide appropriate manager diversification.
In order to provide investors with a "resilient return stream across a variety of different market environments," FoFs must excel in two areas:
Manager selection
According to the paper's authors, not all FoFs are equally proficient at both of these vitally important aspects of FoF management. Those that are, however, are certainly worth their fees, as they can help investors avoid "bad apple" hedge funds that take unacceptable risks or are "outright frauds."
Authors Dolfin and Maxey conclude their white paper by comparing FoF managers to expert auto mechanics – you might be able to select investments on your own or repair your car "DIY," but most investors and drivers are probably better outsourcing the most specialized tasks to trusted experts.
For more information, download a pdf copy of the white paper.
DailyAlts
See full PDF below.
Sheeraz Raza
Sheeraz is our COO (Chief - Operations), his primary duty is curating and editing of ValueWalk. He is main reason behind the rapid growth of the business. Sheeraz previously ran a taxation firm. He is an expert in technology, he has over 5.5 years of design, development and roll-out experience for SEO and SEM. - Email: sraza(at)valuewalk.com
See which stocks are held by several Tiger Cubs, Seeds and Grand Cubs
How to protect yourself from Forex scams
7 Tips to Protect Your Investments from Online Fraud
Lagardere sues Amber Capital over a destabilization campaign

redpajama_set_name: RedPajamaCommonCrawl


As I walked down the middle of the dark and gritty ally that serves the seedy rear entrances to the four-hundred block of Franklin Street diners and pubs, I noted the mild weather. "Could have brought a jacket tonight." I thought. The heat had finally begun to lower the flag of Summer. It's foot soldiers just days before had gathered in force at every corner of Chapel Hill. Humid, cloaked in vapor, and standing steadfast, they peered over the tops of the tin covered flat roofed buildings skirting the length of Franklin Street and glared down upon the oppressed who traveled in groups from bar to bar quietly protesting the occupation with cut-offs and tank-tops. On this night however, the soldiers of the heat were in retreat and their grasp loosened. A soft breeze rustled the first fallen leaves across cool pavement under my feet was I walked. The streets were soon to be reclaimed and those who diligently maintained life and culture performing during the hottest of days on sweaty out door stages and sticky narrow rock clubs now celebrated out loud with smiles and new found energy. My night was spent with such folk, at The Cave in Chapel Hill where alt country songstress Anna Rose Beck gave redux of her July performance at a sweltering Nightlight and soulful Southern Rock young sons Jordan & the Sphinx emerged from shelter to pick up their smoldering guitars and perform a controlled burn on stage.
Jordan & the Sphinx embody blue collar rock and roll. This is a husband and wife fronted band and together they work hours which I doubt either have, or will ever, count. For seven days a week they punch out late from work only to wearily pick up guitars and punch out rock and roll even later. Playing shows, hosting shows, running sound at shows, going to shows… no matter how tired, they earn their life back after dark and revel with its creatures. At front, Jordan Dupree is a vastly underrated entity. The only thing better than the sweetly formed crunch of distortion from his Peavy tube amp is his deft and skilled maneuvers on his vintage six string. Thursday night's set however, was a stripped down acoustic and percussion performance. Jordan on the guitar, Robert Cantrell slapping the cajón, and Adrienne Christina was shaking a tambourine, laying down Motown-esque R&B harmonies, and for one killer moment….ripping hearts out with a harmonica. The sparse arrangements gave Jordan & the Sphinx opportunity to showcase their best instrument; Jordan. He is vocally set, no need to change a thing. Gravelly yet piercingly clear, commanding range yet happy staying close to home. His louds are soft and his softs are emotional. He is an eyes closed singer…its being drawn from within.
Up second was Anna Rose Beck who is both fun and mysterious to watch. Her arrival to the gigging circuit of the alt country Americana scenes Chapel Hill, Durham, and Raleigh, NC was hastey. Her transition from a senior at Duke having just picked up guitar and plucking it sparingly at open mic, too head lining her own cd release party was the course of a short year and a half, time which consistently moved her forwarded and has resulted thus far in creation of a well known and appreciated brand. There is mystery to observe in Anna Rose Beck's lyrics also. Born in the twilight years of the decadent eighties, her cheeks still glow with girlish youth under the lights of the stage, but her lyrics sing of experiences matured well beyond her years. Mysterious also in her confidence. So comfortable in her approach to a microphone and so underscoring with her hushy middle soprano intensity that you will seek explanation for how one so fair can reach so far.
With youth in one hand and car keys in the other her approach to what ever is next is being sought with just as much fervor. West to Ashville, east to Greenville, and points as far south as Georga have been recent drives for solo appearances. Midway through the set Anna also made mention that she was flying out to Austin in the A.M.
Speaking of the devil…Thursday's eye opening headliner, Monarchs, is on tour out of Austin and breezed through with a fresh and exciting indie rock-a-billy meets vintage swing mash up sound that I fancied is probably what's cool in Austin right now…and if so then they are probably the band which made it that way. Monarchs is fronted by the magnetic Celeste Griffin, a working man's Jenny Lewis…just as talented but likely will work harder just to proove her salt in smaller clubs. This is not to say that Monarchs are a poor man's Rilo Kiley however, if they finish out this tour with the same dazzle and spark displayed Thursday night, then they could be moving onto that block…might be moving into that house.
Previous PostPrevious a slew of performances up and coming.


text:
require 'omniauth/strategies/oauth'
require 'multi_json'

module OmniAuth
  module Strategies
    class Recereco < OmniAuth::Strategies::OAuth

      option :name, 'recereco'
      option :client_options, {
	      :site => "https://apidev.recereco.com",
	      :request_token_path => "/api/auth/requesttoken",
	      :authorize_path => "/api/auth/authorize",
	      :access_token_path => "/api/auth/accesstoken"
      }

      uid { raw_info['id'] }

      info do
        {
          :userId     => raw_info['userId'],
          :gender     => raw_info['gender'],
          :birthyear     => raw_info['birthyear'],
          :stateCode => raw_info['stateCode']
        }
      end

      extra do
        { :raw_info => raw_info }
      end

      def raw_info
        @raw_info ||= MultiJson.load(access_token.get("/api/1/userattr").body)
      rescue ::Errno::ETIMEDOUT
        raise ::Timeout::Error
      end

    end
  end
end

redpajama_set_name: RedPajamaGithub


text:
Decarboxylative C-H cross-coupling of azoles
Fengzhi Zhang, Michael F. Greaney
(Figure Presented) Côte d'Azole: The title reaction demon-strates the use of diverse oxazoles 2 as suitable substrates in cross-coupling reactions with azole-5-carboxylic acids 1 under palladium catalysis in the presence of copper carbonate. The reaction is successful for the synthesis of a range of bis(azole)s, and has been applied to the convergent synthesis of challenging poly azoles (dcpe = bis(dicyclohexylphosphi-no)ethane, DMSO = dimethyl sulfoxide, M.S. = molecular sieves). © 2010 Wiley-VCH Verlag GmbH & Co. KGaA.
https://doi.org/10.1002/anie.200906921
C-h activation
Cross-coupling
http://www3.interscience.wiley.com/cgi-bin/fulltext/123322953/PDFSTART
Dive into the research topics of 'Decarboxylative C-H cross-coupling of azoles'. Together they form a unique fingerprint.
Azole Chemistry 100%
Synthesis (Chemical) Chemistry 40%
Chemical Reaction Chemistry 40%
Catalysis Chemistry 20%
Cross-Coupling Reaction Chemistry 20%
Copper Chemistry 20%
Carbonate Chemistry 20%
Oxazole Chemistry 20%
Zhang, F., & Greaney, M. F. (2010). Decarboxylative C-H cross-coupling of azoles. Angewandte Chemie - International Edition, 49(15), 2768-2771. https://doi.org/10.1002/anie.200906921
Zhang, Fengzhi ; Greaney, Michael F. / Decarboxylative C-H cross-coupling of azoles. In: Angewandte Chemie - International Edition. 2010 ; Vol. 49, No. 15. pp. 2768-2771.
@article{6b785126b953472bbc1b6e7a09d7d0bc,
title = "Decarboxylative C-H cross-coupling of azoles",
abstract = "(Figure Presented) C{\^o}te d'Azole: The title reaction demon-strates the use of diverse oxazoles 2 as suitable substrates in cross-coupling reactions with azole-5-carboxylic acids 1 under palladium catalysis in the presence of copper carbonate. The reaction is successful for the synthesis of a range of bis(azole)s, and has been applied to the convergent synthesis of challenging poly azoles (dcpe = bis(dicyclohexylphosphi-no)ethane, DMSO = dimethyl sulfoxide, M.S. = molecular sieves). {\textcopyright} 2010 Wiley-VCH Verlag GmbH & Co. KGaA.",
keywords = "C-h activation, Catalysis, Cross-coupling, Heterocycles, Palladium",
author = "Fengzhi Zhang and Greaney, {Michael F.}",
note = "CAPLUS AN 2010:415821(Journal)",
doi = "10.1002/anie.200906921",
journal = "Angewandte Chemie. International Edition",
publisher = "John Wiley & Sons Ltd",
Zhang, F & Greaney, MF 2010, 'Decarboxylative C-H cross-coupling of azoles', Angewandte Chemie - International Edition, vol. 49, no. 15, pp. 2768-2771. https://doi.org/10.1002/anie.200906921
Decarboxylative C-H cross-coupling of azoles. / Zhang, Fengzhi; Greaney, Michael F.
In: Angewandte Chemie - International Edition, Vol. 49, No. 15, 01.04.2010, p. 2768-2771.
T1 - Decarboxylative C-H cross-coupling of azoles
AU - Zhang, Fengzhi
AU - Greaney, Michael F.
N1 - CAPLUS AN 2010:415821(Journal)
N2 - (Figure Presented) Côte d'Azole: The title reaction demon-strates the use of diverse oxazoles 2 as suitable substrates in cross-coupling reactions with azole-5-carboxylic acids 1 under palladium catalysis in the presence of copper carbonate. The reaction is successful for the synthesis of a range of bis(azole)s, and has been applied to the convergent synthesis of challenging poly azoles (dcpe = bis(dicyclohexylphosphi-no)ethane, DMSO = dimethyl sulfoxide, M.S. = molecular sieves). © 2010 Wiley-VCH Verlag GmbH & Co. KGaA.
AB - (Figure Presented) Côte d'Azole: The title reaction demon-strates the use of diverse oxazoles 2 as suitable substrates in cross-coupling reactions with azole-5-carboxylic acids 1 under palladium catalysis in the presence of copper carbonate. The reaction is successful for the synthesis of a range of bis(azole)s, and has been applied to the convergent synthesis of challenging poly azoles (dcpe = bis(dicyclohexylphosphi-no)ethane, DMSO = dimethyl sulfoxide, M.S. = molecular sieves). © 2010 Wiley-VCH Verlag GmbH & Co. KGaA.
KW - C-h activation
KW - Catalysis
KW - Cross-coupling
KW - Heterocycles
KW - Palladium
U2 - 10.1002/anie.200906921
DO - 10.1002/anie.200906921
JO - Angewandte Chemie. International Edition
JF - Angewandte Chemie. International Edition
Zhang F, Greaney MF. Decarboxylative C-H cross-coupling of azoles. Angewandte Chemie - International Edition. 2010 Apr 1;49(15):2768-2771. doi: 10.1002/anie.200906921


How much should I pay for ATM Network Services?
What is the average price of ATM Network Services?
This procurement report includes pricing information to help you purchase ATM Network Services. Our analysts provide a benchmark price and a price range based on key pricing factors to help you understand what you should be paying for this specific product or service. To see the average price for this and hundreds of other products and services, subscribe to ProcurementIQ.
Has the price of ATM Network Services been rising or falling?
I'm not ready to purchase ATM Network Services yet. Will I pay more if I wait too long?
What other costs are associated with purchasing ATM Network Services?
Our analysts calculate the total cost of ownership and assign a level of low, moderate or high, depending on things like customization, integration and installation. Use this information to budget for ATM Network Services with a reduced risk of unexpected costs.
Where can I purchase ATM Network Services?
The market for ATM network services exhibits a high degree of concentration, wherein the top four vendors account for more than 50.0% of total market revenue. High concentration stems from a substantial number of mergers and acquisitions among suppliers. Vendors have been encouraged to consolidate because of network externalities, which... Subscribe to learn more.
How many ATMs are in your network currently?
Where are the ATMs in your network located?
How has your network grown during the past five years?
What plans do you have to expand your network during the next five years?
Do you assist with marketing the network to my cardholders? If so, what methods do you employ?
What online tools or applications do you have to help my cardholders locate ATMs in your network?
What other services do you offer? Can these be bundled with ATM network services for any discounts?
What should my ATM Network Services RFP include?
Buyers should evaluate references from vendors' clients.
How risky is the ATM Network Services supply chain?
The supply chain risk for ATM network services is low. Vendors source goods and services from a number of upstream suppliers, including database, storage and backup software publishers, computer manufacturers, copier and office equipment wholesalers, information technology (IT) consulting firms and commercial real estate lessors. The markets for these inputs... Subscribe to learn more.


text:
Accelerating Mini-grid Deployment for Energy Access | Energy Access Practitioner Network
Accelerating Mini-grid Deployment for Energy Access
Green Mini-Grids Africa – Update on the DFID-Supported Programme
By: Steven Hunt, Deputy Team Leader, Sustainable Energy Team, UK Department for International Development
The Green Mini-Grids Africa programme aims to help transform the Green Mini-Grids (GMGs) sector in Africa into a thriving industry on track to deliver IEA's estimate that over 40% of universal access to electricity by 2030 will be most economically delivered by mini-grids. The intention is to achieve this by supporting a critical mass of experience and evidence of success in the two countries of Kenya and Tanzania, coupled with improved policy and market conditions for mini-grids regionally.
The UK will provide total support of £75m from the International Climate Fund, of which £60m is intended to support project preparation and leverage private investment in Green Mini-Grids in Kenya and Tanzania. The remaining £15m will support a regional facility for market preparation, evidence and policy development, and prepare for wider scale-up of Green Mini-Grids across Africa. Funding commenced in 2014 and will run until 2019.
From late 2012, the UK Department for International Development (DFID) ran a series of consultations, research, analysis and modelling activities to consider if and how the UK's International Climate Fund (ICF) could play a potentially transformational role in accelerating the growth of the Green Mini-Grids (GMGs) sector in Africa. This exercise collected evidence on the opportunities and barriers to scale-up, and explored the potential for green mini-grids in a number of countries. The report is available online here. Following up on this, a substantial programme of support was approved in mid-2014.
The DFID-Supported programme consists of 4 projects:
GMGs Kenya – working with the French development agency AFD, providing support to project preparation and capital/credit availability
GMGs Tanzania – part of a comprehensive package of support on energy working with the Tanzanian Rural Energy Agency, the Swedish development agency SIDA and the World Bank, providing support to project preparation and capital/credit availability
GMGs Africa Regional Facility – working with the Sustainable Energy Fund for Africa (SEFA) (co-funded by Denmark and USAID/Power Africa) and the Sustainable Energy for All (SE4All) Africa Hub at the African Development Bank (AfDB), to provide a series of business lines of support to countries and the sector to develop GMGs markets
GMGs Action Learning and Evaluation – working with the Energy Sector Management Assistance Programme (ESMAP) at the World Bank, as part of their new Global GMGs Facility (Denmark has also pledged support to the programme), to commission research into knowledge and data gaps, as well as to convene and exchange learning in the sector.
In the past 12 months these four projects have been moving through intensive inception phases, putting in place the agreements and staffing needed to deliver their complementary roles. Each has seen successes and challenges:
In Kenya, a dynamic market responded strongly to a call for expressions of interest in the programme in early 2015, providing evidence of a strong and quality pipeline of mini-grids firms and projects. In the same period, Powerhive became the first private mini-grid firm in Kenya to be granted a license to distribute power, however, key uncertainties in the regulatory environment for private provision of mini-grid power remain. Nonetheless, the inception phase is in the final stages with flexible support instruments in Kenya expected to open mid-2016.
In Tanzania, a multi-donor effort is building on the positive regulatory foundation for rural electrification and mini-grids in particular, with a comprehensive programme of support integrating Sweden, World Bank and UK support working with the Rural Energy Agency (REA). However, while intergovernmental co-operation provides a long term framework for coordinated support, it takes time to put in place. The next stage is tendering out the consolidated Technical Assistance/Management function and the support, expected to focus on project preparation, results-based financing, and credit-lines, will be in the market likely in the second half of next year.
The GMGs Regional Facility at the AfDB/SE4ALL Africa Hub has started strongly recruiting a mini-grid specialist and having a project on support to GMGs regulation in Mozambique approved as well as the first phase of the GMGs Market Development Programme (MDP) after a consultation process involving the members of the Clean Energy Mini-grids initiative of SE4ALL. The MDP includes business lines on market intelligence, business development support, access to finance, policy and quality assurance and tenders are currently in process on the first three of these. A call for expressions of interest from African governments for support on policy, legal and regulatory matters regarding their mini-grids markets was launched at the 2015 SE4ALL Forum in May, and received an extremely strong response from 20 countries, with six countries having been selected for possible SEFA support in 2015-16.
The Action Learning and Evaluation component convened the first learning and exchange event in Dar- es Salaam, Tanzania in March 2015, which brought together the programme as a whole for the first time along with leading mini-grids developers. The group was able to participate in a field visit to see the pioneering mini-grids of Devergy near Morogoro (see photographs). A Research Advisory Group has been appointed to oversee commissioning of research and a new Senior Energy Specialist, who is the task team leader for the Global Facility for the Promotion of Clean Energy Mini-Grids is now in place at the World Bank/ESMAP. The first call for proposals on evidence and innovation should be issued in early 2016.
The DFID-supported GMGs Africa programme is intended to be fully integrated into the Clean Energy Mini-Grids work of the Sustainable Energy for All Initiative, and forms the UK's main contribution to its objectives. At the country levels, working in partnership, it is hoped that support in Kenya and Tanzania will help these countries develop critical mass of GMGs deployment and experience with regional significance. The resources provided to the World Bank and African Development Bank are intended to help further countries develop their mini-grids sectors, as well as support the mini-grids sector at regional level to develop, learn and reach more people – as a contribution towards the objectives of the Global Goal 7, to ensure access to affordable, reliable, sustainable and modern energy for all.
For further information on the GMGs Africa programme, please contact
GMGs Kenya – Sabita-Thapa@dfid.gov.uk, honorea@afd.fr
GMGs Tanzania – T.Bushell@dfid.gov.uk, jorgen.eriksson@gov.se
GMGs Regional Facility – S-Hunt@dfid.gov.uk, J.Cunha@afdb.org
Action Learning and Evaluation – S-Hunt@dfid.gov.uk, jexel@worldbank.org
General Inquiries – S-Hunt@dfid.gov.uk


text:
    This page contains statistical information gathered by experimentally applying simple Data Mining techniques to a linguistic corpus.

    For further details, please refer to the Valkyrie project on GitHub.


text:
import * as FS from 'utils/fs';
import FileMetadata from 'vfs/file';
import FileDataURL from 'vfs/filedataurl';
import Process from 'core/process';
import MountManager from 'core/mount-manager';
import PackageManager from 'core/package-manager';
import SettingsManager from 'core/settings-manager';
import Connection from 'core/connection';
import Promise from 'bluebird';
import {_} from 'core/locales';

let watches = [];

/**
 * A supported file data type
 * @typedef {(window.File|window.Blob|FileMetadata|FileDataURL)} File
 */

/////////////////////////////////////////////////////////////////////////////
// HELPERS
/////////////////////////////////////////////////////////////////////////////

/*
 * The default callback function when none was defined
 */
function noop(err, res) {
  if ( err ) {
    console.error('VFS operation without callback caused an error', err);
  } else {
    console.warn('VFS operation without callback', res);
  }
}

/*
 * Check if given item has an aliased mount associated with it
 * and return the real path
 */
function hasAlias(item, retm) {
  const module = MountManager.getModuleFromPath(item.path);

  if ( module ) {
    const match = module.option('match');
    const options = module.option('options');
    if ( options && options.alias ) {
      return retm ? module : item.path.replace(match, options.alias);
    }
  }

  return false;
}

/*
 * Will transform the argument to a VFS.File instance
 * or throw an error depending on input
 */
function checkMetadataArgument(item, err, checkRo) {
  if ( typeof item === 'string' ) {
    item = new FileMetadata(item);
  } else if ( typeof item === 'object' && item.path ) {
    item = new FileMetadata(item);
  }

  if ( !(item instanceof FileMetadata) ) {
    throw new TypeError(err || _('ERR_VFS_EXPECT_FILE'));
  }

  const alias = hasAlias(item);
  if ( alias ) {
    item.path = alias;
  }

  const mountpoint = MountManager.getModuleFromPath(item.path);
  if ( !mountpoint ) {
    throw new Error(_('ERR_VFSMODULE_NOT_FOUND_FMT', item.path));
  }

  if ( checkRo && mountpoint.isReadOnly() ) {
    throw new Error(_('ERR_VFSMODULE_READONLY_FMT', mountpoint.name));
  }

  return item;
}

/*
 * Check if targets have the same transport/module
 */
function hasSameTransport(src, dest) {
  // Modules using the normal server API
  const msrc = MountManager.getModuleFromPath(src.path);
  const mdst = MountManager.getModuleFromPath(dest.path);

  if ( !msrc || !mdst || (msrc === mdst) ) {
    return true;
  }

  if ( (msrc && mdst) && (msrc.option('internal') && mdst.option('internal')) ) {
    return true;
  }

  return msrc.option('transport') === mdst.option('tranport');
}

/*
 * A wrapper for checking if a file exists
 */
function existsWrapper(item, options) {
  options = options || {};

  if ( options.overwrite ) {
    return Promise.resolve();
  }

  return new Promise((resolve, reject) => {
    exists(item).then((result) => {
      if ( result ) {
        return reject(new Error(_('ERR_VFS_FILE_EXISTS')));
      }
      return resolve();
    }).catch((error) => {
      if ( error ) {
        console.warn('existsWrapper() error', error);
      }
      reject(error);
    });
  });
}

/*
 * Creates the '..' entry for scandir if not detected
 */
function createBackLink(item, result, alias, oitem) {
  const path = item.path.split('://')[1].replace(/\/+/g, '/').replace(/^\/?/, '/');

  let isOnRoot = path === '/';
  if ( alias ) {
    isOnRoot = (oitem.path === alias.root);
  }

  if ( !isOnRoot ) {
    const foundBack = result.some(function(iter) {
      return iter.filename === '..';
    });

    if ( !foundBack ) {
      return new FileMetadata({
        filename: '..',
        path: FS.dirname(item.path),
        mime: null,
        size: 0,
        type: 'dir'
      });
    }
  }

  return false;
}

/*
 * Checks if an action mathes given path
 */
function checkWatches(msg, obj) {
  watches.forEach(function(w) {
    const checkPath = w.path;

    function _check(f) {
      if ( w.type === 'dir' ) {
        return f.path.substr(0, checkPath.length) === checkPath;
      }
      return f.path === checkPath;
    }

    let wasTouched = false;
    if ( obj.destination ) {
      wasTouched = _check(obj.destination);
      if ( !wasTouched ) {
        wasTouched = _check(obj.source);
      }
    } else {
      wasTouched = _check(obj);
    }

    if ( wasTouched ) {
      w.cb(msg, obj);
    }
  });
}

/*
 * See if given item matches up with any VFS modules with aliases
 * and return given entry.
 */
function findAlias(item) {
  const mm = MountManager;

  let found = null;
  mm.getModules().forEach(function(iter) {
    if ( !found && iter.option('options').alias ) {
      const a = iter.option('options').alias;
      if ( item.path.substr(0, a.length) === a ) {
        found = iter;
      }
    }
  });

  return found;
}

function convertWriteData(data, mime) {
  const convertTo = (m, d, resolve, reject) => {
    FS[m](d, mime, function(error, response) {
      if ( error ) {
        reject(new Error(error));
      } else {
        resolve(response);
      }
    });
  };

  return new Promise((resolve, reject) => {
    try {
      if ( typeof data === 'string' ) {
        if ( data.length ) {
          return convertTo('textToAb', data, resolve, reject);
        }
      } else {
        if ( data instanceof FileDataURL ) {
          return convertTo('dataSourceToAb', data.toString(), resolve, reject);
        } else if ( window.Blob && data instanceof window.Blob ) {
          return convertTo('blobToAb', data, resolve, reject);
        }
      }
    } catch ( e ) {
      return reject(e);
    }

    return resolve(data);
  });
}

function requestWrapper(mountpoint, method, args, options, appRef) {
  console.info('VFS operation', ...arguments);
  if ( !mountpoint ) {
    return Promise.reject(new Error(_('ERR_VFSMODULE_INVALID')));
  }

  return new Promise((resolve, reject) => {
    mountpoint.request(method, args, options).then((response) => {
      return Connection.instance.onVFSRequestCompleted(mountpoint, method, args, response, appRef)
        .then(() => resolve(response)).catch(reject);
    }).catch(reject);
  });
}

function performRequest(method, args, options, test, appRef, errorStr) {
  return new Promise((resolve, reject) => {
    if ( options && !(options instanceof Object) ) {
      reject(new TypeError(_('ERR_ARGUMENT_FMT', 'VFS::' + method, 'options', 'Object', typeof options)));
      return;
    }

    const mountpoint = MountManager.getModuleFromPath(test);
    if ( !mountpoint ) {
      reject(new Error(_('ERR_VFSMODULE_NOT_FOUND_FMT', test)));
      return;
    }

    requestWrapper(mountpoint, method, args, options, appRef).then(resolve).catch(reject);
  });
}

/////////////////////////////////////////////////////////////////////////////
// VFS METHODS
/////////////////////////////////////////////////////////////////////////////

/*
 * Wrapper for broadcasting VFS messages
 */
export function broadcastMessage(msg, item, appRef) {
  function _message(i) {
    Process.message(msg, i, {source: appRef ? appRef.__pid : null});

    checkWatches(msg, item);
  }

  // Makes sure aliased paths are called for
  const aliased = (function() {
    function _transform(i) {
      if ( i instanceof FileMetadata ) {
        const n = new FileMetadata(i);
        const alias = findAlias(n);
        if ( alias ) {
          n.path = n.path.replace(alias.option('options').alias, alias.option('root'));
          return n;
        }
      }

      return false;
    }

    if ( item instanceof FileMetadata ) {
      return _transform(item);
    } else if ( item && item.destination && item.source ) {
      return {
        source: _transform(item.source),
        destination: _transform(item.destination)
      };
    }

    return null;
  })();

  _message(item);

  const tuple = aliased.source || aliased.destination;
  if ( aliased && (aliased instanceof FileMetadata || tuple) ) {
    if ( tuple ) {
      aliased.source = aliased.source || item.source;
      aliased.destination = aliased.destination || item.destination;
    }

    _message(aliased);
  }
}

/**
 * Find file(s)
 *
 * @param  {FileMetadata} item              Root path
 * @param  {Object}       args              Search query
 * @param  {Object}       [options]         Set of options
 * @param  {String}       options.query     The search query string
 * @param  {Number}       [options.limit]   Limit results to this amount
 * @return {Promise<Array, Error>}
 */
export function find(item, args, options) {
  options = options || {};

  if ( arguments.length < 2 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return performRequest('find', [item, args], options, item.path, null, 'ERR_VFSMODULE_FIND_FMT');
}

/**
 * Scandir
 *
 * @desc Scans a directory for files and directories.
 *
 * @param  {FileMetadata}    item                             File Metadata
 * @param  {Object}          [options]                        Set of options
 * @param  {String}          [options.typeFilter]             Filter by 'file' or 'dir'
 * @param  {Array}           [options.mimeFilter]             Array of mime regex matchers
 * @param  {Boolean}         [options.showHiddenFiles=true]   Show hidden files
 * @param  {Boolean}         [options.backlink=true]          Return '..' when applicable
 * @param  {String}          [options.sortBy=null]            Sort by this key
 * @param  {String}          [options.sortDir='asc']          Sort in this direction
 * @return {Promise<Array, Error>}
 */
export function scandir(item, options) {
  const vfsSettings = SettingsManager.get('VFS');

  options = options || {};

  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  const oitem = new FileMetadata(item);
  const alias = hasAlias(oitem, true);

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return new Promise((resolve, reject) => {
    performRequest('scandir', [item], options, item.path, null, 'ERR_VFSMODULE_SCANDIR_FMT').then((result) => {
      if ( result instanceof Array ) {

        result = FS.filterScandir(result, options, vfsSettings);

        if ( alias ) {
          result = result.map(function(iter) {
            const isShortcut = iter.shortcut === true;
            const niter = new FileMetadata(iter);
            if ( !isShortcut ) {
              const str = iter.path.replace(/\/?$/, '');
              const opt = alias.option('options') || {};
              const tmp = opt.alias.replace(/\/?$/, '');
              niter.path = FS.pathJoin(alias.option('root'), str.replace(tmp, ''));
            }

            return niter;
          });
        }

        // Inserts the correct '..' entry if missing
        if ( options.backlink !== false ) {
          const back = createBackLink(item, result, alias, oitem);
          if ( back ) {
            result.unshift(back);
          }
        }
      }
      return resolve(result);
    }).catch(reject);
  });
}

/**
 * Write File
 *
 * @desc Writes data to a file
 *
 * @param  {FileMetadata} item          File Metadata (you can also provide a string)
 * @param  {File}         data          File Data (see supported types)
 * @param  {Object}       [options]     Set of options
 * @param  {Application}  [appRef]      Reference to an Application
 * @return {Promise<Boolean, Error>}
 */
export function write(item, data, options, appRef) {
  options = options || {};

  if ( arguments.length < 2 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item, null, true);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return new Promise((resolve, reject) => {
    const mountpoint = MountManager.getModuleFromPath(item.path);
    convertWriteData(data, item.mime).then((ab) => {

      requestWrapper(mountpoint, 'write', [item, ab], options, appRef).then(resolve).catch((e) => {
        reject(new Error(_('ERR_VFSMODULE_WRITE_FMT', e)));
      });

      return true;
    }).catch((e) => {
      reject(new Error(_('ERR_VFSMODULE_WRITE_FMT', e)));
    });
  });
}

/**
 * Read File
 *
 * @desc Reads data from a file
 *
 * @param  {FileMetadata} item                File Metadata (you can also provide a string)
 * @param  {Object}       [options]           Set of options
 * @param  {String}       [options.type]      What to return, default: binary. Can also be: text, datasource, json
 * @return {Promise<ArrayBuffer, Error>}
 */
export function read(item, options) {
  options = options || {};

  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return new Promise((resolve, reject) => {
    const mountpoint = MountManager.getModuleFromPath(item.path);
    requestWrapper(mountpoint, 'read', [item], options).then((response) => {
      if ( options.type ) {
        const types = {
          datasource: () => new Promise((yes, no) => {
            FS.abToDataSource(response, item.mime, function(error, dataSource) {
              return error ? no(error) : yes(dataSource);
            });
          }),
          text: () => new Promise((yes, no) => {
            FS.abToText(response, item.mime, function(error, text) {
              return error ? no(error) : yes(text);
            });
          }),
          blob: () => new Promise((yes, no) => {
            FS.abToBlob(response, item.mime, function(error, blob) {
              return error ? no(error) : yes(blob);
            });
          }),
          json: () => new Promise((yes, no) => {
            FS.abToText(response, item.mime, function(error, text) {
              let jsn;
              if ( typeof text === 'string' ) {
                try {
                  jsn = JSON.parse(text);
                } catch ( e ) {
                  console.warn('VFS::read()', 'readToJSON', e.stack, e);
                }
              }
              return error ? no(error) : yes(jsn);
            });
          })
        };

        const type = options.type.toLowerCase();
        if ( types[type] ) {
          return types[type]().then(resolve).catch(reject);
        }
      }

      return resolve(response);
    }).catch((e) => {
      reject(new Error(_('ERR_VFSMODULE_READ_FMT', e)));
    });
  });
}

/**
 * Copy File
 *
 * @desc Copies a file to a destination
 *
 * @param  {FileMetadata}   src                   Source File Metadata (you can also provide a string)
 * @param  {FileMetadata}   dest                  Destination File Metadata (you can also provide a string)
 * @param  {Object}         [options]             Set of options
 * @param  {Boolean}        [options.overwrite]   If set to true it will not check if the destination exists
 * @param  {Application}    [appRef]              Seference to an Application
 * @return {Promise<Boolean, Error>}
 */
export function copy(src, dest, options, appRef) {
  options = options || {};

  if ( arguments.length < 2 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    src = checkMetadataArgument(src, _('ERR_VFS_EXPECT_SRC_FILE'));
    dest = checkMetadataArgument(dest, _('ERR_VFS_EXPECT_DST_FILE'), true);
  } catch ( e ) {
    return Promise.reject(e);
  }

  options = Object.assign({}, {
    type: 'binary',
    dialog: null
  }, options);

  options.arrayBuffer = true;

  function dialogProgress(prog) {
    if ( options.dialog ) {
      options.dialog.setProgress(prog);
    }
  }

  const promise = new Promise((resolve, reject) => {
    existsWrapper(dest, options).then(() => {
      const sourceMountpoint  = MountManager.getModuleFromPath(src.path);
      const destMountpoint = MountManager.getModuleFromPath(dest.path);
      if ( hasSameTransport(src, dest) ) {
        requestWrapper(sourceMountpoint, 'copy', [src, dest], options, appRef).then(() => {
          dialogProgress(100);

          return resolve(true);
        }).catch(reject);
      } else {
        requestWrapper(sourceMountpoint, 'read', [src], options, appRef).then((data) => {
          dialogProgress(50);

          return requestWrapper(destMountpoint, 'write', [dest, data], options, appRef).then((res) => {
            dialogProgress(100);

            return resolve(res);
          }).catch(reject);
        }).catch(reject);
      }
      return true;
    }).catch(reject);
  });

  return new Promise((resolve, reject) => {
    promise.then(resolve).catch((e) => {
      dialogProgress(100);

      reject(new Error(_('ERR_VFSMODULE_COPY_FMT', e)));
    });
  });
}

/**
 * Move File
 *
 * @desc Moves a file to a destination
 *
 * @param  {FileMetadata}   src                   Source File Metadata (you can also provide a string)
 * @param  {FileMetadata}   dest                  Destination File Metadata (you can also provide a string)
 * @param  {Object}         [options]             Set of options
 * @param  {Boolean}        [options.overwrite]   If set to true it will not check if the destination exists
 * @param  {Application}    [appRef]              Seference to an Application
 * @return {Promise<Boolean, Error>}
 */
export function move(src, dest, options, appRef) {
  options = options || {};

  if ( arguments.length < 2 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    src = checkMetadataArgument(src, _('ERR_VFS_EXPECT_SRC_FILE'));
    dest = checkMetadataArgument(dest, _('ERR_VFS_EXPECT_DST_FILE'), true);
  } catch ( e ) {
    return Promise.reject(e);
  }

  function dialogProgress(prog) {
    if ( options.dialog ) {
      options.dialog.setProgress(prog);
    }
  }

  const promise = new Promise((resolve, reject) => {
    existsWrapper(dest, options).then(() => {
      const sourceMountpoint  = MountManager.getModuleFromPath(src.path);
      const destMountpoint = MountManager.getModuleFromPath(dest.path);
      if ( hasSameTransport(src, dest) ) {
        requestWrapper(sourceMountpoint, 'move', [src, dest], options, appRef).then(() => {
          dialogProgress(100);

          return resolve(true);
        }).catch(reject);
      } else {
        requestWrapper(sourceMountpoint, 'read', [src], options, appRef).then((data) => {
          dialogProgress(50);

          return requestWrapper(destMountpoint, 'write', [dest, data], options, appRef).then((res) => {
            return requestWrapper(sourceMountpoint, 'unlink', [src], options, appRef).then((res) => {
              dialogProgress(100);

              return resolve(res);
            }).catch(reject);
          }).catch(reject);
        }).catch(reject);
      }
      return true;
    }).catch(reject);
  });

  return new Promise((resolve, reject) => {
    promise.then(resolve).catch((e) => {
      dialogProgress(100);

      reject(new Error(_('ERR_VFSMODULE_MOVE_FMT', e)));
    });
  });
}

/**
 * Alias of move
 * @alias move
 *
 * @param  {FileMetadata}   src                   Source File Metadata (you can also provide a string)
 * @param  {FileMetadata}   dest                  Destination File Metadata (you can also provide a string)
 * @param  {Object}         [options]             Set of options
 * @param  {Boolean}        [options.overwrite]   If set to true it will not check if the destination exists
 * @param  {Application}    [appRef]              Seference to an Application
 * @return {Promise<Boolean, Error>}
 */
export function rename(src, dest) {
  return move(...arguments);
}

/**
 * Delete File
 *
 * This function currently have no options.
 *
 * @desc Deletes a file
 *
 * @param  {FileMetadata} item                  File Metadata (you can also provide a string)
 * @param  {Object}       [options]             Set of options
 * @param  {Application}  [appRef]              Reference to an Application
 * @return {Promise<Boolean, Error>}
 */
export function unlink(item, options, appRef) {
  options = options || {};

  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item, null, true);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return new Promise((resolve, reject) => {
    performRequest('unlink', [item], options, item.path, appRef, 'ERR_VFSMODULE_UNLINK_FMT').then((response) => {
      const pkgdir = SettingsManager.instance('PackageManager').get('PackagePaths', []);

      const found = pkgdir.some(function(i) {
        const chkdir = new FileMetadata(i);
        const idir = FS.dirname(item.path);
        return idir === chkdir.path;
      });

      if ( found ) {
        PackageManager.generateUserMetadata(function() {});
      }

      return resolve(response);
    }).catch(reject);
  });
}

/**
 * Create Directory
 *
 * @desc Creates a directory
 *
 * @param  {FileMetadata} item                  File Metadata (you can also provide a string)
 * @param  {Object}       [options]             Set of options
 * @param  {Boolean}      [options.overwrite]   If set to true it will not check if the destination exists
 * @param  {Application}  [appRef]              Reference to an Application
 * @return {Promise<Boolean, Error>}
 */
export function mkdir(item, options, appRef) {
  options = options || {};

  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item, null, true);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return performRequest('mkdir', [item], options, item.path, appRef, 'ERR_VFSMODULE_MKDIR_FMT');
}

/**
 * Check if file exists
 *
 * @desc Check if a target exists
 *
 * @param  {FileMetadata} item      File Metadata (you can also provide a string)
 * @return {Promise<Boolean, Error>}
 */
export function exists(item) {
  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return performRequest('exists', [item], {}, item.path, null, 'ERR_VFSMODULE_EXISTS_FMT');
}

/**
 * Get file info
 *
 * @desc Gets information about a file
 *
 * @param  {FileMetadata} item      File Metadata (you can also provide a string)
 * @return {Promise<Object, Error>}
 */
export function fileinfo(item) {
  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return performRequest('fileinfo', [item], {}, item.path, null, 'ERR_VFSMODULE_FILEINFO_FMT');
}

/**
 * Get file URL
 *
 * @desc Gets absolute HTTP URL to a file
 *
 * @param  {FileMetadata} item      File Metadata (you can also provide a string)
 * @param  {Object}       [options] Set of options
 * @return {Promise<String, Error>}
 */
export function url(item, options) {
  options = options || {};

  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return performRequest('url', [item], options, item.path, null, 'ERR_VFSMODULE_URL_FMT');
}

/**
 * Upload file(s)
 *
 * @desc Uploads a file to the target from browser
 *
 * @param  {Object}          args                      Function arguments (see below)
 * @param  {String}          args.destination          Full path to destination
 * @param  {Array}           args.files                Array of 'File'
 * @param  {Object}          [options]                 Set of options
 * @param  {Boolean}         [options.overwrite=false] If set to true it will not check if the destination exists
 * @param  {Application}     [appRef]                  Reference to an Application
 * @return {Promise<FileMetadata, Error>}
 */
export function upload(args, options, appRef) {
  args = args || {};

  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }
  if ( !args.files ) {
    return Promise.reject(new Error(_('ERR_VFS_UPLOAD_NO_FILES')));
  }
  if ( !args.destination ) {
    return Promise.reject(new Error(_('ERR_VFS_UPLOAD_NO_DEST')));
  }

  const dest = new FileMetadata(args.destination);
  const mountpoint = MountManager.getModuleFromPath(args.destination);

  return new Promise((resolve, reject) => {
    Promise.all(args.files.map((f) => {
      const filename = (f instanceof window.File) ? f.name : f.filename;
      const fileDest = new FileMetadata(FS.pathJoin(args.destination, filename));

      return new Promise((resolve, reject) => {
        existsWrapper(fileDest, options).then(() => {
          return requestWrapper(mountpoint, 'upload', [dest, f], options, appRef)
            .then(resolve).catch(reject);
        }).catch(reject);
      });
    })).then(resolve).catch((e) => {
      reject(new Error(_('ERR_VFS_UPLOAD_FAIL_FMT', e)));
    });
  });
}

/**
 * Download a file
 *
 * @desc Downloads a file to the computer
 *
 * @param  {FileMetadata} file      File Metadata (you can also provide a string)
 * @return {Promise<String, Error>}
 */
export function download(file) {
  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    file = checkMetadataArgument(file);
  } catch ( e ) {
    return Promise.reject(e);
  }

  if ( !file.path ) {
    return Promise.reject(new Error(_('ERR_VFS_DOWNLOAD_NO_FILE')));
  }

  const promise = new Promise((resolve, reject) => {
    const mountpoint = MountManager.getModuleFromPath(file);
    requestWrapper(mountpoint, 'download', [file], {}).then(() => {

      if ( mountpoint.option('internal') ) {
        mountpoint.download(file).then(resolve).catch(reject);
      } else {
        mountpoint.read(file).then(resolve).catch(reject);
      }

      return true;
    });
  });

  return new Promise((resolve, reject) => {
    promise.then(resolve).catch((e) => {
      reject(new Error(_('ERR_VFS_DOWNLOAD_FAILED', e)));
    });
  });
}

/**
 * Move file to trash (Not used in internal storage)
 *
 * @desc Trashes a file
 *
 * @param  {FileMetadata} item      File Metadata (you can also provide a string)
 * @return {Promise<Boolean, Error>}
 */
export function trash(item) {
  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return performRequest('trash', [item], {}, item.path, null, 'ERR_VFSMODULE_TRASH_FMT');
}

/**
 * Restore file from trash
 *
 * @desc Removes a file from trash
 *
 * @param  {FileMetadata} item      File Metadata (you can also provide a string)
 * @return {Promise<Boolean, Error>}
 */
export function untrash(item) {
  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return performRequest('untrash', [item], {}, item.path, null, 'ERR_VFSMODULE_UNTRASH_FMT');
}

/**
 * Permanently empty trash
 *
 * @desc Empties the trash
 * @return {Promise<Boolean, Error>}
 */
export function emptyTrash() {
  return performRequest('emptyTrash', [], {}, null, null, 'ERR_VFSMODULE_EMPTYTRASH_FMT');
}

/**
 * Checks for free space in given protocol from file
 *
 * Result is -1 when unavailable
 *
 * @desc Gets free space on target
 *
 * @param  {FileMetadata} item      File Metadata (you can also provide a string)
 * @return {Promise<Number, Error>}
 */
export function freeSpace(item) {
  if ( arguments.length < 1 ) {
    return Promise.reject(new Error(_('ERR_VFS_NUM_ARGS')));
  }

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  const m = MountManager.getModuleFromPath(item.path, false, true);

  return performRequest('freeSpace', [m.option('root')], {}, item.path, null, 'ERR_VFSMODULE_FREESPACE_FMT');
}

/**
 * Watches a file or directory for changes. Please note that this currently only works for
 * client-side APIs.
 * @desc Watches a file or directory for changes.
 *
 * @param   {FileMetadata} item      File Metadata (you can also provide a string)
 * @param   {Function}     callback  Callback function
 *
 * @return {Promise<Object, Boolean>} The index of your watch (you can unwatch with this)
 */
export function watch(item, callback) {
  callback = callback || noop;

  if ( arguments.length < 2 ) {
    callback(_('ERR_VFS_NUM_ARGS'));
    return -1;
  }

  try {
    item = checkMetadataArgument(item);
  } catch ( e ) {
    return Promise.reject(e);
  }

  return Promise.resolve(watches.push({
    path: item.path,
    type: item.type,
    cb: callback
  }) - 1);

}

/**
 * Remove a watch
 *
 * @param {Number}      idx     Watch index (from watch() method)
 */
export function unwatch(idx) {
  if ( typeof watches[idx] !== 'undefined' ) {
    delete watches[idx];
  }
}

/**
 * Triggers a VFS watch event
 *
 * @param   {String}    method      VFS method
 * @param   {Object}    arg         VFS file
 * @param   {Process}   [appRef]    Optional application reference
 */
export function triggerWatch(method, arg, appRef) {
  broadcastMessage('vfs:' + method, arg, appRef);
}


The EH Scholarship Program highlights Scholarships for students pursuing a career or furthering their studies.
The world in which we live has changed so dramatically, that modern man is expected to change careers several times in his/her lifetime prior to retirement. Consequently many people in our community may feel motivated to either upgrade their current skills or acquire new skill sets dependent on the current market needs. The Extended Hands scholarship program will provide the incentive for higher educational aspiration in our community which is beneficial to the enhancement of the 21st century employment prospects. Here is your opportunity to leave a lasting impact in our society. For substantial contributions of over 10,000 $CAD, Extended Hands offers to create a scholarship fund under the name of your choice ensuring that your contribution is properly recognized.
The objective and main goal of the Extended Hands Scholarship Program is to enable students who have demonstrated exceptional educational results and tangible community influence. These individuals, however, have limited financial means to pursue their studies in qualified educational institutions. The funds thereby allow these remarkable students to gain proficiency in specific fields of study that are important to the progression of their academic and career development.
This Scholarship Program is designed to assist members and adherents of the Resurrection Center and Residents of Lachine in their quest for Post-Secondary Education.
• Canadian Citizens, Permanent Residents, Landed Immigrants.
• Active members and adherents of the Resurrection Center and residents of the Lachine community.
How much preparation time is required?
Starting or rejuvenating a scholarship program with Scholarship Partners Canada requires as little as three months.
All applications must be received at Extended Hands ( 1810 St Antoine Street) by 5:00 PM on July 31st of each year.
All applications will be reviewed by the Scholarship Selection Committee. Recipients will be notified by e-mail, mail or telephone. An Award ceremony will follow.
*Tax receipts will be made available.
Click here to fill out the application from here.
A complete application package must include the following.


ProSportsDaily.com > Basketball > NBA > Rank the top 20 guys in the league now with the highest trade value.
View Full Version : Rank the top 20 guys in the league now with the highest trade value.
Here are a few of the guys that you can rank. How would you rank them in order though.
Well Im not going to rank them, but just give my thoughts.
All the superstars like LBJ/Kobe/Wade/Duncan/KG etc, arent going to get fair trade value, so I really dont know if they have the highest trade value.
However someone that is an all-star type player, yet not superstar I think could get you the most.
Kwame Brown had great trade value.
every1 but VC has alot of trade value atm. and mayb Dirk just because that teams doing bad. Vince Carter is on a tradeblock and wont get much offered for him other then a first and a decent player.
Jason Kidd should be on the list just because he offers 20 mil in cap savings after the season and is a damn good player.
The only reason Timmy is so low is because of age. Kobe not on the list because of his no-trade clause... he won't be traded for an obscene assortment of talent because he wouldn't allow it.
Strong, athletic centers are commodities in the NBA. Therefore, I would say Dwight Howard.
Trade value has to do with age, upside and how they would fit in with a new team.
And how their trade value equates to their real value.
Pistol Pete had great rep & trade value but his value to a team was not as great.
Lebron should have highest trade value.
Wade, I don't know. His game can lead to more injuries.
kobe has issues, can be a divisive teammate & has peaked.
Pierce has peaked and may not age well.
Bosh, I have never cared for but when I look at his stats, he is really good.
Amare, I really like but not sure how he would fit with some teams.
Deron should get good value. Young, all round team player.
Tim, KG & Dirk, I would put them in that order.
Gasol, I think is undervalued, he would help alot of teams.
Howard is great but I fear maybe overvalued.
But best values are the young players that have years of upside & smaller salaries.
I'm suprised on most of the lists there are alot of aging stars. Beside Stoudemire, Howard, Paul, Lebron, and Wade I would prefer to trade for Danny Granger, because the next year or two he will be on an All-NBA team.
Yeah he is they dont want him there by 2010 and are looking at offers. According to hoops hype he is... If your 1 of the top 20 most valued guys in the league then the team shouldnt even be looking to trade you and if your trade it would be a spure of the moment thing were you get a offer impossible to refuse.
wheres the love for derrick rose?


text:
Q: RTX 2070 + Fedora 31: nvidia_modeset error freezes computer just before login I'm experimenting an error -which I'll describe next- with the following Linux system:
Fedora 31 - kernel: 5.5.17-200.fc31.x86_64
GPU is ASUS RTX 2070 SUPER with drivers 440.82, also CUDA 10.1 and CuDNN 7.6.5
i7 8 8700
32GB ram (2dims)
Aorus Pro MotherBoard
My RTX 2070 runs headless: my monitor is connected to the onboard video card.
The GPU works perfectly, I can train neural networks with Tensorflow GPU, play games using the GPU, no problems with my hardware I guess, never had a single freeze and temperatures are always fine. The thing is that 1 time every 3 or 4, when I start my computer it will freeze before entering the desktop. They keyboard is dead, I cannot move to a different TTY, it will neigther turn on the CAPS LOCK light when pressing the key, I can only press the power button for 7 seconds and force the computer tu turn off.
When this happens, after login in, I will see an error message in the Fedora's Problem Reporting:
A kernel problem occurred, but your kernel has been tainted (flags:POE). Explanation:
P - Proprietary module has been loaded.
O - Out-of-tree module has been loaded.
E - Unsigned module has been loaded.
Kernel maintainers are unable to diagnose tainted reports. Tainted modules: nvidia_drm,nvidia_modeset,nvidia.

And if I hit "DETAILS" I see all this reports:
reason   WARNING: CPU: 2 PID: 820451 at mm/vmalloc.c:2282 __vunmap+0x1e9/0x210 [nvidia_modeset]
z

WARNING: CPU: 2 PID: 820451 at mm/vmalloc.c:2282 __vunmap+0x1e9/0x210
Modules linked in: nvidia_uvm(OE) ipmi_devintf rfcomm ccm xt_CHECKSUM xt_MASQUERADE nf_nat_tftp nf_conntrack_tftp tun bridge stp llc nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t_REJECT nf_reject_ipv6 ip6t_rpfilter ipt_REJECT nf_reject_ipv4 xt_conntrack ebtable_nat ebtable_broute ip6table_nat ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_nat iptable_mangle iptable_raw iptable_security nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c ip_set nfnetlink ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter cmac bnep sunrpc vfat fat intel_rapl_msr intel_rapl_common snd_sof_pci snd_sof_intel_byt snd_sof_intel_ipc snd_sof_xtensa_dsp snd_sof_intel_hda_common snd_soc_hdac_hda snd_sof_intel_hda x86_pkg_temp_thermal intel_powerclamp snd_sof coretemp snd_soc_skl kvm_intel snd_soc_sst_ipc snd_soc_sst_dsp snd_hda_ext_core snd_soc_acpi_intel_match snd_hda_codec_hdmi snd_soc_acpi kvm snd_hda_codec_realtek ucsi_ccg snd_hda_codec_generic typec_ucsi
 irqbypass iTCO_wdt ledtrig_audio iTCO_vendor_support iwlmvm snd_soc_core mei_hdcp typec snd_compress ac97_bus snd_pcm_dmaengine snd_hda_intel snd_intel_dspcfg crct10dif_pclmul mac80211 crc32_pclmul snd_usb_audio snd_hda_codec libarc4 ghash_clmulni_intel snd_hda_core snd_usbmidi_lib intel_cstate intel_uncore iwlwifi intel_rapl_perf btusb snd_rawmidi snd_hwdep btrtl snd_seq btbcm pcspkr btintel wmi_bmof intel_wmi_thunderbolt snd_seq_device i2c_i801 cfg80211 bluetooth joydev snd_pcm mc snd_timer snd mei_me ecdh_generic ecc mei rfkill soundcore i2c_nvidia_gpu ie31200_edac intel_pch_thermal acpi_pad ip_tables nvidia_drm(POE) nvidia_modeset(POE) nvidia(POE) i915 ipmi_msghandler i2c_algo_bit mxm_wmi drm_kms_helper e1000e crc32c_intel nvme drm nvme_core wmi video pinctrl_cannonlake pinctrl_intel fuse
CPU: 2 PID: 820451 Comm: kworker/u24:6 Tainted: P        W  OE     5.5.17-200.fc31.x86_64 #1
Hardware name: Gigabyte Technology Co., Ltd. Z390 AORUS PRO WIFI/Z390 AORUS PRO WIFI-CF, BIOS F10 06/05/2019
Workqueue: events_unbound async_run_entry_fn
RIP: 0010:__vunmap+0x1e9/0x210
Code: 41 5d 41 5e e9 78 37 03 00 31 d2 31 f6 48 c7 c7 ff ff ff ff e8 d8 fc ff ff eb b5 48 89 fe 48 c7 c7 e8 36 39 9c e8 f9 51 e3 ff <0f> 0b 5b 5d 41 5c 41 5d 41 5e c3 4c 89 e6 48 c7 c7 10 37 39 9c e8
RSP: 0000:ffffb9e60c6afcd8 EFLAGS: 00010286
RAX: 0000000000000000 RBX: ffff9372771d9008 RCX: 0000000000000007
RDX: 0000000000000007 RSI: 0000000000000086 RDI: ffff93729e299cc0
RBP: 0000000000000a20 R08: 00007cae180e423a R09: ffffffff9d25fc64
R10: 000000000000061e R11: 000000000001f074 R12: ffff936cb80e9a20
R13: 0000000000000004 R14: ffff9372771da008 R15: ffff9372771d9008
FS:  0000000000000000(0000) GS:ffff93729e280000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 00000007cb60a001 CR4: 00000000003606e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 _nv002417kms+0xea/0x150 [nvidia_modeset]
 ? _nv000328kms+0x2d/0x1d0 [nvidia_modeset]
 ? _nv002227kms+0x2d5/0x6d0 [nvidia_modeset]
 ? nvKmsResume+0x43/0x80 [nvidia_modeset]
 ? nvkms_resume+0x1b/0x40 [nvidia_modeset]
 ? nvidia_resume+0x67/0x70 [nvidia]
 ? pci_pm_thaw+0x80/0x80
 ? nv_pmops_resume+0xf/0x20 [nvidia]
 ? dpm_run_callback+0x4f/0x140
 ? device_resume+0x136/0x200
 ? async_resume+0x19/0x50
 ? async_run_entry_fn+0x39/0x160
 ? process_one_work+0x1b4/0x370
 ? worker_thread+0x50/0x3c0
 ? kthread+0xf9/0x130
 ? process_one_work+0x370/0x370
 ? kthread_park+0x90/0x90
 ? ret_from_fork+0x35/0x40

I'm not even close to understanding what all this reportsare talking about, but it seems that the Nvidia driver module is failing, and also that theres someone trying to allocate memory (malloc) and failing.
Can you please help me debug this error? Tell me if there is any other relevant information about my system, logs or anything that I can share.
This only happens at boot time, the system works perfectly on runtime, I can train models for hours, play games, never had a single crash or freeze during runtime.
Thanks in advance!!
EDIT 2: Just updated my Aorus Pro WIFI z390 motherboar to the last BIOS version 12c. The error still occurs.
EDIT 1: Adding "nomodeset" to my kernel parameters causes 100% freeze of the system just before entering the graphical environment. Just in case, this is my grub config file (/etc/sysconfig/grub):
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet rd.driver.blacklist=nouveau"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

redpajama_set_name: RedPajamaStackExchange


An article I read on Tech Crunch recently got me thinking about startup culture. In Are You Building A Company, Or Just Your Credentials Geoff Lewis, expressed his distaste for a friend's plan to get on Y Combinator's 'no idea' startup incubation program. In this experimental approach, groups or individuals with a desire to be part of a startup but who have no product or business idea to begin with, can apply.
The thinking I believe, is that since brilliant ideas aren't the only factor for startup success (many other factors like organisation skills, business savvy and tenacity matter too) YC will dig into their vault of ideas and match one that's most suitable to these idea-starved groups.
Firstly, reading this I could sympathize with the discontent. Venture capitalists exist for people who have an idea and want to realise it. There are already programs for people who don't have an idea but want to achieve some success. They are called "careers".
However, if you look at it from an incubator's perspective, it's a pretty clever and measured approach. YC knows what sort of group dynamic in startups have a higher chance of success and it is casting its net wide to find them.
But Lewis took issue with the fact that his MBA-qualified, credential-seeking buddy was signing up with YC presumably just to add to his blue ribbon collection.
With such articles what's usually more interesting is the comments they elicit. Many who reacted responded with the same feelings of contempt; calling paper-chasers 'hucksters' and scoffing at their lack of passion and sincerity.
The tone among some carried this notion that startups were a special breed of entrepreneurs burdened with some sort of higher calling to liberate the world; money and honour being an afterthought.
Not being directly part of the startup circle, so-to-speak, I found the reaction amusing and frankly, rather foolish. Are people involved in startups turning into a sort of in-group? Do they really think of themselves as some kind of mutant-strain of businesses that are different from 'regular' enterprises?
If we look at the richest Internet companies today, once startups themselves, they are no less motivated by avarice and the bottomline, so why be so judgmental of Mr MBA treating the YC program as a way to gain credentials? I bet many talented individuals are going to have a go at it for the same reason if not a variety of reasons. As the program draws out, I suspect the number of participants will peter out by attrition anyway.
And who's to say not coming up with a disruptive idea makes you less enterprising? Think of startups as team sports. There are some teams that innovate with the most creative gameplay that catch their opponents off-guard. There are teams that win by consistency and endurance, doing the same thing well over many years to pull ahead of the pack.
To cast aspersions on the motivations of others and to let silly prejudices limit participation seems discordant with the spirit of the Internet itself, where challenging convention is the order of the day and everyone is entitled to a shot at success.


I listen to podcasts to shut off. I am almost embarrassed to say I was rocked when Ryan Sickler and Jay Larson's crab feast podcast announced the end.
Then my wife told me about dollop. It feels like I've followed Dave Anthony's career for years but can't find where I first saw him. Love his comedy. Garreth , that dude is funny as F**k ! So quick. I highly recommend to anyone.
I absolutely love this podcast. Totally dig the satirical style of Dave and Gareth's back and forth comedy. I also love history and this is my new favorite way of consuming it. By laughing through the pain, one can actually be informed of some of the more interesting and intriguing parts of American History. Highly Recommend!


text:
Tag: 爱上海EF
"We're Grateful for Liberians Spirit in Ebola's Fight"
The two United States (US) Army generals who now replaced the other as commander of the U.S.-led Military Operation United Shield in the fight against the deadly Ebola virus disease (EVD) across Africa have both commended Liberians for their resilience and positive spirit in the fight to contain the disease.The two American top brass military personnel made the commendation over the weekend at the Barclay Training Center (BTC) in Monrovia at the official ceremony marking the Operation United Assistance Joint Force Command's Transfer of Authority (TOA).At the brief but well coordinated occasion, the former Commander of the force, Major General Darryl Williams, transferred authority to another Major General, Gary J. Volesky. The transfer of authority was characterized by military traditional activities.The exercise was attended by Defense Minister Brownie J. Samukai, Jr. and U.S. Ambassador to Liberia, Deborah R. Malac, among other officials.Maj/Gen Volesky replaces Maj. /Gen. Williams, who led the US soldiers to Liberia since five weeks ago."The fight to contain EVD is faced with enormous challenges, but we are grateful to Liberians and other partners for their collective efforts to stamp out the disease," the two soldiers asserted in their separate statements as they, to the delight of the audience, exchanged colors marking the TOA. In a separate remark earlier, the outgoing commander, Maj/Gen Williams expressed gratitude to authorities at the Ministry of National Defense (MOD), and the Chief of Staff (COS) of the Armed Forces of Liberia (AFL), Brigadier General Daniel Ziankhan, for the "friendship and excellent" leadership qualities exhibited during his tenure, which sets the condition for onward operations of the U.S. Military.According to him, Operation United Shield involves the efforts of the AFL and the U.S. military team to build a united front in the fight against the EVD.For his part, the incoming Commander, Maj/Gen. Volesky, described the exercise as challenging since its operations have to include the training of healthcare givers in the fight against the EVD and the manning of the various Ebola Treatment Units (ETUs) across the country.Prior to coming to Liberia, he served in his latest assignment as Commanding General, 101st Airborne Division (Air Assault) and Fort Campbell. As the Army Service Component Command for U.S. Africa Command, the US Army Africa, Southern European Task Force (USARAF/SETAF) enables a full spectrum operation, while conducting sustained security engagement with African land forces to promote security, stability, and peace.As directed, USARAF/SETAF deploys a contingency headquarters in support of crisis response. USAARAF is America's premier Army team dedicated to positive change in Africa such as the fight to contain the outbreak by providing their respective expertise.As of the 101st Airborne Division (Air Assault), it provides the US with an unmatched expeditionary Air Assault capability to conduct forcible entry and other worldwide unified land operations in support of combatant commanders. Share this:Click to share on Twitter (Opens in new window)Click to share on Facebook (Opens in new window) read more
Categories wihimypn Tags 上海夜网OS, 上海情侣约会室内, 上海楼凤YW, 上海虹桥夜生活哪里好玩, 唔准唔开心广州女女楼凤, 夜上海论坛EQ, 夜上海论坛HZ, 夜上海论坛VL, 杭州富阳区夜生活网, 淮安比较好的spa, 爱上海EF, 爱上海同城论坛网, 爱在上海, 苏州独墅湖会所, 验证丰台楼凤小活
UPDATE La Nina weather may return for second straight year
It's back. Maybe.The climate phenomenon known as La Nina appears to be shaping up again in the Pacific Ocean, which could mean another cool, wetter-than-normal winter in the Pacific Northwest, according to the National Oceanic and Atmospheric Administration.NOAA's Climate Prediction Center on Thursday upgraded last month's La Nina watch to a La Nina advisory. Forecasters have recently observed the cooler-than-usual Pacific Ocean temperatures that characterize La Nina, and the condition is expected to strengthen in the coming weeks and months, according to NOAA.The natural phenomenon would be the second straight La Nina year in the Pacific, after a "fairly strong" pattern in 2010-11, said Dan Collins, a meteorologist with the Climate Prediction Center. What that means this time around remains to be seen."It's not always the case that a strong La Nina leads to strong impacts," Collins said. "It just happened to be the case that last year we had strong impacts."The 2010-11 version churned out much more rain than usual and huge mountain snow packs in the Northwest, but little in the way of biting cold. The weather pattern also tends to produce dry conditions for the southern United States, and a repeat of that would be bad news for drought-stricken states like Texas. read more
Categories kbasquha Tags 上海夜生活JH, 上海夜生活KV, 上海夜生活PN, 上海娱乐地图LI, 上海龙凤网GO, 上海龙凤网KT, 千花坊NH, 娱乐地图NV, 爱上海EF, 香草419论坛EP


Developing a project from conception to execution is an area that 4 Direction specializes in.
Having such a multi-skilled team has laid the foundation for us to implement various projects in Dubai and greater region with ease.
Upon agreement of the project, our vast network of talented individuals allows us to fully develop the properties to give them life.
We utilize strong bonds with our partners to assess, finance and construct lasting properties that stand the test of time.
Legal issues are taken care of by 4 Direction, in addition to many other parameters.
ensuring that no stone goes upturned when delivering value and polished results to our clients.