William & Mary - David Aday, Jr.
My current teaching and research interests focus on community and international participatory development. This interest has emerged over a career that focusd on crime, regulatory arrangements and theory. It reflects a deep distrust of hierarchical and coercive strategies of "helping" and "managing" in human affairs. My work in the Dominican Republic and in Nicaragua represents a shift from issues of security and social control to those of health and well-being. I see the two as inherently related and believe that effective communities must find ways to solve these and other persistent and thorny problems. Students have taught me much over the years -- not the least, the need to continue to learn and to press forward to create and use knowledge. Students are responsible directly for my current work in community health and for my involvement in the two most exciting projects (SOMOS and MANOS) of my now lengthy career.


text:
Facebook Is Advertising Its New Privacy Features On Google
One new privacy control that Mark Zuckerberg announced separately is called "Clear History," and it will roll out as an update in a few months.
After revelations that as many as 87 million Facebook users had their data improperly accessed by the political consulting firm Cambridge Analytica, the social media giant is advertising a page on Google showing users how Facebook is working to protect their privacy. That ad is being shown ahead of the company's F8 conference, Facebook's annual developer gathering, which starts on Tuesday.
According to a linked support page on preventing platform abuse, Facebook will inform users if it has removed an app for misusing data. The company also plans to show you an app management tool at the top of the News Feed, and to automatically remove access to apps not used in three months. Finally, it plans to restrict the data accessed by websites and apps through Facebook Login to name, profile photo, and email address.
In a separate announcement that was not mentioned on the advertised page, CEO Mark Zuckerberg also introduced a new feature called, "Clear History," which won't be available for a few months. It will be a "simple control to clear your browsing history on Facebook," Zuckerberg wrote in a post detailing the feature. "Clear History" will delete what you've clicked, websites you've visited, and other information Facebook gathers from websites and apps that use Facebook's ads and analytics tools. Additionally, users will be able to turn off Facebook's collection of browsing history.
Facebook tracks you even when you're not on Facebook, using a piece of technology called the "Facebook Pixel" (a few lines of code developers can embed in to their websites), along with the Like button and Facebook Analytics. Every time you visit one of those websites, Facebook records that visit. That is, unless you opt out of browsing history collection with the future Clear History feature.
Stay tuned for more to come from F8.

redpajama_set_name: RedPajamaCommonCrawl


Here at MMAGearGuide, we provide you with the latest MMA coupons, sales and promotions! Bookmark this page as we regularly update so you don't miss out on saving some moolah!
Back to School Savings! Get 15% Off All Orders with code SCHOOL at MMAWarehouse.com! Ends 8/19.
Buy Two MusclePharm Z Core PM, Get One FREE at MMAWarehouse.com!
Buy Two MusclePharm Battle Fuel XT, Get One FREE at MMAWarehouse.com!
Get a FREE Hayabusa Hoodie with purchase of the Cast and Champion Hoodies at MMAWarehouse.com!


text:
Qatar (disambiguation)
2011 AFC Asian Cup
Coordinates: 25°30′N 51°15′E / 25.500°N 51.250°E / 25.500; 51.250
Qatar (/ˈkæˌtɑːr/, i/ˈkɑːtɑːr/, /ˈkɑːtər/ or i/kəˈtɑːr/;Arabic: قطر Qaṭar [ˈqɑtˤɑr]; local vernacular pronunciation: [ɡɪtˤɑr]), officially the State of Qatar (Arabic: دولة قطر Dawlat Qaṭar), is a sovereign country located in Southwest Asia, occupying the small Qatar Peninsula on the northeastern coast of the Arabian Peninsula. Its sole land border is with Saudi Arabia to the south, with the rest of its territory surrounded by the Persian Gulf. A strait in the Persian Gulf separates Qatar from the nearby island of Bahrain, as well as sharing sea borders with the United Arab Emirates and Iran.
Following Ottoman rule, Qatar became a British protectorate in the early 20th century until gaining independence in 1971. Qatar has been ruled by the Al Thani family since the mid-19th century. Qatar is a hereditary constitutional monarchy and its head of state is Emir Sheikh Tamim bin Hamad Al Thani. The constitution was overwhelmingly approved in a constitutional referendum, with almost 98% in favour. In 2013, Qatar's total population was 1.8 million: 278,000 Qatari citizens and 1.5 million expatriates. After Saudi Arabia and Oman, Qatar is the most conservative society in the Gulf Cooperation Council.
This page contains text from Wikipedia, the Free Encyclopedia -	https://wn.com/Qatar
Qatar is a country in the Middle East.
Qatar may also refer to:
Qatar, Iran (disambiguation), places in Iran
Qatar Airways, the state-owned flag carrier of Qatar
Qatar SC, a sports club based in Doha, Qatar
This page contains text from Wikipedia, the Free Encyclopedia -	https://wn.com/Qatar_(disambiguation)
The 2011 AFC Asian Cup finals were held in Qatar on 7–29 January 2011. It was the fifteenth time the tournament has been held, and the second time it has been hosted by Qatar, the other being the 1988 AFC Asian Cup. Japan won the cup after a 1–0 win against Australia, and earned the right to compete in the 2013 FIFA Confederations Cup in Brazil as the representative from AFC.
A television viewing audience of 484 million in 80 countries across the Asia-Pacific region, Europe, North America and North Africa witnessed Japan defeat Australia 1–0 in the final.
Qatar, India and Iran all lodged interest in hosting the 2011 AFC Asian Cup, while Australia also considered making a late bid. Qatar officially submitted their bid on 19 June 2006, while India withdrew their interest and Iran failed to submit proper documentation for their bid on time.
Qatar was announced as host nation on 29 July 2007, during the 2007 AFC Asian Cup in Jakarta, Indonesia. Due to FIFA regulations stating that confederation events can be hosted either in January or July, and July being peak summer heat in the Middle East, it was also announced that the tournament would be held in January of that year.
This page contains text from Wikipedia, the Free Encyclopedia -	https://wn.com/2011_AFC_Asian_Cup
qatarleasing.com
qatarparking.com
localqatar.com
athensleasing.com
chipsleasing.com
qatarmedia.com
qatargrand.com
qatarnational.net
airleasing.com
leasingfinances.com
qatarcountry.com
unitedstatesleasing.com
qatarenergy.com
pakistanleasing.com
africaleasing.com
qatarpost.com
qatardaily.com
suisseleasing.com
qatareconomy.com
leasingsolar.net
Latest News for: Qatar leasing
Democrats probe Kushner Doha link
Gulf Daily News 11 Dec 2020
Legislators from the Senate Finance and House Foreign Affairs committees on Wednesday sent a wide-ranging document request to Brookfield Asset Management, which counts the Qatar Investment Authority among its major financial backers and signed a long-term lease on the office tower in 2018, the Financial Times reported....
Inside the COVID-19 vaccine airlift: How cargo carriers plan to distribute the world's soon-to-be most ...
Business Insider 20 Nov 2020
Visit Business Insider's homepage for more stories ... Read more ... Qatar Airways Cargo signed a leasing agreement in September for more temperature-controlled shipping containers produced by Skycell, increasing its daily temperature-controlled cargo processing capability by 270 units at Hamad International Airport ... A DHL cargo plane. JIMIN LAI/AFP/Getty....
Qatar Airways Cargo signs agreement with SkyCell for hybrid pharma containers
MENA FN 29 Sep 2020
(MENAFN - Gulf Times) Qatar Airways Cargo and SkyCell have signed an agreement to lease SkyCell hybrid pharma containers. The addition of these temper... ....
Qatar Airways annual loss widens to 7bn riyals on Covid-19 lockdown
The National 27 Sep 2020
Qatar Airways reported its third consecutive annual loss, citing the impact of the Covid-19 pandemic and the ongoing boycott of its home country by neighbouring states restricting its flights ... "2019-20 has been one of the most difficult years in the airline's history," Qatar Airways said in a statement....
Qatar Airways annual loss widens to 7bn rials on Covid-19 lockdown
The Qatari government is paying @realDonaldTrump $135,000 a year for an unused office in a ...
Democratic Underground 18 Sep 2020
... fund decided to lease space in the San Francisco building just as the Trump administration was siding with Saudi in its fight with Qatar....
"One of the Most Significant Potential Conflicts of Interest in American History": How Everyone From ...
Vanity Fair 17 Sep 2020
The amount Qatar pays in rent remains a mystery ... subsidiary of the Qatar Investment Authority, a sovereign wealth fund, to HWA 555 Owners LLC ... "Leaders pointed to Qatar—look!" ... Vornado CEO Steven Roth, Trump's partner in the San Francisco tower where the Qatar Investment Authority had leased office space....
Hassan Al Thawadi - Qatar committed to securing sustainable accommodation options for 2022 World Cup
Yahoo Daily News 31 Aug 2020
MADLSA and SC sign first batch of lease agreements in Qatar to secure accommodations for world cup fans... ....
Qatar Petroleum on the lookout for Al Rayyan FSO
Upstream Online 25 Aug 2020
Qatar Petroleum is in the market for ......
Qatar Petroleum on the hunt for Al Rayyan FSO
Group 3 Winner Rose of Kildare Bought by Qatar Racing
Bloodhorse 15 Aug 2020
Group 3 winner Rose of Kildare has been purchased privately as a broodmare prospect by Qatar Racing and will be leased back to Kingsley Park 14 for the rest of the season ... ....
Erdogan, the portrait of a ruthless dictator
Blitz 24 May 2020
He established a military base in Qatar with 5,000 Turkish troops, which he calls a 'symbol of brotherhood' ... The countries where Turkey has a military presence, including Syria, Libya, Sudan, and Qatar, should be aware that Erdogan's main purpose is to establish a permanent foothold and exert undue influence as a part of his hegemonial aspirations....
Saudi Arabia Expands Lockdown as Coronavirus Death Toll Doubles
The Algemeiner 30 Mar 2020
But Manama said on Sunday it had leased an aircraft to fly back 31 Bahrainis who decided to travel from Tehran to Qatar in an attempt to get home. Qatar Airways, one of the few airlines maintaining scheduled commercial passenger services, will continue to fly, Chief Executive ......


