Discussion in 'General Discussion' started by Bkim, Sep 12, 2018.
We are talking of ACC as example of good graphic/performance not promoting the game but talking about game engine and the one speaking here are the most loyal Reiza fan I know so don't worry.
If that were the case, we wouldn't even be here or care about thinking out loud on what could be a good engine for AMS2.
Exactly. We're discussing possible AMS2 engine options, talking about pros and cons.
As an example for UE4 engine quality vs old AC engine, here are two screenshots. Again, UE4 is flashy, cinematic, and gives a more realistic overall feeling. But if you look into the details, sharpness, how clean the picture is, UE4 looses big time. And this is on all EPIC settings. A great example is the fence in the background. Repeat, example. I'm not sorry about how a fence looks, but the overall picture quality of the engine.
I'd much rather have a clean, sharp, stable image like in AMS or AC, than a cinematic but fuzzy, blurry, compromised image as what UE4 can offer.
If I turn off AA, I get jaggies. Other options are FXAA (blurry) or Temporal AA (glitchy and blurry). No other is supported by UE4.
Turning down Effects to Medium or lower will remove rain completely and screen space reflections.
Turning down Shadows below High and you'll get the equivalent of AC low shadows.
The whole issue starts with deferred rendering, and how badly UE4 is built on that. The whole image is generated through post processing really.
So, how exactly should I use it properly?
It is possible and, if you have even half an open mind,,,, likely, to appreciate multiple simulations at the same time. You are bashing ACC as a console title... that's pretty ridiculous. Kunos are talented developers and Assetto Corsa was enjoyed by many. Their new title is very early in development and show no signs of failing as a sim.
Liking Kunos's work does not mean Reiza are any less talented. I try, and thus buy, all sims and am happy to support sim developers. All titles shine in their own way. Sure, I have preferences... but it is easy to see good in every title. Some just appeal more than others.
Also very scalabe and still looking good on low settings (I don't like PC 1&2 but the graphic engine is good).
pC1 and 2 have horrible aliasing , shimmer and texture flicker !
ACC looks perfect by just using 200 (double) resolution. All the annoying bluriness is gone.
We'll see what compromises are required to maintain frame rates, but as expected, the bluriness can be adjusted out (with several different combinations of settings) and is on by default as a performance aid. I expect that by increasing resolution (perhaps by less than double), the AA settings can be backed off accordingly and you still end up with good performance and an attractive result.
Nope, you missed the point of discussion here, AMS is near to perfection simulation side so the only thing it needs to improve is graphic...the problem discussed here is, changing graphic engine...can improve or doing a mess of physics engine?
ACC...the forum is filled with people talking about graphics. AMS...everybody complains about graphics. F1 2018...first posts...graphics. rF2...graphics.
Yes, it's about graphics. And for the same reason, we all love AMS for what it is. And don't want AMS2 to get ruined with a bad, blurry, 'hollywood' engine. THAT is why we're talking about graphics engines.
Nor do we want it ruined by a slow, plodding and difficult to work with rF2 graphics engine.
This is a seriously thorny conundrum. None of the options are clearly good and none of them will be easy.
"hopefully when time comes for an official announcement (in a matter of weeks rather than months) the wait will have proven worthwhile"
Huge amount of complaints over at ACC forums about blurry graphics. It is a major issue if you compare AC to ACC and is a disappointment at first. Kunos made a decision to use some blur as a performance balancing choice. Turns out it was a not popular one, but I bet once we get more cars and effects, people will realize their systems are struggling to some extent.
What is important to Reiza is that a different choice could have been made--to retain the razor sharp images. They can be restored easily by a user in several ways. Increase scaling resolution (drops FPS). Turn off some post-processing effects (raises FPS). Do a combination (some balance likely). As a user, on a v0.1 product, I can already tune precisely to my liking and find the balance of visuals versus performance THAT I PERSONALLY PREFER. Once adjusted, the graphics quality, lighting, and corollary capabilities are superior to AC and vastly superior to AMS. It uses a ubiquitous graphics engine that modders from all over the world understand and can work with.
rF2: After more than five years and several generations of botched shaders and lighting strategies, another major improvement has just been announced. It looks great, but it is not clear whether it applies only to new content specifically modelled to take advantage of it, or is magically universal. So far, nothing in rF2 has been universal. Assuming this is not, how many YEARS will we be waiting for corresponding content updates from S397 and independent modders?
After more than 5 years, we still have very limited ability to balance visuals versus performance from inside the title. Most of us do it from outside via our graphics card profiler settings. The performance has always been sub-par relative to other graphics engines. It has been improved a lot in the past few years, but everything else that it is competing against has improved even more/faster, so it is still sub-par by comparison. If you don't like the look of rF2, too bad. You're stuck with it. How many dozen threads have we seen over the years arguing about this? Too many.
So far, and this may change once more and better polished content gets thrown in to ACC, it would appear to me that Kunos made a wise decision to go with the Unreal engine. They too had no easy choice to bridge their current title to a new one if they wanted to add all the advanced graphics that titles like PC2 contain. But if you have to make a major break from the present system, there are two choices here: adopt a poorly performing, slow to evolve, fraught with complaints, seemingly arcane to manipulate graphics engine that maintains some greater ties to the present, or, go with an industry-standard package that is so popular and widely used that its owners will ensure that it remains up-to-date and competitive with industry standards and practices. Since it is designed for a wide range of applications, it also has the deep user-controlled adjustments that, though a bit fiddly to learn, ultimately allow the careful tuning and balancing that sim racing fanatics like us need to maintain proper control of our virtual vehicles (without which the whole point of the hobby is lost).
As a safe bridge step, I would keep AMS exactly as it is now physics-wise. It works and feels as good or better than anything else out there. Spend the time and money to bolt UE on to the current engine. Once that is perfected, a next generation step could be to adopt more rF2 simulation technology from S397--it might be mature by then, too.
I had originally hoped that S397 and eiza could take this step together. Maybe they will? But the recent shader announcement was the worst news I have read from S397 in a long time. The new shaders look wonderful, but it signals to me that they are wedded to plodding along with the old engine for the foreseeable future.
The only fact that would change my view on all of this is if someone could prove to me that the current (AMS) simulation engine is unable to work with Unreal or that there is some risk it won't synchronize properly. In other words, the end product of all the hard work would or could be inferior from the physics part of the simulation equation compared to using the S397 rF2 engine. Otherwise, I know what I would like to see happen.
But what about cost? How much extra (assuming it is extra) would Unreal cost to license? Let's be honest about it. I will be the first funder if it is a significant difference. Sadly, the only way for the amazing work already invested in AMS to reach a broader audience (than us few Reiza fanatics) and command regular game prices (instead of half or less) is if there is attractive visuals to go with it. How many visually appealing, but otherwise empty or pathetic racing games do we need to monitor before we learn that lesson? I invested in PCars and made enough money from it to buy AMS and all its content multiple times over. I only played it for a few hours...just long enough to confirm it wasn't a serious sim contender. This is the equation that must be changed for justice to prevail A pretty face is all it will take.
Well top of my list is VR !
That is graphics , albeit somewhat lower than some care to enjoy but its graphics nonetheless !
We all want to simulate racing as closely as possible to the real deal and the visuals are a massive part of that , while the physics in AMS seem about as close to real as any other sim it doesn't get a look in from me because #NoVRnoBuy (although i bought AMS well before i had VR) and if ACC matches AC in physics but improves on visuals while maintaining good performance why wouldn't people be talking about graphics !
Graphics are what trick our brains into thinking we are actually driving a real car along with the great physics , our toy wheels and for us VR users having great immersive graphics in out faces truly brings it home .
Graphics in AMS are fine - like i keep repeating myself: gras and shadows is all that needs some more love and then we're good to go.
I turn off all blinky blinky post processing in my games anyways, so all my sims look pretty much like AMS except for in-car shadows and nicer looking gras.


Mortgage lenders are going to go through your credit report with a fine-toothed comb, and they're going to make decisions based on how creditworthy you appear to be, including whether to offer you a loan at all … or at what rates. If you don't check your credit score first, you stand to lose money, or your potential dream home.
What to do instead: Ideally, you'll check your credit well before you begin hunting for a home, and work to increase your score if you need to, or dispute errors on your report, since those can take time to rectify. You're entitled to a free credit report from each of the three bureaus (Experian, Equifax and TransUnion) once a year, and you can pull those from AnnualCreditReport.com. If there are errors, fix them. (Some examples: Any accounts listed that aren't yours, accounts incorrectly listed as being in collections, incorrect large balances reported, or incorrect late payments reported.) The bureaus have 30 to 45 days to investigate the issue and fix it accordingly. Use free resources, like Credit Karma or Credit Sesame, to get an estimate of your credit score for TransUnion and Experian. If you want to see your actual FICO scores for each credit bureau, buy them outright (about $15 to $20 each) instead of committing to unnecessary and expensive monitoring when you sign up for a free trial.
What to do instead: While applying for a mortgage, hold off on opening up a Macy's store card or applying for a car loan. "You really have to watch where you step in terms of your credit," says Greg McBride, senior financial analyst at Bankrate.com. "You don't want to open up any lines of credit and you don't want to close any out. Just keep doing what you've been doing." And of course, continue making on-time payments and chipping away at any debt.
You'll want to find a mortgage lender early in the process so you have a relationship with him or her when you find the home of your dreams. By doing so, you'll be able to kickstart the mortgage process by getting pre-approved, which means you can put in a serious offer quickly (should the need arise), and once you sign a contract, applying for the mortgage itself will take less time. Even if interest rates and loan terms are similar across different lenders, final costs and fees at each lender might not be. "Ask them about the fees for title insurance," Derrick says. "What are the attorney's fees? Document prep fees?" Because lenders are eager for your business, some will even offer a cash incentive for going with them, such as $1,500 back to you at closing. In fact, if one lender is offering cashback but another one isn't, ask the lender who's holding out—he may change his tune if it means earning your business.


text:
2017-01-14 EU and US reach agreement on Solvency II equivalence 2016-02-14 Data lifecycle in a big data world 2011-03-23 Intertwined: Solvency II, insurance and the crisis 2014-06-21 XBsRoLvency II : Dites-le en XBRL 2012-10-10 On the role of the liquidity premium in the regulation of insurers
Experimental financial statistics for UK insurance sector using Solvency II data
Leonidas Akritidis[/caption] [caption id="attachment_1588126" align="alignleft" width="90"] Ross Shepherd[/caption] [caption id="attachment_1588123" align="alignleft" width="90"] Hugh Skipper[/caption] In early May 2018 the UK Office for National Statistics (ONS) made a presentation to the Solvency II Wire Data User Group meeting* on the first set of statistics on the financial assets and liabilities of the UK insurance sector. The presentation followed the publication of experimental financial statistics1 on 30 April 2018, based on quarterly data collected under Solvency II as the Europe-wide insurance regulatory framework. This pioneering work by the ONS represents one of first significant steps of using Solvency II data outside of the insurance sector. In this article, Leonidas Akritidis, Hugh Skipper and Ross Shepherd, members of the ONS team that compiled and presented the work, share their insights on the data and interactions with industry.
Introduction to ONS use of Solvency II data
The ONS, in cooperation with the Bank of England, has recently concluded that Solvency II data are suitable for UK national accounts compilation. This includes a wide range of insurance sector statistics on contribution to UK Gross Domestic Product and detailed financial statistics. Solvency II therefore has the potential to replace some existing ONS insurance surveys, which would reduce the survey compliance burden. It should be noted that Solvency II includes data from insurers that act mainly as pension fund managers. For national accounts purposes, these should not be classified in the UK insurance sector. Hence, the experimental statistics exclude approximately 11 such insurers/fund managers. The experimental Solvency II-based financial statistics for the UK insurance sector are shown in table 1.
Table 1: Assets and liabilities of the UK insurance corporations sector (in £ billion)
[caption id="attachment_1588137" align="aligncenter" width="862"] Source: Office for National Statistics, Bank of England and Prudential Regulatory Authority[/caption] a) technical reserve assets (also known as reinsurance recoverables) b) net acquisition of financial assets c) estimates may not add up due to rounding d) Q1 is Quarter 1 January to March, Q2 is Quarter 2 April to June, Q3 is Quarter 3 July to September and Q4 is Quarter 4 October to December This table shows non-consolidated, non-seasonally adjusted quarterly asset and liability stocks, with selected transactions. Figures 1 and 2 (below) show the proportions of UK insurers' assets and liabilities by type as at Quarter 4, 2016. Table 1 shows that the overall paths of total assets and liabilities increased from Quarter 1 2016 to Quarter 3 2016, followed by a fall back, after which levels were broadly stable, averaging just over £1.8 trillion.
Stocks of assets
Figure 1 and table 1 illustrate that the most important types of assets in Quarter 4 2016 were:
debt securities (30%, £0.5 trillion), of which the majority were non-government issued
investment fund shares/units (28%, £0.5 trillion)
technical reserve assets (reinsurance recoverables) (15%, £0.3 trillion)
listed and unlisted shares and equity (12%, £0.2 trillion)
Figure 1: Share of assets of UK insurers in Quarter 4 2016
[caption id="attachment_1588136" align="aligncenter" width="708"] Source: Office for National Statistics, Bank of England and Prudential Regulatory Authority[/caption] There were increases between Quarter 1 2016 and Quarter 3 2016 in all the above asset types. Between Quarter 1 2016 and Quarter 4 2017 (table 1), there was a steady increase in the proportion of non-UK issued listed and unlisted share and equity assets (from 46% to 54% of total listed and unlisted share and equity) with a corresponding fall in holdings of UK issued listed and unlisted share and equity assets. Over the same period, the proportion of non-UK issued debt security assets increased slightly (from 43% to 45% of total debt securities) with a corresponding fall in UK issued debt security.
Stocks of liabilities
Figure 2 and table 1 illustrate that the largest component of liabilities was technical reserves, which accounted for over 80% of total liabilities in Quarter 4 2016. Within this, the largest sub-category was the technical reserves for unit and index linked life insurance and pensions products.
Figure 2: Share of liabilities of UK insurers in Quarter 4 2016
[caption id="attachment_1588135" align="aligncenter" width="699"] Source: Office for National Statistics, Bank of England and Prudential Regulatory Authority[/caption]
Transactions in assets
Amongst the selected transactions in assets, there were net acquisitions between Quarter 1 2016 and Quarter 4 2017 in investment fund shares (£78 billion) and in loans (£48 billion). There were net disposals in listed shares (£15 billion) and in currency and deposits (£6 billion).
Discussion and feedback from the meeting
The Solvency II aggregates presented by ONS drew a lot of interest from the attendees of the meeting. A large amount of detailed information about insurers' asset holdings that was publicly available under the old PRA Returns has been lost under Solvency II. Lack of timeliness was also seen as a weakness of the publicly available data from a user perspective. The ONS compilation of Solvency II aggregations has the potential to address these weaknesses. We have used a combination of different quarterly and annual Solvency II returns soon after submission to the PRA. This means that Solvency II-based aggregates can be compiled at a detailed level and on a relatively timely basis. Attendees expressed an interest for the ONS to build on this initial work. In particular, they said that they would be interested in a more detailed breakdown of insurers' asset holdings, e.g. separate identification of unit/index linked and non-linked policies. Further details that would be of interest included subdivision of investment funds and information on the risk bearers. The ONS stated that it would be happy to be contacted by the group members, to better understand their needs, and (respecting confidentiality rules) to provide more detailed statistics and analysis. — 1 Experimental statistics are still under development, but they are published to inform and involve users in the development process. It is worthwhile noting that the presentation of the data shows a level of detail that would meet the expectation of the Enhanced Financial Accounts (UK flow of funds). However, the level of detail will increase in the future in preparation for incorporation into the National Accounts. 1The Solvency II Wire Data User Group is an industry forum for the discussion and analysis of the Solvency II public disclosures. The forum is open to subscribers of the Solvency II Wire Data service.]]>
Tagged asset allocation, Data, statistics
EIOPA aligns Solvency II XBRL taxonomy with EBA
A deep-dive into the Solvency II SCR ratios
ORSA sprawl
Look-through Symposium: asset manager's response
← Model change impacts on the solvency of European insurers
Solvency II News: Survey shows improvement in Solvency II QRT data →