text:
Home » Dice Games • Farkle » How to Play Farkle
How to Play Farkle
On April 12, 2019 posted by Adalene Lucas in Dice Games, Farkle No Comments
Learn the rules of Farkle, one of the oldest known dice games still in remarkably popular existence!
Farkle is a dice game based on risk, guts and ultimate glory for the winner. It's about taking chances that could lead to disaster, or win you the whole game in the final moments. Perhaps that's why it's still so popular after all these centuries.
The history of the game is a matter of controvertible debate. Some say it dates back to the 1300-1400s, when Sir Albert Farkle first played in Iceland. Other contend that it came to the Americas via French sailing ships in the 17th century, or that is was derived from a berry vine native to Texas. However it came to be, I and countless others can at least agree that we're glad it did!
Farkle Rules – Official
Farkle has undergone many rule changes throughout the years, particularly in scoring methods. The following is an easy to follow guide describing the official rules of the game.
Note that there are two 'official' versions sold in North America, FARKLE and FARKEL. Both use verbiage that leads consumers to believe they are the real, original game. FARKLE is touted as "the classic" game, while FARKEL calls itself "the original" game.
Which is the true original? There's some debate to that question too, which we attempt to answer in this exploration of Farkle's origins. What I can tell you is that if you don't buy the correct game described here (Farkle, not Farkel), the rules won't match up!
To play Farkle, you'll either need to purchase a basic set of the game, or gather 6 dice and draw out or print out some basic Farkle score sheets. You can also use pen and plain paper, but the official score sheets provide a basic reference for scoring that serves at a great reminder for beginners.
Farkle is a game for 2 or more players. You can have as many as you like. Just know that the more players you have the slower the game gets, which can create lulls of boredom for those in waiting.
Like most dice games, the object is to achieve the highest score.
Rolling the Dice
Each time you roll the dice, you must roll a scoreable combination of some sort. If there's no score to be taken, your turn is over. So long as you can claim score of any amount, you have two options. You can either stop rolling and take that score, or you can keep the die/dice that scored and roll the rest of the dice again. If you choose to roll again, your score must increase on that roll, or you lose all current points and your turn is over. Any turn that ends without taking score is called a "Farkle".
In general, you're looking to roll a 1 or 5, any 3 of a kind or better, three pairs, or a straight of 1 thru 6. However, you cannot combine dice from two separate rolls to create a scoring combination.
Scoring in Farkle
Certain dice or combinations of dice are worth points. They include:
Any 5 = 50 points each
Any 1 = 100 points each
Three 1s = 300 points
Any 4 of a Kind = 1,000 Points
Straight 1-6 = 1,500 Points
Three Different Pairs = 1,500 Points
4 of a Kind + Pair = 1,500 Points
Two 3 of a Kinds = 2,500 Points
Three FARKLEs in a row = Lose 1,000 points
Note: Many documents state that a 3 of a Kind in 1s is worth 1,000 points, but I have an official Farkle game (in hand as I type this), and I can assure you, the official rules of this game (Farkle The Classic Dice-Rolling, Risk-Taking Game, distributed by Patch Games Inc.), states "1 1 1 = 300 pts."
Opening Score: In order to start banking any score, a player must first accumulate an opening score of 500+ points in a single play. If the player scores anything less than 500, the points cannot be banked. Players will generally keep rolling until they score 500, or Farkle out. However, if you've Farkled twice in a row, it's better to stop before 500 points than risk Farkling out again, incurring a loss of 1,000 points!
Hot Dice: If aplayer is able to score points on all six dice, they are said to have Hot Dice. They get to roll all 6 dice again and continue earning points for the play. However, those points have not yet been banked. It's still possible to Farkle out and lose them all, so be careful! The odds of Farkling on a 6-dice roll are slim, so it's generally worth it.
Playing the Game
The game starts with each player rolling 1 die. The roller of the highest number goes first. Players then take turns in clockwise order. The first player will roll all 6 dice.
In order to take any score, a player must first Open. To open is to bank at least 500 points.
Example 1: Let's say Player 1 rolls 1-2-3-5-6-6. Knowing he needs 500+ to bank, he chooses to keep the 1 and re-rolls the rest. He then rolls a 1-3-3-3-6. He keeps the 1 and 3s and banks the score of 500, successfully opening. He then passes his turn to the next player. Had he failed to score 500, he would have Farkled, losing all accumulated points for that turn.
Example 2: Now that he's opened, let's say it's Player 1's turn again. This time, he rolls 1-1-4-4-5-6. Since he cannot combine dice from separate rolls to create a scoring combination, he cannot keep the 1-1-4-4 and roll for another pair. Also, if he keeps the 1-1-5, then rolls again and receives another 1, it will not constitute a 3 of a Kind in 1s. So instead, he chooses to keep the 1-1-5, bank the 250 points and pass his turn.
Example 3: This time, the player rolls and receives 1-1-5-5-5-5. This is a unique and high scoring roll worth 1500 points for "4 of a Kind + any Pair". Note that the points do not stack. He cannot take 200 for the 1s, 200 for the 5s, and 1000 for the 4 of a Kind. Only the highest score per die can be taken. However, because he has scored on all six dice, he has Hot Dice and gets to roll again for a chance to score even more points. He rolls once more for 1-4-4-5-5-6, a 200 point roll that gives him a total bank of 1,600 on the play as he happily passes the dice to the next player.
Example 4: Next time around, he rolls all six dice. He rolls 1-2-2-3-4-6. Only the 1 is worth points, so he keeps it and rolls again. The next roll is 2-3-3-4-4. He has not earned any additional points, therefore he Farkles out. No score is taken. His turn is over.
Winning Farkle
A game of Farkle does not end until one player achieves a score of 10,000. Once this happens, every other player gets one more turn to try and beat this player's score. This is where the game gets really interesting!
Up to this point, players tend to be more cautious, but when the game is on the line, those coming from behind must take more risks to get ahead. The player with the highest score following the final round is the winner.
Want to learn more about Farkle? Increase your knowledge of the game with the links below:
Farkle Tips and Strategy
Farkle Odds & Probabilities
Mobile Farkle App for iOS and Android
Play Canada's Most Popular Card Games
Royal Vegas offers a wide range of casual card games for fun or real money. Everything from keno, bingo and scratch cards, to even blackjack and texas hold'em. Safe, and fun.
Visit http://RoyalVegas.ca
How to Win at Farkle – Rolling for Optimal Scoring Opportunities Every veteran Farkle player knows the rush of rolling a high-scoring combination out of the gate. The excitement...
Play Home Poker & Card Games Online w/ Friends
You can play home poker games online easily. Learn how to play poker and games with friends online, in multi-player or home game format....


text:
Tag: CPI leader Gurudas Dasgupta
Court notice to centre; Reliance on gas price
Posted on July 30, 2013 | by Legal India Admin | Leave a Comment on Court notice to centre; Reliance on gas price
The Supreme Court on Monday issued notice to the Centre, Petroleum Minister M. Veerappa Moily and Reliance Industries Limited (RIL) on a public interest litigation petition challenging the government's decision to double the price to $8.4 per million British thermal unit (mmBtu) for gas produced from the KG basin.
A Bench of Chief Justice P. Sathasivam and Justices Ranjana Desai and Ranjan Gogoi also issued notice to the Petroleum Ministry, NIKO Resources Ltd and BP Exploration (Alpha) Limited on the plea filed by CPI leader Gurudas Dasgupta and the former Power Secretary, E.A.S. Sarma.
Senior counsel Colin Gonsalves, appearing for the petitioners, said the decision to raise gas price should be reviewed as the Minister had overruled the opinion of senior officers of his ministry and his predecessor. When Justice Sathasivam wanted to know "why the parties can't go for arbitration," counsel pointed out that the Minister had given a statement that he wanted to junk arbitration and that the government would not proceed with the process.
Counsel alleged that the Minister "bats for Reliance" and had overruled the decision of the Director-General of Hydro Carbons to impose a fine on it.
Senior counsel Harish Salve, appearing for Reliance Industries, however, said, "We want arbitration to go on. We will file an application for appointment of the third arbitrator."
Justice Sathasivam told counsel "It [PIL petition] requires examination. When a Member of Parliament comes and makes an assertion it cannot be decided at the admission stage. We are not expressing any opinion at this stage."
"Illegal, mala fide'
The petitioners said the government had acted illegally, unreasonably, irrationally and with mala fide in granting excessive benefits to the respondents, thereby virtually bankrupting the exchequer and adversely affecting the Indian economy as a whole. The contractors allegedly incurred investment costs for the full capacity of 80 MMSCMD and recovered all these costs and perhaps more from the government through the sale of gas priced at $4.2 per mmbtu. Simultaneously, the contractors deliberately reduced production, thus holding the country to ransom at a time when gas demand far outstripped supply. By June 2013, only 9 out of 18 wells were in production and gas sales were only 18% of the target of 80 MMSCMD. The reduction was done in anticipation of a price rise and this was confirmed by government's announcement that from April 2014 the price would be increased to $8.4 mmbtu.
"RIL, which had gone in for arbitration, had already recovered this amount from the sale of natural gas. They appointed Justice S.P. Bharucha as their arbitrator. The government appointed Justice V.N. Khare as its arbitrator. Both judges met and were in the process of appointing the third arbitrator in October 2012 but could not do so." RIL would be sitting pretty if the arbitration was not proceeded with. "It is the government which stands to lose up to $ 2.4 billion by the end of the current year, by not proceeding with the arbitration. The Petroleum Ministry is deliberately not proceeding with arbitration to allow RIL to get away without paying penalties for the shortfall in production."
The petitioners sought a direction to RIL and NIKO to forthwith relinquish those areas of the KG basin as recommended by CAG; to appoint a third arbitrator (umpire) and to proceed with arbitration expeditiously and complete it within six months; to fix the price of domestically produced gas in rupees, and not in dollars or any other currency, and to stay the doubling of the gas price.
(Source: IANS)
Posted in Top Law News | Tagged BP Exploration (Alpha) Limited, Chief Justice P Sathasivam, Court notice to centre; Reliance on gas price, CPI leader Gurudas Dasgupta, gas exploration, Gurudas Dasgupta plea, Justices Ranjana Desai, KG-D6, national news, natural gas price hike, news, NIKO Resources Ltd, Petroleum Minister M. Veerappa Moily, public interest litigation, Ranjan Gogoi, Reliance, Reliance Industries Limited, RIL, todays news, todays top news, Top news


After spending time away from filmmaking after a family tragedy, The Hollywood Reporter has revealed director Zack Snyder is officially returning with Army of the Dead, a zombie action thriller set for Netflix.
Army of the Dead takes place in a zombie outbreak in Las Vegas, during which a man assembles a group of mercenaries to take the ultimate gamble, venturing into the quarantined zone to pull off the greatest heist ever attempted.
Snyder came up with the film's story while Joby Harold (King Arthur: Legend of the Sword) has written the script. Snyder will produce with his partner and wife Deborah Snyder and Wesley Coller through their newly rebranded production company, Stone Quarry. This marks a return for Snyder to the zombie genre after his 2004 feature debut Dawn of the Dead.
The film had been over at Warner Bros. since 2007, but Netflix sought the project and bought it from the studio. Filming will begin this summer with a very high budget that could potentially reach $90 million.