redpajama_set_name: RedPajamaCommonCrawl


text:
Established in Perth, Western Australia in 2010, Tired Lionchannels the essence of '90s alt-rock through guitar-driven, gutsy blasts of indie rock. Lead by songwriter, guitarist and vocalist Sophie Hopes, the band centres on Hopes' fearless wail and no-holds-barred, heart-on-her-sleeve, trademark lyricism.
Tired Lion debuted with the 2013 EP All We Didn't Know and rose to prominence with 2015's Figurine EP, which featured the breakout singleI 'Don't Think You Like Me'. In 2015, Tired Lion took out the triple j Unearthed Artist of the Year Award and West Australian Music Industry Awards for Best Rock Act (2015, 2016) and Best EP (2015). Over the next few years, Tired Lion toured extensively both in Australia and abroad, including performances at premier festivals including Splendour in the Grass, Glastonbury, Homebake, Groovin' the Moo, Falls Festival, Southbound, Reading and Leedsand Primavera Sound.
In September 2017, Tired Lion released their debut album – the critically acclaimed, triple j feature album Dumb Days -produced by Luke Boerdam of Violent Soho. In November 2018, following countless live shows, Tired Lion dropped the standalone single, 'With Or Without'. The song quickly distinguished itself as one of the best singles of the band's career; laden with hooks and addictively crunchy guitar lines, with Boerdam adding sweeping, atmospheric production. Tired Lion have evolved into one of the most formidable and ferocious rock acts in the country, touring relentlessly and bringing their special brand of controlled chaos to anyone and everyone willing to listen. Between live shows, Hopes continues to write material for Tired Lion's anticipated sophomore album.
For booking contact: andy@villagesounds.com


text:
Our Code of Business Conduct
Our Code of Business Conduct is at the heart of how we run our business, and is designed to help and protect us. It is important that we all understand the rules that we must follow, and the conduct that is expected of us, in order to look after our colleagues, do a great job for customers and protect our reputation.
Our Code means more than just following the law and our policies. It's about using our Values and Leadership Behaviours to guide our conduct and decision-making so that we are always doing the right thing for each other and the business. You can find out more about these values and our Core Purpose here.
Download Code of Business Conduct
Bribery and corruption distort competitive markets, increase the cost of doing business and harm customer trust.
This Policy sets out our minimum expectations for complying with anti-bribery laws.
Download Anti-Bribery Policy
Gift and Entertainment Policy
As a business, our reputation is damaged even by allegations of bribery or corrupt practices.
This Policy provides guidance on appropriate gifts or entertainment and when the giving of gifts or entertainment should be avoided.
Download Gift and Entertainment Policy
Protector Line
Protector Line allows colleagues and suppliers to raise concerns regarding misconduct at work. If a colleague does not feel able to speak to their manager or Personnel Manager, they can call Protector Line to report:
any concerns about something at work they think might be unlawful, that breaches the Code or is against company policy.
anything they think is a danger to colleagues, customers or the general public.
any concerns they have that information about these things is being deliberately concealed.
Protector Line is completely confidential and run by an independent company for Tesco. Callers don't have to give their name when they call. If callers do wish to provide their name, the Protector Line will be able to update them on the outcome of any investigation and will also be able to contact them for additional information if necessary.
Protectorline Contact Details
Email: tescoireland@expolink.co.uk


1. A large fraction of the health care dollar is spent treating conditions that result from lifestyle choices. We have strong data on the effectiveness of social policy interventions in reducing tobacco use, obesity, substance, alcoholism, and the spread of HIV. Taxation of tobacco products and sugar-containing soft drinks are effective strategies, but under-utilized. Regions with lower tobacco taxes have higher rates of tobacco related disease. Information posted on other portions of this website allow local communities to take charge of some of their costs.
2. The incentives in health care delivery still strongly favor treatment and over treatment. Sicker patients require many more services, but all too often these services are provided in hospitals rather that people's homes. There has been substantial progress in implementing value based care through Pioneer ACOs but these types of projects are still debated because of concerns regarding the detailed financial projections. As a result, progress is stalled.
3. The current payment system for health care claims facilitates fraud waste and abuse. The same mechanisms that allow doctors to be paid promptly, are used by entrepreneurs to bill for services never rendered. Health Insurers and the government have to pay and chase. While the papers are filled with news of arrests and recoveries, the majority of fraud waste and abuse remains unabated.
4. An important corollary of value based care is the reduction in use of low value services. An ongoing educational effort by the ABIM called "Choosing Wisely" a compendium of procedures that create little or no value for patients. .


text:
Q: Extraction of first element into a list from list of tuples I have list of tuples extracted such as the CRQ element corresponds to the related state for e.g. WAIT, MONITOR, DONE.
pair=[('CRQ1', 'WAIT'), ('CRQ1', 'DONE'), ('CRQ2', 'WAIT'),('CRQ2', 'MONITOR'), ('CRQ3', 'DONE'), ('CRQ4', 'MONITOR'),('CRQ5', 'DONE'),('CRQ5', 'MONITOR')]

My requirement is to extract CRQ elements into another list if they did not have the state 'DONE'.
Hence, the list should look like:
list=[CRQ2,CRQ4]

A: You can achieve this by using simply list comprehension:
list = [val[0] for val in pair if val[1] != 'DONE']

A: The are two ways to do this:

*

*Procedural way:

pair=[('CRQ1', 'WAIT'), ('CRQ1', 'DONE'), ('CRQ2', 'WAIT'),('CRQ2', 'MONITOR'), ('CRQ3', 'DONE'), ('CRQ4', 'MONITOR'),('CRQ5', 'DONE'),('CRQ5', 'MONITOR')]
arr = []

for cr, val in pair:
    if val != 'DONE':
        arr.append(cr)

*Declarative way (using list comprehensions)

pair=[('CRQ1', 'WAIT'), ('CRQ1', 'DONE'), ('CRQ2', 'WAIT'),('CRQ2', 'MONITOR'), ('CRQ3', 'DONE'), ('CRQ4', 'MONITOR'),('CRQ5', 'DONE'),('CRQ5', 'MONITOR')]
arr = [cr for cr, val in pair if val != 'DONE']

A: You could use OrderedDict to combine your records by keys ('CRQ1', 'CRQ2', etc.) and after that you can retrieve keys according to your statement:
from collections import OrderedDict

adict = OrderedDict()

for obj in pair:
    adict.setdefault(obj[0], []).append(obj[1])

print([obj[0] for obj in adict.items() if 'DONE' not in obj[1]])

redpajama_set_name: RedPajamaStackExchange


Use the museum strategy to determine the height where the wall decor must be hung. Just pick a sticker like what and paste on the face of the wall you want. Maybe you're trying to choose which wall decor pieces you wish to hang but nothing appears to fit together.
The tile floor and bright windows pull the entire space together and make a feeling of spaciousness and calm. If you are in need of a larger space, you can stash them in another room of the home for a brief time.


text:
Holy Trinity and St George, Kendal
An overall inspection of the building had revealed that limestone façade of the church building was in need of repair and consolidation to conserve its decorative features. Tiny fissures, inherent in the stones themselves, had been exploited by atmospheric weathering and had started to cause considerable stone decay. Repair and consolidation was likely to be required but in order to understand the full extent of what may be necessary the high level features had to be accessed. A long reach boom on a mobile elevated working platform was used to take JCA architects to the very top of the façade so that the masonry features could be assessed at very close range.
State of the art high resolution laser scanning was employed to create a photorealistic image of the façade that could be used as the base for accurate survey recording and interpretation of findings.
JCA project architect Dearbhail Keating getting ready to ascend in a mobile elevated platform (MEWP).
A MEWP with a 30m boom reach was used to access the façade to the full height of the parapet finials.
The nave roof and other levels could be assessed at close range.
Every detail of the high level masonry features is assessed.
It is important to determine the condition of potentially vulnerable details.
Survey Work
The façade of the church was laser scanned to produce a photo-realistic image that could be manipulated using CAD software. The image contained stone by stone detail and could be used during site investigations to mark up specific repairs that were than transferred onto a drawing of the façade.
Laser scan technology to create a stone by stone image of the façade masonry.
Detailed survey work even at high level determined a schedule of necessary repairs.
Drawn representations of the façade, scheduling out required repairs.