Manncorp offers full equipment installation and training for our factory automation products (Automatic Screen Printers, Pick and Place Systems, Reflow Ovens, and Wave Solder Machines). While we strongly encourage all customers to take advantage of the installation and training, we do allow customers do perform a "self installation" when requested.
A customer choosing a self installation option accepts the risk associated with accepting and inspecting the equipment, performing the proper equipment inspection and startup procedures and training personnel on the programming, operations, and maintenance of the equipment.
Manncorp provides full technical support for its products. However, customers opting to self-install must realize that we cannot be held liable for any equipment damage unless inspection and installation is performed by a Manncorp service representative. Our standard warranty will be voided. Phone and e-mail support available on a limited basis on all self-installed equipment.


Purchase your copy of BS 4848-2:1991 as a PDF download or hard copy directly from the official BSI Shop. All BSI British Standards available online in electronic and print formats.
If you have questions regarding the scope of jis g 3131 sphe (china biggest manufacturer), please feel free to reach out to BBN steel, please feel free to contact us, our email is sales4@bebonchina. BBN steel also have a high quality logistics team who make sure the fast delivery time and shipment.
The Some of the material used was below the grade 43c specification for yield stress (σ. and was usually averaged from wall thickness measurements. with a specified minimum yield stress ae = 255 N/mm2.2 .


Federal Bank offers Fed-e-Trade - a feature packed 3-in-1 Account. A Savings and Demat Account with us and a Trading Account with M/s Geojit Financial Services Ltd.
Corporate News & Analysis - Stay up to date with the latest corporate news/announcements, technical analysis, research, Reuters news etc.
Block an amount of your choice, from your Bank Account, this will be used to buy shares for a particular day. Once exhausted further amount can be blocked from your Bank Account.
While selling, the system will check the balance in your Demat account and if sufficient balance is available, will proceed to send the order for sale of shares to the exchange.
Funds/shares will be transferred from your bank/Demat account only at the end of the trading day. Credit of funds/securities will be done after receipt of the same from the Stock Exchange. The system will display the details of your order before sending the order to the exchange. You can check the details once more. Only after your confirmation, the order will be executed. You can view the status of the order online. You can also modify/cancel the order before it is executed.
Bank account statement with a cancelled cheque.
Cash Trading - This allows you to take delivery of the shares /funds and will normally be credited to your Demat/Bank account on the day settlement takes place in the stock exchange.
Margin Trading (Intra Day Trades) - Allows you to trade up to a specified multiple of the funds allocated. The transactions will have to be squared off, before an appointed time, on the same day.
Call & Trade - In case you are unable to access a computer, you can call a toll free number and place an order with a customer service executive of M/s Geojit Financial Services Ltd.
Exposure against holdings and BTST facility – (Buy Today and Sell Tomorrow) - These products will allow to take advantage of market movements by taking positions with a margin for a short period. To avail these options all retail customers (excluding NRE/NRO) are required to sign the 'additional rights and obligations'/T&C.


Jinsik Kim's Functional Sculptures Combine Design, Installation & Art Direction.
Stories On Design // Cunning Cantilevers.
Stories On Design // Mesmerising Mirrors in Art & Architecture.
Stories On Design // Grooming Spaces.
Experimental Gastronomy Events by Steinbeisser.
At Home With GamFratesi in Copenhagen.


First of all IMO Doctrine2 don't really fits for inserting large amount of data/entities because of its abstraction layer "overhead". Nevertheless during development my IpToCountry Symfony2 Bundle I have chosen to use it for easier installation and better integration of that bundle.
Data set which needs to be inserted is a .csv file from http://software77.net/geo-ip/. Its decompressed size (as I writing this note) is about 9MB and it contains about 127000 records. However I'll use gzipped file (~1.5MB) and decompress it "on the fly".
This code won't work, because it'll trigger fatal error (memory exhaustion) soon or later (depends on memory limit and number of entities). What we need to do is to use chunked inserting approach and depends on doctrine debug configuration (in symfony2 it directly depends on %kernel.debug%) we need also to turn off sql logging.


text:
<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright 2005-2014 The Kuali Foundation

    Licensed under the Educational Community License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.opensource.org/licenses/ecl2.php

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<!--
Kuali Rice ArcheType Help

This file contains custom application specific web.xml content.
-->

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name>ugaruss</display-name>

  <context-param>
    <param-name>environment</param-name>
    <param-value>dev</param-value>
  </context-param>

  <context-param>
    <param-name>web.bootstrap.spring.file</param-name>
    <param-value>classpath:edu/uga/kuali/ugaruss/BootStrapSpringBeans.xml</param-value>
  </context-param>

  <filter>
    <filter-name>DummyLoginFilter</filter-name>
    <filter-class>org.kuali.rice.krad.web.filter.DummyLoginFilter</filter-class>
  </filter>

  <filter>
    <filter-name>HideWebInfFilter</filter-name>
    <filter-class>org.kuali.rice.krad.web.filter.HideWebInfFilter</filter-class>
  </filter>

  <filter>
    <filter-name>ResponseOverrideFilter</filter-name>
    <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
  </filter>

  <filter>
    <filter-name>BootstrapFilter</filter-name>
    <filter-class>org.kuali.rice.krad.web.filter.BootstrapFilter</filter-class>
  </filter>

  <filter>
    <filter-name>UserLoginFilter</filter-name>
    <filter-class>org.kuali.rice.krad.web.filter.UserLoginFilter</filter-class>
  </filter>

  <filter>
    <filter-name>UserPreferencesFilter</filter-name>
    <filter-class>org.kuali.rice.kew.web.UserPreferencesFilter</filter-class>
  </filter>

  <filter>
    <filter-name>Log4JContextClearingFilter</filter-name>
    <filter-class>org.kuali.rice.core.web.Log4JContextClearingFilter</filter-class>
  </filter>

  <!-- in rice 2.2<filter>
      <filter-name>encodingFilter</filter-name>
      <filter-class>org.kuali.rice.krad.web.filter.CharsetFilter</filter-class>
  </filter>-->

  <filter-mapping>
    <filter-name>DummyLoginFilter</filter-name>
    <servlet-name>login</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>HideWebInfFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>ResponseOverrideFilter</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>BootstrapFilter</filter-name>
    <servlet-name>action</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserLoginFilter</filter-name>
    <servlet-name>action</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserPreferencesFilter</filter-name>
    <servlet-name>action</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>BootstrapFilter</filter-name>
    <servlet-name>notification</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserLoginFilter</filter-name>
    <servlet-name>notification</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserPreferencesFilter</filter-name>
    <servlet-name>notification</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>BootstrapFilter</filter-name>
    <servlet-name>krad</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserLoginFilter</filter-name>
    <servlet-name>krad</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserPreferencesFilter</filter-name>
    <servlet-name>krad</servlet-name>
  </filter-mapping>

  <!-- in rice 2.2<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <servlet-name>krad</servlet-name>
  </filter-mapping>-->

  <!-- for KCB Spring Web MVC pages -->
  <filter-mapping>
    <filter-name>BootstrapFilter</filter-name>
    <servlet-name>kcb</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserLoginFilter</filter-name>
    <servlet-name>kcb</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserPreferencesFilter</filter-name>
    <servlet-name>kcb</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>BootstrapFilter</filter-name>
    <servlet-name>edoclite</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserLoginFilter</filter-name>
    <servlet-name>edoclite</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>UserPreferencesFilter</filter-name>
    <servlet-name>edoclite</servlet-name>
  </filter-mapping>

  <filter-mapping>
    <filter-name>Log4JContextClearingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <listener>
    <listener-class>org.kuali.rice.krad.web.listener.NonSerializableSessionListener</listener-class>
  </listener>

  <listener>
    <listener-class>org.kuali.rice.core.web.listener.KualiInitializeListener</listener-class>
  </listener>

  <listener>
    <listener-class>org.kuali.rice.core.web.listener.BootstrapListener</listener-class>
  </listener>

  <listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
  </listener>

  <listener>
    <listener-class>org.kuali.rice.krad.web.listener.KualiHttpSessionListener</listener-class>
  </listener>

  <listener>
    <listener-class>org.kuali.rice.core.framework.config.module.WebModuleLoaderListener</listener-class>
  </listener>

  <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>5</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.kuali.rice.kns.web.struts.action.KualiActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>

  <!-- Notification system servlets -->
  <!-- Notification System Spring MVC UI -->
  <servlet>
    <servlet-name>notification</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>ken/WEB-INF/notification-servlet.xml</param-value>
    </init-param>
    <init-param>
      <description>this init parameter is Ken's module prefix within the containing webapp, it is propagated as a
        property in the XmlApplicationContext
      </description>
      <param-name>prefix</param-name>
      <param-value>/ken</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>config-kew</param-name>
      <param-value>/WEB-INF/dwr-kew.xml</param-value>
    </init-param>
    <init-param>
      <param-name>config-kns</param-name>
      <param-value>/WEB-INF/dwr-kns.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- KCB servlets -->
  <servlet>
    <servlet-name>kcb</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>kcb/WEB-INF/kcb-servlet.xml</param-value>
    </init-param>
    <init-param>
      <description>this init parameter is KCB's module prefix within the containing webapp, it is propagated as a
        property in the XmlApplicationContext
      </description>
      <param-name>prefix</param-name>
      <param-value>/kcb</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>remoting</servlet-name>
    <servlet-class>org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>export</servlet-name>
    <servlet-class>org.kuali.rice.core.web.impex.ExportServlet</servlet-class>
  </servlet>

  <servlet>
    <servlet-name>exportsecurity</servlet-name>
    <servlet-class>org.kuali.rice.ksb.security.admin.ExportServlet</servlet-class>
  </servlet>

  <servlet>
    <servlet-name>attachment</servlet-name>
    <servlet-class>org.kuali.rice.kew.notes.web.AttachmentServlet</servlet-class>
  </servlet>

  <servlet>
    <servlet-name>edoclite</servlet-name>
    <servlet-class>org.kuali.rice.edl.impl.EDLServlet</servlet-class>
  </servlet>

  <servlet>
    <servlet-name>krad</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>3</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/kr-login/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>remoting</servlet-name>
    <url-pattern>/remoting/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>notification</servlet-name>
    <url-pattern>*.form</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>kcb</servlet-name>
    <url-pattern>*.kcb</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>export</servlet-name>
    <url-pattern>/export/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>exportsecurity</servlet-name>
    <url-pattern>/exportsecurity/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>attachment</servlet-name>
    <url-pattern>/kew/attachment/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>edoclite</servlet-name>
    <url-pattern>/kew/EDocLite</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>krad</servlet-name>
    <url-pattern>/kr-krad/*</url-pattern>
  </servlet-mapping>

  <session-config>
    <session-timeout>60</session-timeout>
  </session-config>

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <!-- only need to include this for the kuali tlds
       since tld file will only be searched from within other jars -->
  <jsp-config>
    <taglib>
      <taglib-uri>http://www.kuali.org/jsp/jstl/functions</taglib-uri>
      <taglib-location>/WEB-INF/tld/kuali-func.tld</taglib-location>
    </taglib>

    <!-- customized struts tags -->
    <taglib>
      <taglib-uri>http://www.kuali.org/struts.apache.org/tags-html</taglib-uri>
      <taglib-location>/WEB-INF/tld/kuali-struts-html.tld</taglib-location>
    </taglib>
    <taglib>
      <taglib-uri>http://www.kuali.org/struts.apache.org/tags-html-el</taglib-uri>
      <taglib-location>/WEB-INF/tld/kuali-struts-html-el.tld</taglib-location>
    </taglib>
  </jsp-config>
</web-app>

redpajama_set_name: RedPajamaGithub


The team at Conservation SA would like to thank our community for all your support in 2015.
We hope you all have a safe and happy Christmas and New Year, and have a chance to spend time enjoying South Australia's natural beauty.
We look forward to you joining by our side in 2016!
P.S. Have you made your contribution to South Australia's environment this year? Donations make a lovely alternative gift for the holiday season.


text:
Taliban Say Northern Alliance Units Have Been Driven Back From Mazar-i-sharif
The Northern Alliance units commanded by general Abdurrashid Dustum have been driven back 15 km from the main city of the Balkh province Mazar-i-Sharif, according to Sukhail Shahin, a Taliban diplomat in Islamabad. The Education minister of the Taliban regime Amirkhan Muttaki said that the Taliban had captured and executed "5 Northern Alliance soldiers, including two warlords." Muttaki also said that on Sunday the Taliban had seized Chaghcharan, the capital of the Ghor province. Meanwhile, the Northern Alliance has denied this report. While speaking on the US ground operation, Muttaki stated the Taliban had killed 20-25 American commandos. According to Sukhail, the spokesman for the Taliban embassy in Islamabad, the Taliban leaders, including mullah Omar, have not been injured.


that accompanies Argentine music is varied, and includes genres such as blues, electro-tango, and even experimental rock. If you're thinking of taking Latin dance lessons in San Jose, ask an instructor about Argentine tango.
Spice Up Your Next Event with Argentine Tango Lessons!


A natural history student was one afternoon, during a prolonged drought, hunting for ferns in a dense wood. Towards evening, it grew suddenly dark, and a few drops of rain gave warning that a storm was coming. At that moment, the student's eye fell upon a big, hollow tree-trunk on the ground.
Striking a match, the man peered within, and saw, as he thought, a convenient place of shelter. With feet foremost and arms pressed closely to his side, he wormed himself into the log.
Presently the rain came down in torrents, and the student congratulated himself on having found so snug a shelter.
Fatigued with his long tramp, he fell asleep. How long he slept he did not know, but by-and-by he was awakened by a sharp pain in his head, and a feeling of cramp in his whole body. The rain was still falling, the darkness was intense. The bodily discomfort was, of course, due to the man's cramped position; the pain in his head was caused by a continual drip of water from above on to his forehead.
Throughout the night the wretched victim shrieked, struggled, pushed, kicked, and wriggled in vain. He could not raise his hands to tear at the wood.
Happily, he was discovered the next morning through the good services of a sagacious dog, which led a search-party to the spot.
Even then, however, his sufferings were not at an end. Before he could get out of his prison, it was found necessary to cut away a part of the log with an axe.


Computer numerical control procedures are commonly used for precise milling and engineering applications. Many companies use these procedures in order to create engineering parts that are used in different machines. For instance, if you have a particular idea for a product, but don't have the manufacturing equipment to build a prototype, you can visit a local company that offers CNC milling and machining services, and commission them to build you the prototype. Because of the precise nature of such parts and products, the measurements must be taken accurately.
But, with so many companies now offering services related to CNC in Perth, it can be difficult for someone to find a suitable company. There are many important factors that you need to take into account before you commission any company for your CNC milling or machining needs. Here are a few things that you should keep in mind when hiring the services of a milling or machining company.
The first thing that you should ask the company is whether they have experience in this field or not. If the company has a considerable amount of experience in CNC milling and machining, you won't have to worry about the quality of the product itself. However, if the engineers working at the company are still relatively new to their job, the chances of mistakes and smaller problems are much higher. You need to make sure that you contact an experienced CNC milling and machining company to find out whether they have experience in this industry or not. If you want to save time and wish to get a quality product machined and milled, it's highly recommended that you hire an experienced CNC milling company for the job.
Obviously, one of the most important things that you need to consider is the pricing. If the company offers high prices for their services, you might want to consider alternate options. It's important that you ask the company for a quote to find out how much they will charge for the CNC milling and machining services. Most companies usually give their customers a free quote for their services. You can check their website in order to get more information about their services. You need to compare the prices from several companies and find out whether they fall within your budget or not.
Another important factor that you need to consider is how closely the company collaborates with its customers. Because the requirements are likely to be so specific, you need to make sure that the company follows all of your instructions to the dot. You can check reviews online about different businesses before making your decision.
Previous article Do You Need a Mortgage Software Program?


Had such a great holiday today.
Drove up to the north shore.
Met all the happy people at Billabong guest house.
My first time ever surfing at "off the wall" was super fun!
and luckily.. I was invited to friends' house for Thanksgiving dinner.
All the food was awesome!!!
We all prayed and each of us talked about what we thankful about.
That was really a good time.
Feeling blessed the whole day.
Thank you and Love you all!


text:
Growing and Scaling Your Business
Success/Failure
8 Real Estate Communities Sold Out, 6 In Process - Here's What I've Learned
Thread starter BizyDad
BizyDad
FASTLANE INSIDER
Summit Attendee
The-J said:
Can't believe it took me this long to see this thread. Awesome stuff.
I thought I was the only one. Not too long ago I dived a little into programmatic. Talked to an expert, a media buyer who had been in the game for a long time. Also talked to him about interactive TV ads. Even he was like "if you don't know what you're getting into, don't buy programmatic".
VERY interesting bit about press though. That's something I've ignored for... well, ever. I know basically nothing about it. What would you say is the most important thing to know about getting press releases out there?
@The-J 'sup my dude? Sorry I just now remembered to reply to this.
A couple caveats first.
There's a difference between getting press and doing press releases.
Also, in the SEO game, doing press releases usually means signing up for some press release service. Those are a waste of time, imo.
Last caveat, we get press for all kinds of clients, but this is my real estate related thread, so I'm just going to talk in terms of real estate.
Since you asked about press releases, the "secret" is you've got to have something newsworthy. PR folks talk about having an angle. I like to think of it as telling the story in a way that normal humans are actually interested in it.
So there's two stages in a new project's life cycle that are pretty "easy" to get press releases out there and get them picked up. Maybe three actually. First, when you announce the project. There are a lot of factors to consider, and like I said in the original post, I don't take part in all the meetings, so I can't really advise you on the best time to announce a project. But honestly, a lot of these projects don't do a big push when they first announce it.
They do their big push when they do a groundbreaking. So that's the second ( or first) time. And then the third one is when your phase one of the project is done, or you're somewhere around halfway and you make it sound like a phase one is done. I know some real estate communities have multiple phases, but I've yet to work on a bigger project like that.
Taking a human interest angle on it makes things so much easier. Like the project that's bringing affordable housing to downtown. Super easy. The project that was coming out of the ground first after the great recession. Super easy. The community that took great steps to make sure they were friendly to people with special needs, including not having streets or garages so that there was plenty of wide walkways. Super duper easy.
But sometimes you got to dig deep. And sometimes you take swings and miss. That one project I mentioned up above where we upped the prices and sold out. That project is in South Phoenix. We never got a bit of press for it. We just couldn't figure out how to tell the tale in a way that the press wanted to share the story with their readers. They didn't want to cover the groundbreaking. And that big rush of sales at the end took us by surprise, so we never did the first phase sold out.
Anyways, beyond just releases, there's a bit of an art to getting press. I feel like it's a game to connect the dots sometimes.
Find a magazine you want to get into. Do your research on the kind of articles they've done before. Pitch them something that's similar, but with a different spin on it.
I see last year you wrote about travertine. Well this year we've got a project that's using porcelain. Would your readers be interested in learning more about the porcelain countertop trend? (That's a terrible pitch. Don't use it. This is why I pay other people to do the pitching. But you get the idea...)
Sometimes it's easy to figure out what kind of magazines would want to write about your project.
Find the publications that write about real estate. Submit yourself for their annual awards (if you live in a big enough city).
You can probably connect some of the dots, as I've already shared what makes some of these communities special. Golf course home community gets written about in luxury magazine. And a golf magazine. These luxury apartments are using smart home tech, we get that written up in a tech mag.
There are architecture magazines, and design magazines, and home and garden magazines, and builder magazines, etc etc.
I didn't even talk about blogs. We don't do much pitching to blogs. But you can.
But you don't use the press release strategy on these kind of things. You just approach them and pitch tailored story ideas. Well, we usually pitch one story idea at a time. Or we'll give him a quick three ideas and ask them if they're interested in any one of them.
Anyways bro it's late, that's all I got for now. Hope that helps you get started. Feel free to ask any follow up questions. I am planning on writing more about this topic in its own thread at a later time.
My Brain Dumps:
What I Learned Being A Banker & Interviewing 2k Businesses
8 10 Real Estate Communities Sold Out, 6 4 In Process - Here's What I've Learned
How My Attitude Towards Leadership Held Me Back For Decades
Reactions: The-J
The-J
Dog Dad
EPIC CONTRIBUTOR
BizyDad said:
A load of awesome information. I had never thought of press that way.
I noticed, for example, some friends of mine being featured in newspapers, big blogs, magazines and the like. I didn't quite understand why what they were doing deserved an article, particularly since there are guys here who get absolutely no press and are seriously making waves. I assumed they had contacts or were paying for a service or something. Now I get it a bit more.
Thanks for the write-up. I'll be saving this post.
Reactions: BizyDad
OFF-TOPIC Parler Taken Down. Your Thoughts?
Latest: JScott
Off-Topic Threads
HOT TOPIC The Undercover Billionaire: Building a $1m business in 90 days
Latest: sparechange
Latest: Nick Catricala
RANT Random Chat, Thoughts, Posts, and/or Rants Thread
EXECUTION [PROGRESS] Bekit's Progress Thread
Latest: Vadim26
Process / Execution


Vastavam web: The success of contemporary Bengali films in the recent times has inspired directors and actors of Tollywood industry to toy with diverse genres and unexplored subjects.Despite big-banner Bollywood releases and the onslaught of digital media platforms, Kolkatans were seen queuing up for 'Uma', 'Haami' and 'Guptodhoner Sandhane' over the past few weeks.
His last venture 'Haami', co-directed by Nandita Roy, did well at the box-office at home and abroad.Undoubtedly, Netflix and Amazon Prime are delivering great content, but the theatrical experience is what sets the cinema apart, Roy, who has also produced shows for Television, stated."You can not overlook the importance of single screens and multiplexes. Films are after all special because of their cinematic experience, larger-than-life imagery, something that you can only enjoy in a theatre," she claimed."The success of films like Uma will help in furthering the cause of the Bengali film industry. It has received acclaim in film festivals abroad, thus increasing its reach among audiences abroad," Mukherjee said.
Actor Paoli Dam, whose last year's film 'Machher Jhol' dealt with family ties and food, said "unconventional subjects" are doing good business over the past few years."The success of Bengali films, both made by reputed and new directors, shows that audiences favour mature content," she noted.He, however, cautioned that the trend has to continue to avoid Hindi and English films eating into its business pie."Just one or two successes a year are not enough for the industry to survive, the number of hits has to multiply.


text:
Q: Tile rendering with opengl Let's start by considering this simple snippet:
import ctypes
import textwrap
import time

import glfw
import numpy as np
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

import glm

GLSL_VERSION = "#version 440\n"
CONTEXT_VERSION = (4, 1)

def vs_shader(text):
    return GLSL_VERSION + textwrap.dedent(text)

def shader(text):
    prefix = textwrap.dedent("""\
        uniform float iTime;
        uniform int iFrame;
        uniform vec3 iResolution;
        uniform sampler2D iChannel0;
        uniform vec2 iOffset;
        out vec4 frag_color;
    """)
    suffix = textwrap.dedent("""\
        void main() {
            mainImage(frag_color, gl_FragCoord.xy + iOffset);
        }
    """)

    return GLSL_VERSION + prefix + textwrap.dedent(text) + suffix

VS = vs_shader("""\
    layout(location = 0) in vec3 in_position;

    uniform mat4 mvp;

    void main()
    {
        gl_Position = mvp * vec4(in_position, 1.0f);
    }
""")

SIMPLE = [
    shader("""
        void mainImage( out vec4 fragColor, in vec2 fragCoord )
        {
            vec2 uv = fragCoord.xy / iResolution.xy;
            float tile_size = 4;
            vec2 g = floor(vec2(tile_size, tile_size) * uv);
            float c = mod(g.x + g.y, 2.0);
            if (uv.x<0.5 && uv.y<0.5)
                fragColor = vec4(mix(vec3(c), vec3(1), vec3(1,0,1)), 1.0);
            else if (uv.x>=0.5 && uv.y<0.5)
                fragColor = vec4(mix(vec3(c), vec3(1), vec3(1,0,0)), 1.0);
            else if (uv.x<0.5 && uv.y>=0.5)
                fragColor = vec4(mix(vec3(c), vec3(1), vec3(0,1,0)), 1.0);
            else if (uv.x>=0.5 && uv.y>=0.5)
                fragColor = vec4(mix(vec3(c), vec3(1), vec3(0,0,1)), 1.0);
        }
    """),
    shader("""
        void mainImage( out vec4 fragColor, in vec2 fragCoord )
        {
            vec2 uv = fragCoord/iResolution.xy;
            fragColor = vec4(texture(iChannel0, uv).rgb,1.0);
        }
    """)
]

# -------- MINIFRAMEWORK --------
class Tiler:

    def __init__(self, scene_width, scene_height):
        self.scene_width = scene_width
        self.scene_height = scene_height

    @classmethod
    def from_num_tiles(cls, scene_width, scene_height, num_tiles_x, num_tiles_y):
        obj = cls(scene_width, scene_height)
        obj.num_tiles_x = num_tiles_x
        obj.num_tiles_y = num_tiles_y
        obj.tile_width = obj.scene_width // num_tiles_x
        obj.tile_height = obj.scene_height // num_tiles_y
        return obj

    @classmethod
    def from_size(cls, scene_width, scene_height, tile_width, tile_height):
        obj = cls(scene_width, scene_height)
        obj.num_tiles_x = obj.scene_width // tile_width
        obj.num_tiles_y = obj.scene_height // tile_height
        obj.tile_width = tile_width
        obj.tile_height = tile_height
        return obj

    @property
    def num_tiles(self):
        return self.num_tiles_y * self.num_tiles_x

class TextureF32():

    def __init__(self, width, height):
        target = GL_TEXTURE_2D
        self.target = target
        self.identifier = glGenTextures(1)

        glPixelStorei(GL_UNPACK_ALIGNMENT, 1)
        glBindTexture(target, self.identifier)
        glTexImage2D(target, 0, GL_RGBA32F, width, height, 0, GL_RGBA, GL_FLOAT, None)
        glTexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)
        glTexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)
        self.set_filter()

        glBindTexture(target, 0)

    def set_filter(self):
        glTexParameteri(self.target, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
        glTexParameteri(self.target, GL_TEXTURE_MIN_FILTER, GL_NEAREST)

    def bind(self):
        glBindTexture(self.target, self.identifier)

    def unbind(self):
        glBindTexture(self.target, 0)

class FboF32():

    def __init__(self, width, height):
        self.target = GL_FRAMEBUFFER
        self.identifier = glGenFramebuffers(1)
        glBindFramebuffer(GL_FRAMEBUFFER, self.identifier)

        # Color attachments
        tex = TextureF32(width, height)
        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex.identifier, 0)
        glDrawBuffers(1, [GL_COLOR_ATTACHMENT0])
        self.colors = [tex]

        self.width = width
        self.height = height

        if glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE:
            raise Exception(
                f"ERROR::FRAMEBUFFER:: Framebuffer {self.identifier} is not complete!"
            )

        glBindFramebuffer(GL_FRAMEBUFFER, 0)

    def delete(self):
        self.glDeleteFramebuffers(self.identifier)

    def rect(self):
        return [0, 0, self.width, self.height]

    def bind(self):
        glBindFramebuffer(GL_FRAMEBUFFER, self.identifier)

def set_uniform1f(prog, name, v0):
    glUniform1f(glGetUniformLocation(prog, name), v0)

def set_uniform1i(prog, name, v0):
    glUniform1i(glGetUniformLocation(prog, name), v0)

def set_uniform2i(prog, name, v0, v1):
    glUniform2i(glGetUniformLocation(prog, name), v0, v1)

def set_uniform2f(prog, name, v0, v1):
    glUniform2f(glGetUniformLocation(prog, name), v0, v1)

def set_uniform3f(prog, name, v0, v1, v2):
    glUniform3f(glGetUniformLocation(prog, name), v0, v1, v2)

def set_uniform_mat4(prog, name, mat):
    glUniformMatrix4fv(glGetUniformLocation(prog, name), 1, GL_FALSE, glm.value_ptr(mat))

def set_uniform_texture(prog, name, resource, unit_texture):
    glActiveTexture(GL_TEXTURE0 + unit_texture)
    resource.bind()
    resource.set_filter()
    glUniform1i(glGetUniformLocation(prog, name), 0 + unit_texture)

def create_quad(x0, y0, x1, y1):
    data = np.array([
        x0, y0, 0,
        x1, y0, 0,
        x0, y1, 0,

        x1, y0, 0,
        x1, y1, 0,
        x0, y1, 0,
    ], dtype=np.float32)

    vbo = glGenBuffers(1)
    glBindBuffer(GL_ARRAY_BUFFER, vbo)
    glBufferData(GL_ARRAY_BUFFER, data, GL_STATIC_DRAW)

    vao = glGenVertexArrays(1)
    glBindVertexArray(vao)
    glVertexAttribPointer(0, 3, GL_FLOAT, False, 0, ctypes.c_void_p(0))
    glEnableVertexAttribArray(0)

    return vao

def compile(shader_type, source):
    identifier = glCreateShader(shader_type)
    glShaderSource(identifier, source)
    glCompileShader(identifier)

    if not glGetShaderiv(identifier, GL_COMPILE_STATUS):
        for i, l in enumerate(source.splitlines()):
            print(f"{i+1}: {l}")
        raise Exception(glGetShaderInfoLog(identifier).decode("utf-8"))

    return identifier

def create_program(vs, fs):
    vs_identifier = compile(GL_VERTEX_SHADER, vs)
    fs_identifier = compile(GL_FRAGMENT_SHADER, fs)

    program = glCreateProgram()
    glAttachShader(program, vs_identifier)
    glAttachShader(program, fs_identifier)
    glLinkProgram(program)
    if not glGetProgramiv(program, GL_LINK_STATUS):
        raise RuntimeError(glGetProgramInfoLog(program))

    return program

# -------- Glut/Glfw --------
class Effect:

    def __init__(self, w, h, num_tiles_x, num_tiles_y, passes):
        self.fbos = []
        self.needs_updating = True
        self.allocations = 0
        self.tiler = Tiler.from_num_tiles(w, h, num_tiles_x, num_tiles_y)

        self.passes = [create_program(VS, rp) for rp in passes]
        self.iframe = 0
        self.start_time = time.time()

        self.quad = create_quad(-1, -1, 1, 1)
        self.view = glm.lookAt(
            glm.vec3(0, 0, 10),
            glm.vec3(0, 0, 0),
            glm.vec3(0, 1, 0)
        )
        self.model = glm.mat4(1)
        glEnable(GL_DEPTH_TEST)

        # print("GL_MAX_VIEWPORT_DIMS:", glGetIntegerv(GL_MAX_VIEWPORT_DIMS))
        # print("GL_MAX_TEXTURE_SIZE:", glGetIntegerv(GL_MAX_TEXTURE_SIZE))
        # print("GL_MAX_RENDERBUFFER_SIZE:", glGetIntegerv(GL_MAX_RENDERBUFFER_SIZE))

    def mem_info(self):
        GL_GPU_MEM_INFO_TOTAL_AVAILABLE_MEM_NVX = 0x9048
        GL_GPU_MEM_INFO_CURRENT_AVAILABLE_MEM_NVX = 0x9049
        total_mem_kb = glGetIntegerv(GL_GPU_MEM_INFO_TOTAL_AVAILABLE_MEM_NVX)
        cur_avail_mem_kb = glGetIntegerv(GL_GPU_MEM_INFO_CURRENT_AVAILABLE_MEM_NVX)
        return f"total_mem_kb={total_mem_kb} cur_avail_mem_kb={cur_avail_mem_kb}"

    def create_fbo(self, tiler):
        return [
            FboF32(width=tiler.tile_width, height=tiler.tile_height)
            for i in range(tiler.num_tiles)
        ]

    def make_ortho(self, x, y, num_tiles_x, num_tiles_y, left, right, bottom, top, near, far):
        # References
        #
        # https://www.opengl.org/archives/resources/code/samples/advanced/advanced97/notes/node20.html
        # https://stackoverflow.com/questions/6490728/capture-snapshot-of-opengl-window-with-very-large-image-resolution
        #
        offset_x = (right - left) / num_tiles_x
        offset_y = (top - bottom) / num_tiles_y
        l = left + offset_x * x
        r = left + offset_x * (x + 1)
        b = bottom + offset_y * y
        t = bottom + offset_y * (y + 1)
        n = near
        f = far
        print(f"x={x} y={y} left={l} right={r} bottom={b} top={t}")
        return glm.ortho(l, r, b, t, n, f)

    def render_pass(self, rp, mvp, w, h, channel0, offset_x=0, offset_y=0):
        t = time.time() - self.start_time

        glBindVertexArray(self.quad)
        glUseProgram(rp)
        set_uniform_mat4(rp, "mvp", mvp)
        set_uniform1f(rp, "iTime", t)
        set_uniform1i(rp, "iFrame", self.iframe)
        set_uniform3f(rp, "iResolution", w, h, w / h)
        set_uniform2f(rp, "iOffset", offset_x, offset_y)
        if channel0:
            set_uniform_texture(rp, "iChannel0", channel0, self.active_texture)
            self.active_texture += 1
        glDrawArrays(GL_TRIANGLES, 0, 6)

    # No tile rendering
    def render_no_tiles(self, window_width, window_height):
        self.active_texture = 0

        if self.needs_updating:
            if not self.fbos:
                print(f"Creating fbos, allocations={self.allocations} {self.mem_info()}")
                self.fbos = [
                    FboF32(width=window_width, height=window_height),
                    FboF32(width=window_width, height=window_height)
                ]

        # clear buffers
        if self.iframe == 0:
            for fbo in self.fbos:
                fbo.bind()
                glViewport(*fbo.rect())
                glClearColor(0, 0, 0, 0)
                glClear(GL_COLOR_BUFFER_BIT)

        proj = glm.ortho(-1, 1, -1, 1, -100, 100)
        mvp = proj * self.view * self.model

        # Pass0: BufferA - Channels [BufferA, None, None, None]
        fbo0 = self.fbos[0]
        fbo1 = self.fbos[1]
        w, h = fbo0.width, fbo0.height
        rp = self.passes[0]
        fbo0.bind()
        glViewport(0, 0, w, h)
        self.render_pass(rp, mvp, w, h, fbo1.colors[0])

        # Pass1: Image - Channels [BufferA, None, None, None]
        glBindFramebuffer(GL_FRAMEBUFFER, 0)
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
        fbo0 = self.fbos[0]
        w, h = window_width, window_height
        rp = self.passes[1]
        glViewport(0, 0, w, h)
        self.render_pass(rp, mvp, w, h, fbo0.colors[0])

        # ping-pong
        self.fbos.reverse()

        self.iframe += 1

    # Tile rendering
    def render_tiles(self, window_width, window_height):
        M = self.tiler.num_tiles_x
        N = self.tiler.num_tiles_y
        offset_x = window_width // M
        offset_y = window_height // N
        proj = glm.ortho(-1, 1, -1, 1, -100, 100)

        # -------- Test --------
        # glBindFramebuffer(GL_FRAMEBUFFER, 0)
        # glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
        # self.active_texture = 0

        # for y in range(N):
        #     for x in range(M):
        #         w, h = window_width, window_height
        #         mvp = proj * self.view * self.model
        #         glViewport(offset_x * x, offset_y * y, self.tiler.tile_width, self.tiler.tile_height)
        #         self.render_pass(self.passes[0], mvp, w, h, None, offset_x * x, offset_y * y)

        # return

        # -------- Test2 --------
        self.active_texture = 0

        if self.needs_updating:
            if not self.fbos:
                print(f"Creating fbos, allocations={self.allocations} {self.mem_info()}")
                self.fbos = [
                    self.create_fbo(self.tiler),
                    self.create_fbo(self.tiler),
                ]

        # clear buffers
        if self.iframe == 0:
            for fbo_tiles in self.fbos:
                for fbo in fbo_tiles:
                    fbo.bind()
                    glViewport(*fbo.rect())
                    glClearColor(0, 0, 0, 0)
                    glClear(GL_COLOR_BUFFER_BIT)

        # Pass0: BufferA - Channels [BufferA, None, None, None]
        for y in range(N):
            for x in range(M):
                fbo0 = self.fbos[0][y * M + x]
                fbo1 = self.fbos[1][y * M + x]
                w, h, aspect = fbo0.width, fbo0.height, fbo0.width / fbo0.height
                mvp = proj * self.view * self.model
                rp = self.passes[0]
                fbo0.bind()
                glViewport(0, 0, self.tiler.tile_width, self.tiler.tile_height)
                self.render_pass(rp, mvp, w, h, fbo1.colors[0], offset_x * x, offset_y * y)

        # Pass1: Image - Channels [BufferA, None, None, None]
        glBindFramebuffer(GL_FRAMEBUFFER, 0)
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

        for y in range(N):
            for x in range(M):
                fbo0 = self.fbos[0][y * M + x]
                fbo1 = self.fbos[1][y * M + x]
                w, h, aspect = window_width, window_height, window_width / window_height
                mvp = proj * self.view * self.model
                rp = self.passes[1]
                glViewport(offset_x * x, offset_y * y, self.tiler.tile_width, self.tiler.tile_height)
                self.render_pass(rp, mvp, w, h, fbo0.colors[0], 0, 0)

        # ping-pong
        self.fbos.reverse()

        self.iframe += 1

class WindowGlut:

    def __init__(self, w, h, use_tiles, num_tiles_x, num_tiles_y, passes):
        glutInit()
        glutInitContextVersion(*CONTEXT_VERSION)
        glutInitContextProfile(GLUT_CORE_PROFILE)
        glutInitContextFlags(GLUT_FORWARD_COMPATIBLE)
        glutSetOption(GLUT_MULTISAMPLE, 16)
        glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_MULTISAMPLE)
        glutInitWindowSize(w, h)
        glutCreateWindow('Mcve')
        glutReshapeFunc(self.reshape)
        glutKeyboardFunc(self.keyboard_func)
        glutKeyboardUpFunc(self.keyboard_up_func)
        glutDisplayFunc(self.display)
        glutIdleFunc(self.idle_func)
        self.keys = {chr(i): False for i in range(256)}
        self.effect = Effect(w, h, num_tiles_x, num_tiles_y, passes)

        self.start_time = time.time()
        self.num_frames = 0

        if use_tiles:
            print("TILE RENDERING ENABLED")
            self.render = self.effect.render_tiles
        else:
            print("TILE RENDERING DISABLED")
            self.render = self.effect.render_no_tiles

    def keyboard_func(self, *args):
        self.keys[args[0].decode("utf8")] = True

    def keyboard_up_func(self, *args):
        self.keys[args[0].decode("utf8")] = False

    def display(self):
        if self.keys['r']:
            self.effect.iframe = 0

        self.render(self.window_width, self.window_height)

        glutSwapBuffers()
        self.num_frames += 1

        t = time.time() - self.start_time
        if t >= 1:
            glutSetWindowTitle(f"Fps: {self.num_frames}")
            self.start_time = time.time()
            self.num_frames = 0

    def run(self):
        glutMainLoop()

    def idle_func(self):
        glutPostRedisplay()

    def reshape(self, w, h):
        glViewport(0, 0, w, h)
        self.window_width = w
        self.window_height = h

class WindowGlfw:

    def __init__(self, w, h, use_tiles, num_tiles_x, num_tiles_y, passes):
        # Initialize the library
        if not glfw.init():
            return

        # Create a windowed mode window and its OpenGL context
        glfw.window_hint(glfw.CONTEXT_VERSION_MAJOR, CONTEXT_VERSION[0])
        glfw.window_hint(glfw.CONTEXT_VERSION_MINOR, CONTEXT_VERSION[1])
        glfw.window_hint(glfw.OPENGL_FORWARD_COMPAT, GL_TRUE)
        glfw.window_hint(glfw.OPENGL_PROFILE, glfw.OPENGL_CORE_PROFILE)
        window = glfw.create_window(w, h, "Mcve", None, None)
        if not window:
            glfw.terminate()
            return

        glfw.set_window_size_callback(window, self.reshape)
        glfw.set_key_callback(window, self.keyboard_func)

        # Make the window's context current
        glfw.make_context_current(window)
        self.window = window

        self.keys = {chr(i): False for i in range(256)}
        self.effect = Effect(w, h, num_tiles_x, num_tiles_y, passes)
        self.window_width = w
        self.window_height = h

        if use_tiles:
            print("TILE RENDERING ENABLED")
            self.render = self.effect.render_tiles
        else:
            print("TILE RENDERING DISABLED")
            self.render = self.effect.render_no_tiles

    def keyboard_func(self, window, key, scancode, action, mods):
        self.keys[chr(key)] = action

    def display(self):
        if self.keys['R']:
            self.iframe = 0

        self.render(self.window_width, self.window_height)

    def run(self):
        window = self.window

        while not glfw.window_should_close(window):
            self.display()
            glfw.swap_buffers(window)
            glfw.poll_events()

        glfw.terminate()

    def reshape(self, window, w, h):
        glViewport(0, 0, w, h)
        self.window_width = w
        self.window_height = h

if __name__ == '__main__':
    params = {
        "w": 320,
        "h": 240,
        "use_tiles": True,
        "num_tiles_x": 2,
        "num_tiles_y": 2,
        "passes": SIMPLE
    }
    use_glut = True
    WindowGlut(**params).run() if use_glut else WindowGlfw(**params).run()

To run this code you'll need to install numpy, pyopengl, glfw, PyGLM. You can switch between glfw or glut by toggling the variable use_glut. I've added this options as it seems running glut on macosx may be tricky in certain cases.
Anyway, the goal of this thread is to figure out how to fix the buggy snippet to make proper tile rendering, as you can see right now there is a very naive attempt implemented.
In the main block you can specify if you want to use a render method using tiles or not (use_tiles variable), if you choose using tiles you'll need to specify the number of them (num_tiles_x, num_tiles_y).
Cases:

*

*If you run it with "use_tiles": False you'll see this output:

that output is correct

*If you run it with "use_tiles": True, "num_tiles_x": 2, "num_tiles_y": 2 you should see the same output than 1). Also correct

*But if you run it with "use_tiles": True, "num_tiles_x": 4, "num_tiles_y": 4 or higher you'll start seeing a totally screwed up image like below:

QUESTION: What's the bug of my tile rendering code that's producing the wrong output? How would you fix it?
Also... Even if the code is fixed the way I'm trying to make tile rendering is quite naive and it won't work very well when dealing with more complex effects where passes need to read back from adjacent tiles or even worst, non-adjacent tiles. For the case of adjacent tiles I've been told adding some padding to the tiles would work pretty well but for the more general case i don't have a clue how'd you tackle that problem. In any case, one step at a time, the goal of this thread would be fixing the buggy snippet

A: In the first pass a single tile is rendered to a framebuffer, which has exactly the size of the tile. gl_FragCoord.xy is (0,0) at the bottom left of the tile. uv = (0,0) has to be at the bottom left of the window and uv = (1, 1) at the top right of the window. To calculate the the uv coordinate in respect to the window, you've to add the offset of the tile to gl_FragCoord.xy and to divide by the size of the window:
formula (pseudo code):
uv = (gl_FragCoord.xy + (offset_x*x, offset_y*y)) / (window_width, window_height)

    +------------------+
    |                  |
    |    +----+        |
    |    |    |        |
    |    +----+        |
    |  (0,0) tile = gl_FragCoord.xy
    |                  |
    +------------------+
 (0,0) window

In the first pass, iResolution has to be (window_width, window_height) and iOffset has to be (offset_x * x, offset_y * y).
# Pass0: BufferA - Channels [BufferA, None, None, None]
for y in range(N):
    for x in range(M):
        fbo0 = self.fbos[0][y * M + x]
        fbo1 = self.fbos[1][y * M + x]
        mvp = proj * self.view * self.model
        rp = self.passes[0]
        fbo0.bind()

        glViewport(0, 0, self.tiler.tile_width, self.tiler.tile_height)

        w, h   = window_width, window_height
        aspect = window_width / window_height
        self.render_pass(rp, mvp, w, h, fbo1.colors[0], offset_x * x, offset_y * y)

In the second pass a single tile is read form the texture and renderd to the window (default framebuffer 0). The source texture (tile) has exactly the size of a tile and the uv coordinate has to be calculated in respect to the tile texture. gl_FragCoord.xy is (0,0) at the bottom left of the window. uv = (0,0) has to be at the bottom left of the tile and uv = (1, 1) at the top right of the tile. To calculate the uv coordinate the offset of the tile has to subtracted from gl_FragCoord.xy and the result has to be divided by the size of a title :
formula (pseudo code)
uv = (gl_FragCoord.xy - (offset_x*x, offset_y*y)) / (tile_width, tile_height)

    +------------------+
    |                  |
    |    +----+        |
    |    |    |        |
    |    +----+        |
    |  (0,0) tile      |
    |                  |
    +------------------+
  (0,0) window = gl_FragCoord.xy

In the 2nd pass, iResolution has to be (self.tiler.tile_width, self.tiler.tile_height) and iOffset has to be (-offset_x * x, -offset_y * y).
# Pass1: Image - Channels [BufferA, None, None, None]
glBindFramebuffer(GL_FRAMEBUFFER, 0)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

for y in range(N):
    for x in range(M):
        fbo0 = self.fbos[0][y * M + x]
        fbo1 = self.fbos[1][y * M + x]
        mvp = proj * self.view * self.model
        rp = self.passes[1]

        glViewport(offset_x*x, offset_y*y, self.tiler.tile_width, self.tiler.tile_height)

        w, h   = self.tiler.tile_width, self.tiler.tile_height
        aspect = self.tiler.tile_width / self.tiler.tile_height
        self.render_pass(rp, mvp, w, h, fbo0.colors[0], -offset_x * x, -offset_y * y)

Edit for mcve.py
In this case the render target is always a framebuffer with the size of a tile The 2nd render pass ("Pass1") reads from a tile and stores to the destination tile, so the 2nd pass has to be:
# Pass1: Image - Channels [BufferA, None, None, None]
for y in range(N):
    for x in range(M):
        fbo_dst = self.fbo_target[0][y * M + x]
        fbo_src = self.fbos[0][y * M + x]
        mvp = proj * self.view * self.model
        rp = self.passes[1]

        fbo_dst.bind()
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
        glViewport(0, 0, self.tiler.tile_width, self.tiler.tile_height)

        w, h   = self.tiler.tile_width, self.tiler.tile_height
        aspect = self.tiler.tile_width / self.tiler.tile_height
        self.render_pass(rp, mvp, w, h, fbo_src.colors[0], 0, 0)

A further issue is the reading of the texture form the previous frame in the fragments shader. The size of the texture is always a the size of a tile. The bottom left coordinate of the texture is (0, 0) and the top right coordinate is (1, 1).
So for the calculation of the texture coordinate (st), the offset has to be skipped and the resolution is given by the size of the texture (textureSize):
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
    initSpheres();

    # issue is here
    // vec2 st = fragCoord.xy / iResolution.xy; <--- delete
    vec2 st = gl_FragCoord.xy / vec2(textureSize(iChannel0, 0));

    // [...]

    // Moving average (multipass code)
    vec3 color = texture(iChannel0, st).rgb * float(iFrame);
    // [...]
}

See the result:

If you don't want to change the shader code in mainImage, then a different approach is to trick the system and to delegate the texture look up to a different function, by a macro. e.g.:
def shader(tileTextureLookup, text):

    prefix = textwrap.dedent("""\
        uniform float iTime;
        uniform int iFrame;
        uniform vec3 iResolution;
        uniform sampler2D iChannel0;
        uniform vec2 iOffset;
        out vec4 frag_color;
    """)

    textureLookup = ""
    if tileTextureLookup:
        textureLookup = textwrap.dedent("""\
            vec4 textureTile(sampler2D sampler, vec2 uv) {
                vec2 st = (uv * iResolution.xy - iOffset.xy) / vec2(textureSize(sampler, 0));
                return texture(sampler, st);
            }

            #define texture textureTile
        """)

    suffix = textwrap.dedent("""\
        void main() {
            mainImage(frag_color, gl_FragCoord.xy + iOffset);
        }
     """)

    return GLSL_VERSION + prefix + textureLookup + textwrap.dedent(text) + suffix

SMALLPT_MULTIPASS = [
    shader(True, """\
        // All code here is by Zavie (https://www.shadertoy.com/view/4sfGDB#)

        // [...]

    """),
    shader(False, """\
        // A simple port of Zavie's GLSL smallpt that uses multipass.
        // Original source: https://www.shadertoy.com/view/4sfGDB#

        void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
            vec2 uv = fragCoord.xy / iResolution.xy;
            vec3 color = texture(iChannel0, uv).rgb;

            fragColor = vec4(pow(clamp(color, 0., 1.), vec3(1./2.2)), 1.);
        }
    """)
]

But note, texture is an overloaded function and this approach works for 2 dimensional textures only. Furthermore there other look up functions like texelFetch, too.

redpajama_set_name: RedPajamaStackExchange


THANK YOU TO ALL MMC EMPLOYEES FOR ALL YOUR EFFORTS THROUGHOUT THE YEAR!
On April 30th, our fiscal year ended on a sweet note!
All our employees enjoyed a Beaver's Tale snack, celebrating an exceptional year of growth and innovation.
NPE2018 – Make sure to stop by our booth!
NEW VIDEO: Cap Lining Machine for a large diameter closure!


In yoga, relaxed and rigid are not opposites. Limp and rigid are opposites. Relaxed is the middle way.
Relaxedness arises as the breath eases, the head clears, and the heart opens. Relaxedness is a result of discipline. Discipline is the way to liberation.
Dancers know that the dedicated practice of technique frees the body to leap as if gravity didn't exist. A great pianist practices daily scales, knowing that years of repeating scales is the ground from which flights of improv soar.
If your body is limp or rigid, check your mental stance, check your feeling stance. The body is a reflection of thinking and feeling.
A rigid body reflects rigid thinking and rigid feeling, a stiffening of the authentic, fluid vitality of being into a very narrow artery of clog.
A limp body reflects limp thinking and limp feeling, a puddling of your authentic, vital, alive, and magnificently wild self into shapeless, shallow pools of blah.
The spacious silent abode of yoga mind liberates us from a rigid resistance or limp resignation to the frustrating finitudes of life. Relaxed is the transcendent third, the middle way, the balancing agent, the springboard into radiant possibility.
Relaxed synergizes the good fortitude of the rigid stance and the good softness of the limp stance into an energetic powerhouse of magnetized potential. Rigid becomes flexible with softness loosening it. Limp becomes resilience with fortitude strengthening it.
A daily practice in yoga mind enhances our energetic radiance and liberates us into the infinite potentialities of the relaxed, non-attached awareness.
The relaxed, non-attached awareness frees our wild potentialities into useable energy and useful attraction action that helps dreams come true.


Many IoT technologies were invented in the smart home and smart city sub-sectors. Therefore, one can find many use cases for these solutions in order to improve the efficiency of Facility Management creating electronic facility management category (eFM).
Ewave Mobile provides businesses with smart and tailor-made facility management solutions. This includes indoor navigation, cleaning and maintenance tracking, security control, conference room management, security tag to enable employee/guest tracking, and much more.
In addition, we provide a variety of Smart Home solutions for the business sector – mainly retail chains and industrial companies, whose "homes" include mainly factories, logistics centers and warehouses, hospitals, office buildings and retail stores. Using software solutions and IoT sensors, we offer real-time updates and notifications when there is any change in temperature, noise, moisture, density or pressure.


SINGER-songwriter Louise Jordan celebrates the inspirational stories of heroic women who played a part in the First World War effort at a performance later this month at Rugby Art Gallery and Museum.
No Petticoats Here combines songs, anecdotes and photographs to tell stories of extraordinary women who lived through the Great War, from a physicist who invented a fan to clear poisonous gas from the trenches to keen motorcyclists who signed up to serve with Dr Munro's Flying Ambulance Corps.
The inspiration for No Petticoats Here came from Louise's discovery of the story of Dorothy Lawrence, whose determination to become an investigative journalist led her to risk her life on the frontline in France.
Cycling through France to the Somme, Dorothy donned a soldier's uniform and managed to enter the trenches just 400 yards from the enemy before illness eventually forced her to turn herself in.
Dorothy's story led Louise to carry out extensive research on a host of heroic women, work which took her to the battlefields of Flanders and the Somme, and trips to dozens of museums and libraries.
Songs inspired by her research include Queen Of Spies, about French woman Louise de Bettignies, who turned British agent after the Germans took control of her home town of Lille, and Endless Days, which tells the tale of motorcycle fanatics Elsie Knocker and Mairi Chisholm, who joined Dr Munro's Flying Ambulance Corps and ran a first aid post in the bombed out Belgian village of Pervyse.
Louise, who secured funding from Arts Council England to develop the project, performs No Petticoats Here at Rugby Art Gallery and Museum on Sunday 14 October.
Cllr Sebastian Lowe, Rugby Borough Council portfolio holder for growth and investment, said: "Rugby Art Gallery and Museum staged an exhibition in 2016 exploring the life of Lady Dorothy Feilding, the daughter of the Earl of Denbigh who left the family home near Rugby to work as an ambulance driver near the frontline in Flanders.
"Lady Dorothy was one of many women who bravely supported the war effort, and No Petticoats Here celebrates stories of heroism which remain an inspiration to this day."
Photo caption: Singer-songwriter Louise Jordan performs No Petticoats Here later this month at Rugby Art Gallery and Museum.


Lynx (Augmented Reality) Fallen Angels in Victoria Station!
So many brands have jumped on the 'Augmented Reality bandwagon' that it's in danger of becoming old hat already. But every now again you see an execution where it all comes together brilliantly. This latest campaign by Lynx Excite is a case in point. What I like about it is the way they've seamlessly extended the big idea behind Fallen Angels and used AR to bring it to life, rather than relying on the technology to dictate the big idea. I also think AR works best when used in experiential environments like this as consumers get to enjoy the full virtual experience without having to overcome the usual barriers to entry, such as having to print out the AR code or switch on webcams.
For more posts on Augmented Reality, feel free to click here.
The automotive industry were one of the first industries to embrace AR within marketing communications so it's probably not surprising to see Audi now taking full advantage of this technology to promote the A1.
What's interesting for me, however, is that they've integrated AR within their main website so that it will remain a permanent feature for that model. In this example, you can add a panoramic sunroof, open doors and explore the interior or even take it for a virtual spin. Admittedly AR can be a bit gimmicky for some tastes but I like the fact that people have the option to interact with this if they choose to do so, in much the same way that some prospects prefer video content whilst others devour technical specs. Also, now that it's a permanent fixture on the site they should be able to include the AR code on other marketing collateral to help drive offline prospects online.
If Audi can demonstrate that AR is well received with some online personas and improves their conversion rates, I wouldn't be surprised if they roll this out for all future product launches.
If you want to read my other posts on Augmented Reality click here.
Fantastic collection of inspiring stuff compiled by Google Creative Lab including mashups, location-based games, video annotation, AR, digital light displays, photomosaics, collaborative projects and even some cute bunny rabbits!
Augmented Reality is all the rage these days but it's easy to get a bit carried away with technology at the expense of building on a particular consumer insight. It's far better for a creative idea to be built on a strong insight rather than forcing an idea around the latest gizmo.
That said, I like this AR example Tullo Marshall Warren have produced for young people interested in the Royal Air Force as it plays on their inquisitive nature, their passion for the "Red Arrows" and their predisposition to adopt new technology.
The welcome pack forms part of the CRM programme for the The Altitude online club, dedicated to 13 to 18 year-olds in full time education and provides information about life in the RAF.
The pack was made up of outer packaging, a letter with a personalised membership card and a small Augmented Reality card. When recipients go to the URL on the card and hold the card up to a webcam, they can see and interact with a projected 3D model of a Red Arrows aircraft, while watching an exclusive interview with one of the world-famous Red Arrows Pilots.
In addition, the magic symbol in the centre of the card acts as code: anyone who deciphers what it means is entered into a free prize draw to win an Altitude-branded iPod nano and sock.
It's a great example of how to use direct mail to drive traffic online in order to create a rich and engaging online experience. I've no doubt this particular target audience will be fascinated with this kind of technology and keen to show this to their friends.
If you're interested to know more about Augmented Reality and how marketers have taken advantage of this technology to good effect, you might want to read my previous post called 6 top marketing applications for Augmented Reality.
Augmented reality (AR) is a fascinating field of computer research which combines the real-world with virtual reality and computer-generated data. This leading edge technology is being increasingly adopted within the interactive marketing arena, so I thought it might help to provide a summary of the different applications I've come across to date.
Now that we live firmly in the digital age, you may be forgiven for thinking the traditional print ad just doesn't cut the mustard anymore! Take the Mini Cabrio Augmented Reality campaign, for example. As part of the model launch they created a full page print ad which contained simple instructions on how to transform the page into a 3D virtual model of the car.
They placed the ad in three German automotive magazines including Auto, Motor und Sport, Werben & Verkaufen and Autobild. You can check out the results in the video below or if you want a go yourself you can print out a PDF of the ad. The campaign was created Buzzin Monkey and die agentour GmbH.
The following example demonstrates how versatile AR can be as a way of making brochure fulfilment more engaging and interactive. Here, consumers can fully interact with the brochure to change the colour of the car and even review the interior in 3D. Might make you think twice before churning out yet another 6pp DL fulfilment leaflet!
Some times it's not the actual product itself which is dramatised but rather a conceptual idea designed to create buzz or word of mouth for a particular campaign. For example, to help promote the latest Star Trek movie, they created this holographic tour around the USS Enterprise, including basic interaction such as firing laser guns or experiencing warp speed. I'm sure any geeky Star Trek fans are simply going to love this.
Samsung have also just launched a spoof online campaign for the Samsung Mini Notebook N310 where they superimposed two 'morphic' characters onto some camcorder footage previewing the notebooks at some tradeshow. This is perhaps the most passive application of AR as there's no user interaction as such but it still demonstrates how the technology can be applied to dramatise a particular campaign idea.
AR obviously comes into its own when you need to demonstrate a product, particularly if the product is too complex, large or expensive to present in the flesh. So the sort of industries this may appeal to include automotive, construction, interior design, fashion, luxury hotels and financial services to name but a few.
Infiniti, the premium car brand, for example, created an interactive kiosk last year where passers-by could literally control the angle and perspective of the 3D moving vehicle by adjusting the card in front of the screen. Ironically, this would have generated far more consumer engagement and buzz than simply showcasing the car.
Some times it's hard to envisage what a product may end up looking like when it hasn't yet been assembled. This was the problem faced by LEGO whose products are obviously composed of tiny individual pieces.
To overcome this, LEGO, in partnership with AR specialists Metaio, installed interactive terminals in key shopping locations so that children could hold the LEGO boxes up to the screen and see a 3D animation of the product inside the box. What a great way to get kids excited about your product.
iLiving, a furniture manufacturer, has also cottoned on to the fact that they could apply AR technology to help customers visualise how iLiving furniture may look in their own living room.
This simple example from Rayban effectively demonstrates how product visualisation can help to facilitate the buying process for consumers who are shopping online.
While the idea behind AR has been around for a while, it is the number of mobile phone apps utilising it that have really pushed the technology into the limelight. Wikitude AR Travel Guide is an application specifically for the Google Android that turns Wikipedia into a location-based service. This means you can point your camera at anything around you, and using GPS to get your whereabouts, the app is able to pick up info about places of interest in your area so you can get clued up. Genius.
WWF have also incorporated AR into mobile phones with this innovative awareness generation campaign.
The above examples hopefully show the versatility of this technology and how it is starting to be adopted across multiple platforms, whether that's via print ads, brochures, websites, interactive kiosks or even mobile phones.
The challenge for marketers is not to let AR dictate the idea but rather start with clear marketing objectives, consumer needs and insights, a campaign proposition and a perhaps the seed of a creative idea and see whether AR can help to bring this all to life. At the end of the day there's no point incorporating this technology unless it provides a clear, demonstrable benefit for the consumer and addresses your core marketing objectives. However, I hope that by identifying 6 clear applications for brands that this gets the creative juices going!
Finally, I'll leave you with this interesting example which sadly doesn't quite sit within any of the above categories but worth sharing anyway. It shows just how far one can take this technology with a little bit of creativity and inspiration.
What constitutes a good insight?


text:
Q: AttributeError: partially initialized module 'pytesseract' has no attribute 'image_to_string' I did pip install pytesseract and installed OCR too.
Full error:
Traceback (most recent call last):
  File "c:/Users/Hackry/Documents/pytest/tess.py", line 2, in <module>
    import pytesseract
  File "c:\Users\Hackry\Documents\pytest\pytesseract.py", line 6, in <module>
    text = pytesseract.image_to_string(img)
AttributeError: partially initialized module 'pytesseract' has no attribute 'image_to_string' (most likely due to a circular import)

My code
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = 'C:/Users/Hackry/AppData/Local/Tesseract-OCR/tesseract.exe' #define tesseract path

img = Image.open('C:/Users/Hackry/Documents/pytest/text.jpg')
text = pytesseract.image_to_string(img)

print(text)


text:
Security Information / 2014 / Security Information -- DSA-2878-1 virtualbox
DSA-2878-1 virtualbox -- security update
In the Debian bugtracking system: Bug 735410.
In Mitre's CVE dictionary: CVE-2013-5892, CVE-2014-0404, CVE-2014-0406, CVE-2014-0407.
Matthew Daley discovered multiple vulnerabilities in VirtualBox, a x86 virtualisation solution, resulting in denial of service, privilege escalation and an information leak.
For the oldstable distribution (squeeze), these problems have been fixed in version 3.2.10-dfsg-1+squeeze2 of the virtualbox-ose source package.
For the stable distribution (wheezy), these problems have been fixed in version 4.1.18-dfsg-2+deb7u2.
For the testing distribution (jessie), these problems have been fixed in version 4.3.6-dfsg-1.
For the unstable distribution (sid), these problems have been fixed in version 4.3.6-dfsg-1.
We recommend that you upgrade your virtualbox packages.


WHITE ROOM | Liquid art system has previously been featured in Ocula's Art Fairs coverage but is not a current Ocula member gallery.
If you are from WHITE ROOM | Liquid art system and wish to know more about the benefits of membership and how to apply please visit: ocula.com/membership.
Be among the first to know when new artworks and exhibitions at WHITE ROOM | Liquid art system are added to Ocula.


text:
Those calling for international bodies to interfere with Nigeria's internal affairs are unpatriotic citizens – Katsina State governor, Masari
Governor of Katsina State, Aminu Bello Masari has stated that those calling on international bodies and foreign powers to interfere in the internal affairs of Nigeria are unpatriotic citizens.
Masari during his Eid-el-Kabir message issued by his Director General, Media, Abdu Labaran Malumfashi, said no responsible citizen would encourage foreign powers to meddle in the internal affairs of their nation, regardless of its adversities.
Masari urged Nigerian elites to learn from their international counterparts and guard Nigeria's sovereignty jealously.
He said;
"For any compatriot to wilfully call on foreign powers to meddle in the internal affairs of Nigeria, is to display the highest level of unpatriotism.
"No responsible citizen, least of all those who are the foremost beneficiaries of the commonwealth, would encourage foreign powers to interfere in the internal affairs of their nation, regardless of its adversities.
"Nigerians elites should borrow a leaf from their counterparts in those foreign powers and guard Nigeria's sovereignty jealously.
"In those climes, the leading citizens partner with the government to protect and advance national interest. They do not go to the market place to expose the perceived inadequacy of their leaders."
Masari maintained that the nation's leaders need support at this time as adversities do not respect any boundaries, be they religious, ethnic or regional.
"Adversities do not respect any boundaries, be they religious, ethnic or regional.
"The insecurity buffeting the country is not limited to one section of the country, or affecting only one ethnic group or the adherents of only one religion."
➡➡➡➡➡➡➡➡➡➡➡
https://www.instagram.com/lodgexpress?r=nametag
https://www.facebook.com/Lodgexpress
Masari Those calling for international bodies to interfere with Nigeria's internal affairs are unpatriotic citizens - Katsina State governor