March 2008 – Mark Borkowski.
Brand Sarkozy: who is behind the French leader's London PR triumph?
The French president's PR team brought the Sarko & Carla show already perfected in their home country to London this week with similarly successful results The UK national press dedicate a third day of considerable space to the state visit to Britain by French president Nicolas Sarkozy, aided and abetted by his able uber-Frau.
First the split, then the court fight. What now for Ms Mills?
Mark Borkowski offers a POV on how she might rebuild her image.
It's a very unhappy fifth anniversary of the Iraq war.


Illegal immigration has a huge negative impact upon America and contributes significantly to school overcrowding, health care crisis, highway congestion, wage depression, unemployment of citizens, and environmental degradation.
Illegal employers deserve massively more scrutiny and enforcement to combat their employment of illegal workers. Many employment laws such as the I-9 form were designed more to shield corporations from responsibility than to enforce immigration and labor laws for the protection of citizens and this must be corrected. Illegal employers should be considered anti-American, otherwise they would be hiring Americans at a livable wage.
Illegal immigration has resulted in mass lawlessness which creates an ominous double-standard where citizens are expected to obey the law but illegal aliens are not.
Immigration is an issue of limits and lawfulness, not of race and culture. When immigration is viewed only racially and culturally, limits and legality will never be imposed. The debate must focus on limitations and lawfulness, otherwise open borders will make the United States a marketplace and not a country.
Illegal immigration is actually an issue of nationalism, not racism. All countries have the right to protect its borders from those who enter illegally. This means foreign nationals do not have the right to violate immigration laws.
Violating U.S. immigration law is not a human right. The United Nations state; �Every one has the right to leave any country, including his own, and to return to his country.� The human rights proclamation provides global citizens the right of emigration and return to their home country but does not include the right to violate the immigration laws of the host country of their choice.
Illegal aliens should return voluntarily to their home country. Once in their home country foreigners can apply for residency via proper procedures. The American public increasingly is opposing amnesty and the likelihood of future amnesties is declining rapidly.
Americans indeed should help global citizens, where they are at. Americans need to address the root causes of migration including poverty, corruption and illiteracy, which will require significant changes in US foreign policy. Immigration is not the solution to global problems.
Illegal aliens are an exploited underclass. The existence and condoning of this underclass is fundamentally against the principle of "All men are created equal" upon which America was founded. Ending the exploitation of the illegal alien underclass will end only when politicians, media, and others truly oppose illegal immigration in word and deed.


text:
By Probe International
Statement by Ms. Adams on Bill C-31 to the Standing Senate Committee on Banking, Trade and Commerce
By Patricia Adams on November 21, 2001 • ( Leave a comment )
(November 21, 2001) Bill C-31 will allow EDC to write the rules, establish the criteria, define the terms, assess itself, and then decide whether or not it is justified in supporting a project that will destroy the environment.
This speech was presented by Patricia Adams, Executive Director of Probe International, to The Standing Senate Committee on Banking, Trade and Commerce, The Senate, Ottawa, Canada on November 21, 2001
Thank you Mr. Chairman for the opportunity to appear before this committee on Bill C-31.
In my written submission to you, I have explained in detail our grave concerns about Bill C-31 to amend the law governing the Export Development Corporation. I will briefly recap those concerns now and I would be pleased to discuss them in more detail during questions.
Probe International, the organization I represent, has investigated the environmental, financial, and social consequences of EDC's activities for the past 20 years. We have 20,000 supporters from across the country who are concerned about EDC's long history of financing reprehensible projects, including nuclear technology to military hotspots in Pakistan and India, mines that dump cyanide into rivers, and hydro dams that destroy fertile valleys in poor countries and force millions of people off their lands.
Bill C-31 will not stop EDC from financing these dreadful, damaging projects in future. This is why.
Bill C-31 establishes in law an environmental review procedure in which EDC is entirely in charge of the environmental and legal goalposts. It will be subject to no standards, except those it chooses. And it can choose different ones on different days. It can even choose to exempt itself entirely from conducting an environmental review of a project. Bill C-31 will allow EDC to write the rules, establish the criteria, define the terms, assess itself, and then decide whether or not it is justified in supporting a project that will destroy the environment. The effect of this, as the Parliament's own Legislative Summary sees it, is to give EDC's Board "complete, unlimited freedom to make any decision," that "would be virtually immune from judicial review."
This process of applying infinitely adjustable standards is known as "benchmarking," and it has been roundly condemned by environmental groups from other OECD countries as nothing more than a public relations exercise that misleads taxpayers and legislators into believing the environment will be protected when in fact it will be "business as usual."
The second major flaw with Bill C-31 is that it fails to subject EDC to the Access to Information Act. During the review of the Export Development Act that has culminated with Bill C-31, the government heard from more than 140,000 Canadians who demanded that EDC be subject to the Access to Information Act. It is a good law, not always evenly applied, often under threat from the government of the day, but it is one of the most important democratic tools the citizenry in this country has to define and obtain what it wants to know about government activities, rather than the other way around. Without it, public oversight of EDC's activities is handicapped and enables this Crown corporation, operating "on her Majesty's credit card," to escape effective accountability.
To placate public demands that EDC be subject to the Access to Information Act, EDC has offered up a wholly inadequate substitute — it's new Directive on Disclosure. Just as Bill C-31 creates a toothless exercise in environmental review that is designed for public relations, EDC's new disclosure directive is similarly designed to convince the public that EDC will be more transparent while it largely maintains the status quo. If you read EDC's new Directive on Disclosure carefully you will see that EDC and its corporate beneficiaries will continue to determine what the public sees, not the other way around. If the public is dissatisfied with EDC's disclosure practices, it will have no recourse to judicial review.
The failure to subject EDC to the Access to Information Act will allow EDC to continue to hide its mistakes. It will also provoke distrust among the Canadian public, our trading partners, and bodies that govern international trading regimes, such as the OECD and the WTO.
These two major flaws in Bill C-31 severely limit public oversight of EDC, creating an environment for corruption, cronyism, and a recklessness that leads to unacceptable environmental, financial, and social costs.
But section 24.2 of Bill C-31 threatens public oversight even more. This section could silence public debate about EDC altogether. As written, section 24.2 could prohibit any public mention of the Export Development Corporation's name, in writing or in speech, in any circumstance that could be characterized as a "business purpose" or an "advertisement," unless written permission has been obtained from EDC. The penalty for doing so would be a fine of up to $10,000, six months imprisonment, or both. The potential for this egregious infringement of free speech is real. In August of this year, before Bill C-31 was introduced, EDC warned Probe International to stop identifying this Crown corporation on our web site by its name and its logo "to avoid the costs associated with litigation."
This draconian provision reflects EDC's disturbing intolerance for critical public debate of its operations. EDC has told us that it will answer questions from NGOs it considers "credible," and will put questions from NGOs considered not credible on the back burner. In another example, EDC invited public comment on its draft disclosure policy last summer, and stated that it would post submissions on its web site. Yet it refused to post Probe International's critical review, saying it contained "inaccuracies or unsubstantiated statements." When I pressed EDC to substantiate its accusations, it could not.
EDC seems to thinks it can act as the "thought police." Bill C-31 would give it that power. As written, we could not communicate with the public or even with our supporters without threat of fine and imprisonment. Our Parliament must remind EDC that it is an agent of the Crown, that it has created some $19 billion in liabilities for taxpayers, and that it can not silence its critics.
We urge the Standing Senate Committee on Banking, Trade and Commerce, at a minimum, to strike section 24.2 from Bill C-31. We also urge this Committee to amend Bill C-31 to ensure that, as long as EDC exists, it is subject to effective and thorough public oversight.
Categories: By Probe International, EDC, Export Credit, Legislation, News
Tagged as: Bill C-31, Corruption, EDC, Export Development Corporation Canada, OECD
Jail the critics
Migrant leaders sentenced for resettlement appeals


text:
LICENSE

Copyright (c) 2014-2015  Daniel Iacoviello

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

--]]

-- Map Class Definitions

-- The Map Class Acts as a Container for All the Background Objects,
--    Obstical Objects, Camera Object, and Player Objects
-- It Also Holds the Bump.lua World Object as Well as anything That Would
--  Otherwise be Global, in Order to Avoid Global Variables

local class = require('lib.middleclass')
local bump = require('bump.bump')

-- Base Tile Type
local Tile = require('Tile')

--[[
-- Base Background Tile Type
local Background = require('Background')
-- Base Obstical Tile Type
local Obstical = require('Obstical')
--]]

-- Background Tile Types
local BG_Open = require('BG_Open')
local BG_Wall = require('BG_Wall')
local BG_JumpPad = require('BG_JumpPad')

-- Obstical Tile Types
-- Platforms
local OB_Platform = require('OB_Platform')
local OB_Platform_Stop = require('OB_Platform_Stop')
--
local OB_JumpArrow = require('OB_JumpArrow')
local OB_Death = require('OB_Death')
-- Lightning
local OB_Lightning_Vert = require('OB_Lightning_Vert')
local OB_Lightning_Horiz = require('OB_Lightning_Horiz')
local OB_Lightning_Cross = require('OB_Lightning_Cross')
-- Falling Block
local OB_Falling_Block = require('OB_Falling_Block')
-- Gate that Closes After Player Goes Through it
local OB_Gate = require('OB_Gate')
local OB_Cannon = require('OB_Cannon')
local OB_Lightning_Gate = require('OB_Lightning_Gate')
--Keyed Gates and Keys
local OB_Keyed_Gate = require('OB_Keyed_Gate')
local OB_Gate_Key = require('OB_Gate_Key')

-- Player Tile Type
local Player = require('Player')

-- Camera Class
local Camera = require('Camera')

-- Android Touch Buttons
local Touch_Button = require('Touch_Button')

-- See Map:initialize to register new Background/Obstical Types

-- Create the Map Class
Map = class('Map')

-- Set Map Class Static Members

--Map.static.MAP_FILES = { 'maps/map-mike.txt', }
--Map.static.MAP_FILES = { 'maps/map1-8.txt', }
Map.static.MAP_FILES = { 'maps/map1-1.txt', 'maps/map1-2.txt', 'maps/map1-3.txt', 'maps/map1-4.txt', 'maps/map1-5.txt', 'maps/map1-6.txt', 'maps/map1-7.txt', 'maps/map1-8.txt', 'maps/map2-1.txt', 'maps/map2-2.txt', 'maps/map2-3.txt', 'maps/map2-4.txt', 'maps/map2-5.txt', 'maps/map2-6.txt', 'maps/map3.txt', }

-- Add Sound Effects Here
Map.static.SOUNDS = { jump = "sfx/player_jump.ogg", kill = "sfx/player_die.ogg", jump_collect = "sfx/player_collect_jumpArrow.ogg",
                       cannon_shoot = "sfx/Cannon_WIP03.ogg", cannon_turn = "sfx/Cannon_Turn_WIP07.ogg", }
Map.static.media = {}

-- FastDraw Cut-off If dt in update() is higher than this value, FastDraw Will be Enabled
Map.static.FAST_DRAW_CUT_OFF = 1 / 16

-- Default Text Location
Map.static.COMMENT_L_DEFAULT = 1
Map.static.COMMENT_T_DEFAULT = 1

-- Android Specific Stuff
-- TODO REMOVE DEBUG
--Map.static.IS_ANDROID = true
Map.static.IS_ANDROID = ( love.system.getOS() == 'Android' ) or ( love.system.getOS() == 'iOS' )
--Map.static.LEVEL_SCREEN_HEIGHT_RATIO = 0.8
--Map.static.LEVEL_SCREEN_WIDTH_RATIO = 0.8

-- Android Stuff
Map.static.TOUCH_BUTTON_MOVE_L_OFFSET = 0.05 * love.graphics.getWidth()  -- Distance From Left Edge of Screen For First Move Touch_Button
Map.static.TOUCH_BUTTON_MOVE_T_OFFSET = 0   -- Distance from Top of Viewport to First Touch_Button
Map.static.TOUCH_BUTTON_MOVE_WIDTH = 0.15 * love.graphics.getWidth()    -- Width of Move Touch_Buttons
-- Height of Move Touch_Buttons
Map.static.TOUCH_BUTTON_MOVE_HEIGHT = love.graphics.getHeight()
                                  - ( love.graphics.getHeight()*( 1 - Tile.ANDROID_VIEW_SCALE ) - Map.TOUCH_BUTTON_MOVE_T_OFFSET )
Map.static.TOUCH_BUTTON_JUMP_L_OFFSET = 0.05 * love.graphics.getWidth() -- Distance from Right of Viewport to Jump Touch_Button
Map.static.TOUCH_BUTTON_JUMP_T_OFFSET = 0  -- Distance from Top of Screen to Jump Touch_Button
-- Width of Jump Touch_Button
Map.static.TOUCH_BUTTON_JUMP_WIDTH = love.graphics.getWidth()
                                      - (love.graphics.getWidth()*( 1 - Tile.ANDROID_VIEW_SCALE ) - Map.TOUCH_BUTTON_JUMP_L_OFFSET )
Map.static.TOUCH_BUTTON_JUMP_HEIGHT = love.graphics.getHeight()  -- Height of Jump Touch_Button

-- Initializer For Map Function, Loads Current Level From File and Sets Everything Up
function Map:initialize( game, levelNum )
  self.world = bump.newWorld()
  self.game = game

  -- Fast Draw Mode -- For when things start Running Slow ( Walking? ) -- Usually Disables Outlines
  self.fastDraw = false

  -- BG Constructors Holder -- Register BG Types Here
  self.BG_Kinds = {
    -------------------------------------- map, rest
    WL = function(...) return BG_Wall:new(self, ...); end,
    JP = function(...) return BG_JumpPad:new(self, ...); end,
  }

  -- OB Constructors Holder -- Register OB Types Here
  self.OB_Kinds = {
    -- Platform starting Left
    PL = function(...) args = {...}; return OB_Platform:new(self, args[1], args[2], -1, self.platformWidth); end,
    -- Platform starting Right
    PR = function(...) args = {...}; return OB_Platform:new(self, args[1], args[2],  1, self.platformWidth); end,
    -- Platform Stopper
    PS = function(...) return OB_Platform_Stop(self, ...) end,
    -- double Jump Arrow
    JA = function(...) return OB_JumpArrow(self, ...); end,
    -- DeaTh
    DT = function(...) return OB_Death(self, ...); end,
    -- Lightning Cross
    LC = function(...) return OB_Lightning_Cross(self, ...) end,
    -- Lightning Vertical
    LV = function(...) return OB_Lightning_Vert(self, ...) end,
    -- Lightning Horizontal
    LH = function(...) return OB_Lightning_Horiz(self, ...) end,
    -- Falling Block
    FB = function(...) return OB_Falling_Block(self, ...) end,
    -- Gate that Closes Behind Player
    GT = function(...) return OB_Gate(self, ...) end,
    -- Cannon that Shoots the Player Until Hitting an Obstical
    CN = function(...) return OB_Cannon(self, ...) end,
    -- Lightning Gate that is Safe Until after the Player Passes through it
    LG = function(...) return OB_Lightning_Gate(self, ...) end,
    -- Lightning Gate that is Safe Until after the Player Passes through it - Vertical
    LGV = function(...) args={...}; return OB_Lightning_Gate(self, args[1], args[2], true, Tile.CELL_WIDTH/2, Tile.CELL_HEIGHT) end,
    -- Lightning Gate that is Safe Until after the Player Passes through it - Horizontal
    LGH = function(...) args={...}; return OB_Lightning_Gate(self, args[1], args[2], true, Tile.CELL_WIDTH, Tile.CELL_HEIGHT/2) end,
    -- Gate that is Closed Until a Green Key is Collected
    KG = function(...) return OB_Keyed_Gate(self, 'green', ...) end,
    -- Green Key for OB_Keyed_Gate (KG)
    GK = function(...) return OB_Gate_Key(self, 'green', ...) end,
    -- Gate that is Closed Until a Blue Key is Collected
    KB = function(...) return OB_Keyed_Gate(self, 'blue', ...) end,
    -- Green Key for OB_Keyed_Gate (KB)
    BK = function(...) return OB_Gate_Key(self, 'blue', ...) end,
  }

  -- Initialize Normal Variable
  self.height = 0
  self.width = 0
  self.players = {} -- Array of Players
  self.players_vx = {} -- Array of Players' Initial x Velocities, Used to Reset Initial Velocity
  self.numPlayers = 0
  self.levelNum = levelNum or 1 -- TODO - Level Always Starts at this Default Value
  self.numBGTiles = 0   -- Number of Background Tiles
  self.BGTiles = {}     -- List of the Background Tiles
  self.numOBTiles = 0   -- Number of Obstical Tiles
  self.OBTiles = {}   -- List of the Obstical Tiles
  self.comment = ""   -- The Comment for the Map, Displayed on the Screen
  self.commentL = Map.COMMENT_L_DEFAULT -- The l Position of the Comment
  self.commentT = Map.COMMENT_T_DEFAULT -- The t Position of the Comment
  self.platformWidth = 0 -- Used to Maintain State while Adding Platforms of width Greater than 1
  self.touchButtons = {} -- Touch_Button Array
  self.touchButtonsByID = {} -- Hash Table
  self.keys = {} -- Value True For Index (Color Name) of Collected Key

  -- Load Map File if Any, if None, Quit
  local file = Map.MAP_FILES[self.levelNum]
  if file then
    Map.loadFile( self, file )
  else
    love.event.quit()
  end

  -- Add Touch_Buttons if On Android
  if Map.IS_ANDROID then
    self.touchButtons[1] = Touch_Button( game, self, Map.TOUCH_BUTTON_MOVE_L_OFFSET, self.height + Map.TOUCH_BUTTON_MOVE_T_OFFSET,
                                          Map.TOUCH_BUTTON_MOVE_WIDTH, Map.TOUCH_BUTTON_MOVE_HEIGHT,
                                          'left', 1 )
    self.touchButtons[2] = Touch_Button( game, self, Map.TOUCH_BUTTON_MOVE_L_OFFSET+Map.TOUCH_BUTTON_MOVE_WIDTH, self.height + Map.TOUCH_BUTTON_MOVE_T_OFFSET,
                                          Map.TOUCH_BUTTON_MOVE_WIDTH, Map.TOUCH_BUTTON_MOVE_HEIGHT,
                                          'right', 1 )
    self.touchButtons[3] = Touch_Button( game, self, self.width + Map.TOUCH_BUTTON_JUMP_L_OFFSET, Map.TOUCH_BUTTON_JUMP_T_OFFSET,
                                          Map.TOUCH_BUTTON_JUMP_WIDTH, Map.TOUCH_BUTTON_JUMP_HEIGHT,
                                          'jump', 1 )
  end

  -- Add Camera
  self.camera = Camera(self)
end

-- Open All Needed Sound Media Files
function Map.static.openMedia()
  --print(Map.SOUNDS)
  for k, v in pairs( Map.SOUNDS ) do
    --print(k, v)
    Map.static.media[k] = love.audio.newSource(v, "static")
  end
end

-- Play Sound Media by Name
function Map:playMedia( name )
  local sound = Map.media[name]
  if sound then
    love.audio.play( sound )
  end
end

function Map:nextLevel()
  self.world = bump.newWorld()
  self.width, self.height = 0, 0
  self.numPlayers = 0
  self.levelNum = self.levelNum + 1

  -- Save Progress
  if self.levelNum > self.game.maxLevelReached and self.levelNum <= #Map.MAP_FILES then
    self.game:save( self.levelNum )
  end

  self.numBGTiles = 0
  self.BGTiles = {}
  self.numOBTiles = 0
  self.OBTiles = {}
  self.fastDraw = false -- Attempt Normal Drawing for this Map
  self.comment = ""

  -- Get Previous players' x Velocities ( Restored Later ), then Reset players,
  for i = 1, #self.players do
    self.players_vx[i] = self.players[i].vx
  end
  self.players = {}
  local file = Map.MAP_FILES[self.levelNum]
  if file then
    Map.loadFile( self, file )
  else
    love.event.quit()
  end

  -- Restore Players' Initial x Velocities
  for i = 1, #self.players do
    local old_vx = self.players_vx[i]
    if old_vx then
      self.players[i].vx = old_vx
    end
  end

  -- Android Specific Stuff, Register Touch_Buttons in New World
  for i = 1, #self.touchButtons do
    local button = self.touchButtons[i]
    self.world:add( button, button.l,button.t,button.w,button.h )
  end

  -- Garbage Collect, Try to Reduce Memory Leakage
  collectgarbage("collect")
end

-- Basic / Haxor way to Go back a level:
  -- Pseudo-Code:
  -- function Map:prevLevel()
    -- if Map.levelNum > 1 then
      -- Map.levelNum = Map.levelNum - 2
      -- Map:nextLevel()
    -- else
      -- Warning: No Previous Level
        -- Or just: Don't Change
function Map:prevLevel()
  if self.levelNum > 1 then
    self.levelNum = self.levelNum - 2
    self:nextLevel()
  else
    -- TODO - Show Warning/Message?
  end
end

--[[
function Map:clear()
  local blocks, len = self.world:queryRect( 0, 0, self.width, self.height )
  for _, block in ipairs(blocks) do
    self.world:remove( block )
  end
end
--]]

function Map:addTile( layer, kind, xpos, ypos )
  if layer == 'BG' then
    self:addBG( kind, xpos, ypos )
  elseif layer == 'OB' then
    self:addOB( kind, xpos, ypos )
  end
end

function Map:addBG( kind, lpos, tpos )
  if type(self.BG_Kinds[kind]) == 'function' then
    self.numBGTiles = self.numBGTiles + 1
    self.BGTiles[ self.numBGTiles ] = self.BG_Kinds[kind]( lpos, tpos )
  end
  --[[ -- Old Code
  if kind == 'WL' then
    self.numBGTiles = self.numBGTiles + 1
    self.BGTiles[ self.numBGTiles ] =
  end
  ]]
end

function Map:addOB( kind, lpos, tpos, last )
  --last = last or '00'
  -- Handle Multiple Width Platforms
  if kind == 'PL' or kind == 'PR' then
    self.platformWidth = self.platformWidth + 1
  end
  if ( last == 'PL' or last == 'PR' ) and kind ~= last then
    self.numOBTiles = self.numOBTiles + 1
    self.OBTiles[ self.numOBTiles ] = self.OB_Kinds[last]( lpos, tpos )
    -- Handle Opposing Platform Types Next to Each Other
    --- TODO ERROR with Adjacent Platforms of Differing Types
    if kind == 'PL' or kind == 'PR' then
      self.platformWidth = 1
    else
      self.platformWidth = 0
    end
  end

  -- Handle Non-Platforms
  if kind ~= 'PL' and kind ~= 'PR' and type( self.OB_Kinds[kind] ) == 'function' then
    self.numOBTiles = self.numOBTiles + 1
    self.OBTiles[ self.numOBTiles ] = self.OB_Kinds[kind]( lpos, tpos )
  end
end

-- Add a Line of Background Elements and Return Maximum lpos
function Map:addBGLine( line, tpos )
  local lpos = 0
  for kind in string.gmatch( line, '%w+' ) do
    self:addBG( kind, lpos, tpos )
    lpos = lpos + 1
  end
  return lpos
end

-- Add a Line of Obstical Elements and Return Maximum lpos
function Map:addOBLine( line, tpos )
  local lpos = 0
  local last --= '00' -- Last Obstical Loaded
  for obsticalName in string.gmatch( line, '%w+' ) do
    self:addOB( obsticalName, lpos, tpos, last )
    lpos = lpos + 1
    last = obsticalName
  end
  return lpos
end

function Map:addTileLine( kind, line, xpos )
  if kind == 'BG' then
    self:addBGLine( line, xpos )
  elseif kind == 'OB' then
    self:addOBLine( line, xpos )
  end
end

function Map:addCommentLine( line )
  self.comment = self.comment .. line .. string.format("\n")
end

function Map:addPlayer( lpos, tpos )
  return Player:new( self, lpos, tpos )
end

function Map:addPlayerLine( line )
  local lpos, tpos = string.match( line, "(%d+)%s+(%d+)" )
  return Player:new( self, lpos, tpos, self )
end

function Map:loadFile( file )

  local row = 0
  local isComment = false
  local isCommentLocation = false
  local isBG = false
  local isOB = false
  local isPlayer = false
  local tpos = 0
  local maxTPos = 0

  Player.static.numPlayers = 0

  for line in love.filesystem.lines( file ) do
    if string.sub( line, 1, 1 ) == '#' then
      -- Skip Comment
    else
      -- If Mode Line is Found
      local s, e = string.find( line, ':' )
      if s then
        -- Get Mode
        local mode = string.sub( line, 1, s-1 )
        if mode == 'Comment' then
          isComment = true
          isBG = false
          isOB = false
          isPlayer = false
          isCommentLocation = true
        elseif mode == 'Background' then
          isBG = true
          isComment = false
          isOB = false
          isPlayer = false
          tpos = 0
        elseif mode == 'Obstical' then
          self.platformWidth = 0 -- Reset Platform Width Holder
          isOB = true
          isBG = false
          isComment = false
          isPlayer = false
          tpos = 0
        elseif mode == 'Player' then
          isOB = false
          isBG = false
          isComment = false
          isPlayer = true
        end
      else
        if isComment then
          if isCommentLocation then
            local i = 1
            for pos in string.gmatch( line, "%d+" ) do
              -- Set Position for Comments if Given, Otherwise, use Default
              if i == 1 then self.commentL = tonumber(pos) or Map.COMMENT_L_DEFAULT
              elseif i == 2 then self.commentT = tonumber(pos) or Map.COMMENT_T_DEFAULT
              end
              i = i + 1
            end
            -- If No Position Was Given, Assume that line is a Comment, forward it to addCommentLine()
            if i < 2 then self:addCommentLine( line ) end
            isCommentLocation = false
          else
            self:addCommentLine( line )
          end
        elseif isBG then
          maxTPos = math.max( self:addBGLine( line, tpos ), maxTPos )
          tpos = tpos + 1
          self.height = self.height + Tile.CELL_HEIGHT
        elseif isOB then
          maxTPos = math.max( self:addOBLine( line, tpos ), maxTPos )
          tpos = tpos + 1
        elseif isPlayer then
          self.numPlayers = self.numPlayers + 1
          self.players[self.numPlayers] = self:addPlayerLine( line )
          --isPlayer = false -- 1 Player Mode
        end
      end
    end
  end
  self.width = Tile.CELL_WIDTH * maxTPos
end

-- Map Update Function
function Map:update( dt )
  -- Turn on FastDraw if dt is too High
  if ( dt > Map.FAST_DRAW_CUT_OFF ) then
    self.fastDraw = true
  end

  -- Get Android Screen Touches
  -- Update Touch Buttons
  if Map.IS_ANDROID then
    for i = 1, #self.touchButtons do
      self.touchButtons[i]:update(dt)
    end
    --self.comment = "Player.vx = " .. self.players[1].vx -- TODO REMOVE DEBUG
  end

  -- Iterate over all Non-Player Tiles and Update them
  -- Iterate over BG Tiles
  for i = 1, self.numBGTiles do
    local BGTile = self.BGTiles[i]
    if BGTile.updates then
      BGTile:update(dt)
    end
  end
  -- Iterate over OB Tiles
  for i = 1, self.numOBTiles do
    local OBTile = self.OBTiles[i]
    if OBTile.updates then
      OBTile:update(dt)
    end
  end
  -- Iterate over all Players and Update them
  for i = 1, self.numPlayers do
    -- Avoid Crashing When Switching to Level with Fewer Players
    if self.players[i] then
      self.players[i]:update( dt )
    end
  end

  -- Update Camera
  if self.players[Camera.FOLLOW_PLAYER_NUM] then
    self.camera:update( dt )
  end
end

-- Map Draw Function
function Map:draw()
  local camera = self.camera

  -- Only Do Normal Drawing When Not in FastDraw Mode
  if not self.fastDraw then
    -- Draw Background Tiles
    for i = 1, self.numBGTiles do
      local BGTile = self.BGTiles[i]
      -- Only Draw the Tile if it's within the Camera's Viewport
      if BGTile.l + BGTile.w>= camera.l and BGTile.l <= camera.l + camera.width
        and BGTile.t + BGTile.h >= camera.t and BGTile.t <= camera.t + camera.height then
        BGTile:draw()
      end
    end

    -- Draw Obstical Tiles
    for i = 1, self.numOBTiles do
      local OBTile = self.OBTiles[i]
      if OBTile.l + OBTile.w >= camera.l and OBTile.l <= camera.l + camera.width
        and OBTile.t + OBTile.h >= camera.t and OBTile.t <= camera.t + camera.height then
        OBTile:draw()
      end
    end
  else
    -- FastDraw Mode Enabled
    -- FastDraw Background Tiles
    for i = 1, self.numBGTiles do
      local BGTile = self.BGTiles[i]
      -- Only Draw the Tile if it's within the Camera's Viewport
      if BGTile.l + BGTile.w>= camera.l and BGTile.l <= camera.l + camera.width
        and BGTile.t + BGTile.h >= camera.t and BGTile.t <= camera.t + camera.height then
        BGTile:fastDraw()
      end
    end

    -- FastDraw Obstical Tiles
    for i = 1, self.numOBTiles do
      local OBTile = self.OBTiles[i]
      if OBTile.l + OBTile.w >= camera.l and OBTile.l <= camera.l + camera.width
        and OBTile.t + OBTile.h >= camera.t and OBTile.t <= camera.t + camera.height then
        OBTile:fastDraw()
      end
    end
  end

  -- Draw Comments
  love.graphics.setColor( 255/255, 255/255, 255/255 )
  love.graphics.print( self.comment, self.commentL*Tile.CELL_WIDTH, self.commentT*Tile.CELL_HEIGHT ) --, 0, Tile.SCALE ) -- Scaling Now Handled when Font is Loaded

  -- Draw Players
  for i = 1, self.numPlayers do
    local player = self.players[i]
    if player.l + player.w >= camera.l and player.l <= camera.l + camera.width
      and player.t + player.h >= camera.t and player.t <= camera.t + camera.height then
    player:draw()
    end
  end

  -- Draw Touch Buttons
  if Map.IS_ANDROID then
    for i = 1, #self.touchButtons do
      self.touchButtons[i]:draw()
    end
  end
end

-- Reset Function to Map, Pass to Objects in Map
function Map:reset()
  -- Reset Players
  for i = 1, self.numPlayers do
    local player = self.players[i]
    if player.reset then
      player:reset()
    end
  end

  -- Reset Obsticals
  for i = 1, self.numOBTiles do
    local obstical = self.OBTiles[i]
    if obstical.reset then
      obstical:reset()
    end
  end

  -- Reset Backgrounds
  for i = 1, self.numBGTiles do
    local background = self.BGTiles[i]
    if background.reset then
      background:reset()
    end
  end

  self.keys = {}
end

-- Pass Key Presses to Players
function Map:keypressed( key, isRepeat )
  for _, player in ipairs(self.players) do
    player:keypressed( key, isRepeat )
  end
  --- TODO REMOVE - FOR DEBUG ONLY!
  if key == 'e' then self:nextLevel()
  elseif key == 'q' then self:prevLevel()
  elseif key == 'r' then self:reset()
  elseif key == 'f' then self.fastDraw = not self.fastDraw
  end
end

-- Pass Key Releases to Players
function Map:keyreleased( key )
  for _, player in ipairs(self.players) do
    player:keyreleased( key )
  end
end

-- Return Our Fresh, Shiny, New Class
return Map

redpajama_set_name: RedPajamaGithub


text:
Electric Daisy Carnival – EDC Las Vegas 2021
EDM Electronic music Hardstyle
Electric Daisy Carnival (EDC) Las Vegas is one of the biggest electronic music festivals in the world. Heading into its landmark 25th year, this is the flagship event of the global EDM brand.
Annually curating a lineup of the biggest and brightest from across house, techno, hip hop, hardstyles, and of course EDM, you'd be hard pressed to find a more extensive dance music bill anywhere in the world.
Having moved to its home at the Las Vegas Motor Speedway over a decade ago, EDC LV features top tier stage production, pyrotechnics, and everything else you can think of to make it the most immersive and memorial experience possible.
SAGA presents Calvin Harris
Dance EDM Electronic
Constanța, Romania
Electric Daisy Carnival – EDC Orlando 2022
Orlando, United States of America
Circus Maximus 2022
EDM Electronic Hardstyle
22–24 October 2021
Las Vegas , USA
Las Vegas Motor Speedway, Las Vegas, United States of America


Taking a Chekhov monologue as a starting point (and with a good few dashes of Kafka, Longfellow and Edward Lear), Tobacco manages to be simultaneously absurd and profound, hilarious and deeply sad.
Owle Schreame's Droll is an engaging piece of late night lunacy performed for the "Merriment and Delight and Wise Men and the Ignorant".
A young girl lives a lonely life in a caravan with her pre-occupied mother, whose job is to monitor the signals from a vast array of satellite dishes.
Twenty-one summers ago, their dad fell completely in love with their mum.
When two characters from different times, genres and authors come together, they have no choice but to rewrite themselves.
Hannah repeats Pythagorean theorem to the secular sounds of Belinda Carlisle's "Heaven is a Place on Earth" as she enters the grotto.
Dad sits alone next to a long line of hanging garments. His daughter enters and reminds him that they will soon have visitors; he needs to put on a jacket and tie.
The common goldfish is the descendant of the Russian Carp.
Two actors grapple with a modern adaptation of Edgar Allen Poe's classic horror story which they perform reluctantly with frequent interruptions and a playful disrespect for the writing.


The EliteBook Folio 9470m isn't the lightest Ultrabook around, but it is one of the most attractive. The top surface is made from lightweight magnesium that's been coated in a luxurious silver soft-touch paint that makes it a pleasure to grip. The bottom is coated with the same material.
Folio 9470M passed seven MIL-SPEC tests including those for dust, vibrations, shock and extreme temperatures.
It comes with three USB 3.0 ports, as well as a DisplayPort, Ethernet, smart card reader, fingerprint reader, Kensington lock port, and a VGA port.


One of the things I've always enjoyed about the way Skorne plays is that its a varied faction with different takes for almost every caster. What I didn't enjoy, until recently, was that similarity to Cryx. I felt I had casters that did what the squishy Skorne casters sought to do, and better. After looking long and hard at the few casters that really grabbed me as Cryx-esque, though, I have to say I was wrong. Not only do Zaal, Hexerix, Mordikaar and Rasheth not feel Cryxian, they don't play Cryxian. There are no debuffs, few lurking spell assassinations, and only just the littlest bit of numbers attrition. Instead, they offer a more magical-based or support based way to perform the Skorne Agenda.
The Skorne agenda, as I see it, is to attrition the enemy out of the game. Now, this has become the National meta with the rise of Fist of Halaak, Meat Mountain and other armies relying on high boxes and armor, but Skorne is one of the originators. From Mk I they were the faction that put pressure on your opponent no matter what they choose. Cryx, in MK II especially, have taken off as the attrition faction. Khador as well is a huge attrition faction, but each of these three take attrition to different angles. Trolls probably belong in here as the fourth corner of the star.
Cryx Attrition: Offensive attrition through masses of dangerous dudes that you have to simply wade through before you can win the game.
Khador Attrition: Defensive attrition through masses of dangerous dudes that you can't hit, and therefor kill and have to find a way to get rid of before they crack you.
Skorne Attrition: Mixed attrition where every attack is a solid attack that can make you regret it existing, focusing on Beasts instead of troops for the finishing blow most of the time. .
I am really psyched to go to the Philly Games Con next weekend and try out my lists against some people I never, ever get to play. I have hopes that I can do better than my last outing (2-3). I'll be bringing Fist, simply because I know and am fairly solid with it, and very likely Makeda 2.
My problem now comes with deciding when to use what.
Fist is a great list, and can easily be thrown down in most situations in order to create a very solid chance at winning the game. Makeda's list is a Swiss army knife of solutions and tools while the Xerxis list is, if you'll forgive me, an iron fist.
This may sound like I beat a dead horse here fairly often, and it might be true. I don't think that I am very good at seeing and choosing matchups. I see my skill and ability to play a list first and foremost as the decider of a game. I have had very bad matchups where I have either pulled out a win, or was close enough that I could taste it. These "80/20" matchups just don't phase me. I will get all tickled, however, over certain Casters I have a feeling will assuredly be there. When Bradigus was all the rage, I focused a lot on him. Now, Knowing Mike Ireland plays Ossyan/Vyros2 almost all the time, I want to have a solution, and I am not sure that I do.
Here is the big thing: I feel confident in my ability to pilot an army, and to understand when I've failed to pilot it correctly, however, I don't feel that I am gaining that opportunity to play into the best games I can. When both players are evenly matched, each one is looking for that little something that's going to take them from x-1 to x-0. Tipping that scale from 60/40 in their favor to 60/40 in your favor is that edge that I think I need next.
With that said, I'm ready to try and take on the challenges of figuring out how the two lists I intend to take will fare, and am stoked to go. Hopefully, something will sink into my brain!


text:
Q: SharePoint 2013 online - Site template with publishing feature Environment : SP 2013 Online Site collection with Team site template
I have requirement to create master pages so i have to enable Publishing feature at site collection and site level.
Now I have requirement to take the template of this site and move to another site collection (let say prod site). Since publishing feature is enabled I will not get option of directly taking site template. So i will make flag true in SPD, then navigate to url /_layout/savtemplate.aspx to make the template file.
After creating empty template type site collection I will upload the template file wsp in solution gallery and activate the feature.
Question - is while i am taking template should i keep my publishing feature activated or deactivated ?

A:
Unfortunatelly the answer for this question is: saving publishing
  enabled sites as a template is not supported and it does not work. You
  cannot use this option to create new sites. Instead you should create
  site definitions (..\web server extensions\12\template\SiteTemplates)
  and provision the new site based on such a site definition.
Also be aware that deactivating the publishing feature and creating a
  template of the site will not lead to a supported template! The
  problem is that the template would still contain all the artefacts of
  a publishing site like Pages library and various different properties.
  Creating a template of a site which previously had the publishing
  feature activated is unsupported in the same way as creating a
  template from a site which has the publishing feature activated.

If you disable the publishing feature and delete all content that belongs to the Publishing feature (pages library, publishing image and publishing document library and several properties in the property bag) before saving as template you would be fine.
If you keep any content related to the publishing feature – even if it is diabled – it will be affected and unsupported.
Kindly check here
Try this article to save site as template with publishing feature ON without PowerShell or SP Designer.


I haven't used the product for long enough to say it definitely works but it smells divine and feels wonderful and tingly plus leaves my skin super soft. Very impressed so far!
light cream that easily soaks in to the skin. Leaves a cold sensation on the skin that last about half an hour, cellulite saw an improvement after first use. I've recommended it to a few people based on the results!
My thighs have always been my problem area right from being 16, so I wanted to give this a try to see if it would help improve my cellulite once and for all. The combination of the Mio scrub brush and this product are an absolute dream and you can genuinely feel it working as it has a cooling sensation when applied to the skin. After 2 weeks of use I can already see a huge improvement to my cellulite, especially at the back of my legs. I've always been an advocate of products that contain Green Tea due to their antioxidant properties, so for me this is a winner!
I can't believe that I've found a product that actually works! After using this with the Mio brush, I can see results - my thighs are looking so much tighter and cellulite is visibly less! Have recommended to all my friends who also have wobbly bits!
Lovely smell - when its on its got a cold tingly feel to it which feels like its doing something. The massaging is helping too. The skin on my thighs appears to be smoother and less lumpy. The cellulite is less apparent too.
I've used this for several months now and lost inches from my arms and waist! It smells amazing and doesn't take much for each application, I can't imagine life without it now!
It does what it says on the tin. I really massage it in every morning and every night, and my thighs are so much smoother! I did it for 30 days to see if I could actually see a difference and I really can. Love this product!
The first cream (in combination with the Mio body brush) that has made a difference to my cellulite. It has a pleasant citrus smell and cools my Skin - fantastic!