Commentary: E-scooter ban on footpaths – here’s a list of those who got off scot-free
by Irene HoeElectric scooters might be banned off footpaths but it’s letting many who should take responsibility for their externalities off the hook, says Irene Hoe.
SINGAPORE: Are personal mobility devices (PMDs) really that bad?
The numbers tell a terrible story. Six PMD riders dead between January 2017 and September this year reported by Tan Tock Seng Hospital alone.
‘DO SOMETHING’
It wouldn’t be Singapore if someone didn’t say “the Government should do something”. Member of Parliament (MP) Lim Biow Chuan obliged last month, among a sea of many other MPs calling for harsher punishments for errant e-scooter riders.
There was a public petition to ban them from public footpaths, with more than 69,000 signatures.
So, came new rules. The Active Mobility Act, made effective in May 2018, specified conditions PMDs and bicycles must meet like the maximum speed.
And more new rules again in 2019, mandating the registration of e-scooters, electric bikes and compliance with UL2272 certification.
READ: E-scooter ban on footpaths: 5 things you need to know
Then the rules were changed on Monday (Nov 4) when a ban on e-scooters on footpaths was announced.
Yet, all of these, in my mind, are stop-gap measures.
The casualties include e-scooter riders themselves. As far back as 2017, the warning signs were already being noticed by trauma doctors at Tan Tock Seng Hospital, who admitted close to four such casualties a month.
By September this year, that was nearly nine a month.
WHO IS AFFECTED?
The reaction thus far demonstrates one thing very clearly: That the e-scooter explosion caught our leaders and senior bureaucrats by surprise.
Perhaps, they do not ride such devices and are less likely than most people to haunt public footpaths.
Who rides e-scooters? There are said to be some 7,000 food delivery riders using e-scooters here. Most work for Grab.
Interestingly, Grab seems willing to sacrifice customer goodwill as well as rider welfare. Its reaction to the rule banning e-scooters is to pass the buck to customers, highlight the delays to delivery and essentially tell them “Wait, lah!”
READ: Statements by Grab and other food delivery companies on the e-scooter footpath ban
But these food deliverers depend on their e-scooters to make a living and complete enough deliveries.
Therein lies the seeds of the underlying problem. The approach from those in authority and from what seems to be the majority of the people, judging from the speed with which the public petition was able to gather so many signatures, has been to impose bans and restrictions. That’s too easy.
WHAT THE REAL PROBLEM IS
The transport and building infrastructure builders and regulators must swallow their share of blame too. They have clearly been blindsided by this phenomenon.
They need to come up with real solutions that incorporate the use of e-scooters at some point, and not be content to ban them.
READ: Why being hit by an e-scooter can be deadly - and a call to ban them from footpaths
A more densely populated and congested city is our reality. So is the use of new technology in mobility.
To its credit, the LTA responded promptly when I brought to its attention how a recently beautified public footpath leading from my estate to Clementi Road was too narrow to allow a cyclist or e-scooter rider to pass a pedestrian safely.
On a recent evening, I was walking home when a burly man and a young boy, both on e-scooters, came up behind me. I heard them talking.
So I quickly stepped off the path and onto the grass verge. They zipped past with nary a glance at me, nor a pause in their conversation.
Not long afterwards, on a public footpath near Lucky Plaza, I noticed an e-scooter rider coming towards me.
Ahead of him walked a grey-haired man oblivious to the danger approaching. I grabbed the old guy and shoved him into the bushes.
The e-scooter dodged the man and zoomed past us, the rider still looking at his cellphone.
When the startled old man began to berate me, an onlooker stopped him. “Uncle, this auntie just saved you,” he said.
READ: The Big Read: Calls to ban PMDs mount as accidents persist — but is it the best option?
Today, with e-scooters banned from public footpaths, Singapore, like all the places wrestling with the problem, is just at the starting gate to a solution.
We must take a good hard look at the businesses and business owners who imported this e-scourge into Singapore and have so far been largely able to dodge blame.
The importers and sellers of these machines are the source of the problem. They are the ones who have profited most from e-scooters, and they must now be made to become part of the solution.
READ: Commentary: Can we co-exist with PMDs? Yes, but we need to take a different path
The fallout from e-scooters is not limited to death and bodily harm. There have been too many fires resulting from the charging of these devices.
PERSONAL RESPONSIBILITY
Beyond that, we also have to look inwards. What about personal responsibility?
Whenever I spend time in the Netherlands, I have always been impressed by the skill, deftness and consideration with which the people move around on bicycles.
What do we have to do as a nation to develop that same wonderful consideration for other people – no matter what passport they hold – so that we look out for one another, sometimes in a very literal way?
And then, how do we hardwire that into our national psyche?
While I could not oppose the petition to ban e-scooters in Singapore, or ban them from public footpaths, I cannot support either move, simply because I realise that to thousands of people, it represents the ability to support themselves and their families. It is their lifeline.
Whatever solutions are considered, we cannot lose sight of that.
Irene Hoe is a writer, editor and coach and has been a journalist for many decades.


--- layout: not_homepage quote: One's life has value so long as one attributes value to the life of others. author: Simone de Beauvoir --- {% include quote.html quote=page.quote author=page.author %}
I'm an adventurer, so I spend most of my free time traveling or planning a trip. I love extreme sports like wakesurfing, and snowboarding, which I discovered when I lived in Japan and improved when I lived in the United States. I practice karate since I was 3 years old, having more than 30 titles in national and international championships. I also did many years of horseback riding. Nowadays, I consider myself a mountaineer and I love camping. In the past two years, I have visited Sweden, Norway, Chile, Argentina, Japan and Ecuador. In the last vacation, I spent 15 days camping and climbing mountains in El Chalten, Torres del Paine and Atacama. I have three beautiful feline daughters: Fumaça ('Smoky'), Canela ('Cinnamon') and Sacola ('Baggy'). I am now planning a motorhome trip through New Zealand or Canada, in particular Banff National Park (depending on the pandemic). I'm also very interested in politics and philosophy (especially in existentialism).


|
MOREbot_Library
1.3.2
Library to control the MOREbot base robot
|
#include <MOREbot.h>
Public Member Functions | |
| bluetooth (int rx, int tx) | |
| bluetooth (String name, int rx, int tx) | |
| void | setup () |
| void | processData () |
| bool | getModeButton () |
| int | getSpeed () |
| float | getDirection () |
| int | getButton () |
| int | getSlider () |
| int | getSliderValue () |
| String | getText () |
Bluetooth BLE class. Handles communicating with the bluetooth module, uses ArduinoBlue data tags.
| bluetooth::bluetooth | ( | int | rx, |
| int | tx | ||
| ) |
Basic Bluetooth constructor. Sets the pins for communication with the BLE module and starts the stream to communicate.
| rx | an integer. Read pin for the arduino, connects to tx on the BLE module. |
| tx | an integer. Send pin for the arduino, connects to rx on the BLE. |
| bluetooth::bluetooth | ( | String | name, |
| int | rx, | ||
| int | tx | ||
| ) |
Bluetooth constructor eith renaming. Sets the pins for communication with the BLE module and starts the stream to communicate. Saves name to be used when renaming the module during setup().
| name | a String. The name that the arduino will attempt to rename the BLE before starting data communication (Does not rename if the module is already connected) |
| rx | an integer. Read pin for the arduino, connects to tx on the BLE module. |
| tx | an integer. Send pin for the arduino, connects to rx on the BLE. |
| int bluetooth::getButton | ( | ) |
Call function for the last button id recieved.
| float bluetooth::getDirection | ( | ) |
Call function for the last direction recieved.
2PI
). | bool bluetooth::getModeButton | ( | ) |
Call function for the current mode status, inverts when the mode button id (2) is recieved.
| int bluetooth::getSlider | ( | ) |
Call function for the last slider id recieved.
| int bluetooth::getSliderValue | ( | ) |
Call function for the last slider value recieved.
| int bluetooth::getSpeed | ( | ) |
Call function for sthe last speed recieved.
| String bluetooth::getText | ( | ) |
Call function for the last text recieved.
| void bluetooth::processData | ( | ) |
Reads the BLE stream for any data that the module has recieved. Saves that data in private memory. Processes joystick data from radial coordinates into speed and direction.
| void bluetooth::setup | ( | ) |
Checks that the module is responding and attempts to rename it if a name was given during construction.


Manchester United star responds to speculation he could join Jose Mourinho at Tottenham
by Sarthak SharmaJose Mourinho is now the head coach of Tottenham Hotspur, and his appointment comes just over a month before the start of the January transfer window. A few players have already been linked with joining Spurs under new management, and one Manchester United star has now responded to claims he could be the man off to North London.
Nemanja Matic is considered a “Mourinho guy” by most owing to his stints under the Portuguese boss, first at Chelsea and then at Manchester United, and speculation is rife that he could be going to Spurs next.
The Serbian is struggling to find regular game time this season under United boss Ole Gunnar Solskjaer, and with the emergence of Scott McTominay, it looks unlikely that he’ll be in the starting eleven very often.
This has prompted rumours of his move to Spurs with Mourinho now in charge, and Matic himself has responded to those claims with what can only be called positivity. Take a look.
Matic appears to be fuelling rumours that he could be headed out of Old Trafford, and with his former boss now calling the shots at Tottenham, perhaps this would be the best time for the midfielder to seek a new challenge in the Premier League.


Giri, A. K., Joshi, P. (2017). The impact of macroeconomic indicators on Indian stock prices: An empirical analysis. Studies in Business and Economics, 12(1),
61-78. https://doi.org/10.1515/sbe-2017-0005
Joshi, P., Giri, A. K. (2016). Economic and Social Impact of Micro Finance Programs: An Empirical Study of SHGs in Rajasthan, India. IPE Journal of Man- agement, 6(1), 131. https://search.proquest.com/openview
Joshi, P., Giri, A. K. (2015). Fiscal deficits and stock prices in India: Empirical evidence. International Journal of Financial Studies, 3(3), 393-410. https://doi.org/10.3390/ijfs3030393
Joshi, P., Giri, A. K. (2015). Examining the relationship between sectoral stock market indices and sectoral gross domestic product: an empirical evidence from India. Global Journal of Management And Business Research. https://www.journalofbusiness.org/index.php/GJMBR/article/view/1819/1721
Joshi, P., Giri, A. K. (2015). Dynamic relations between macroeconomic variables and Indian stock price: An application of ARDL bounds testing approach. Asian Economic and Financial Review, 5(10), 1119. http://www.conscientiabeam.com/pdf-files/eco/3/AEFR-2015-5(10)-1119-1133.pdf
Joshi, P., Giri, A. K. (2015). Cointegration and causality between macroeconomic variables and stock prices: empirical analysis from Indian economy. Business and Economic Research, 5(2), 327-345. Link
Joshi, P., Giri, A. K. (2015). Macroeconomic Variables and Stock Market Development in India: An Application of ARDL Bounds Testing Approach. The Empirical Economics Letters, 14(7): (July 2015) Link


Dr. Richard P. Feynman
Theoretical Physicist, Teacher, Author, Artist, Musician, Prankster...
It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong. Richard P. Feynman
A Brief Timeline of Events in Dr. Feynman's Life:
- 1918 Born on May 11th in Manhattan NY, son to Melville and Lucille Feynman.
- 1935 Graduates Far Rockaway High School earning honors in all his academic subjects. Later that year he enrolls at MIT with a $100.00 per year scholarship.
- 1939 Received a bachelor's degree, Massachusetts Institute of Technology. Also won the Putnam Competition, considered to be the most prestigious university-level mathematics examination in the world.
- 1940 Feynman delivers his first seminar. Audience included theoretical physicists Albert Einstein and Wolfgang Pauli, and mathematician/physicist John von Neumann.
- 1942 Received a PhD from Princeton University. Feynman's thesis was titled "The Principle of Least Action in Quantum Mechanics". Marries Arline Greenbaum.
- 1943 In March Feynman moves to Los Alamos, New Mexico to participate in the Manhattan Project, the development of the atomic bomb. Made a group leader in Hans Bethe's theoretical division.
- 1945 July 16 Feynman attends the Trinity bomb test, the first detonation of a nuclear weapon. Late 1945 starts teaching theoretical physics for next 5 years at Cornell University. Wife Arline dies.
- 1948 Feynman first introduces Feynman Diagrams, which eventually revolutionized nearly every aspect of theoretical physics.
- 1949 Feynman presents his formulation of Quantum electrodynamics (QED) at Oldstone-on-the-Hudson Conference.
- 1950 Feynman accepts an appointment as Professor of Theoretical Physics at Caltech, the California Institute of Technology.
- 1954 Receives Albert Einstein Award. Elected to National Academy of Science.
- 1959 Feynman is appointed Chace Tolman Professor of Theoretical Physics at Caltech.
- 1960 Marries Gweneth Howarth.
- 1961 Feynman gives up research for two years to teach freshman Physics; the course is preserved in The Feynman Lectures on Physics, published in 1965. Feynman later tells a colleague that the Lectures would, ultimately, prove his most lasting contribution to Physics.
- 1962 Son Carl Richard is born.
- 1965 Feynman shares the Nobel Prize in Physics, with Shin’ichiro Tomanaga and Julian Schwinger, for his work in Quantum Electrodynamics.
- 1968 Daughter Michelle Catherine born.
- 1972 Received Oersted Medal for Teaching.
- 1973 Receives Niels Bohr International Gold Medal.
- 1983 Feynman goes to work for Hillis’ Thinking Machine Corporation, a company that intends to build a computer using a million processors operating in parallel.
- 1985 Surely You’re Joking, Mr. Feynman! published. Also published, QED: The Strange Theory of Light and Matter.
- 1986 Following the explosion of the Space Shuttle Challenger, Feynman joins the Rogers Commission inquiry, and after several month's of inquiry uses a glass of ice-water to demonstrate that the shuttle’s rubber O-ring gaskets lose resiliency at low temperatures.
- 1988 Feynman dies at the UCLA Medical Center on February 15, 1988, aged 69.
Publications
Mainly Mechanics, Radiation, and Heat. 1963 Lectures to freshman & sophomore undergraduate students at Caltech during the first few years of 1960 on basic Quantum Physics.
Quantum Mechanics and Path Integrals. 1965 Feynman and Hibbs present some of the fundamental principles of quantum mechanics and the mathematics to understand them.
The Character of Physical Law. 1965 contains the text of seven brilliant lectures, originally delivered to standing-room-only audiences at Cornell University, that demonstrate Feyman's unique ability to bring his subject to life to the non-physicist.
QED: The Strange Theory of Light and Matter. 1985 edited version of four lectures on quantum electrodynamics that Feynman gave to the general public at UCLA as part of the Alix G. Mautner Memorial Lecture series--is perhaps the best example of his ability to communicate both the substance and the spirit of science to the layperson.
Surely You're Joking, Mr. Feynman. 1985 Richard Feynman, winner of the Nobel Prize in physics, thrived on outrageous adventures. Here he recounts in his inimitable voice his experience trading ideas on atomic physics with Einstein and Bohr and ideas on gambling with Nick the Greek.
Elementary Particles and the Laws of Physics. 1987 The talks were directed at an advanced audience, one that was familiar with quantum mechanics. Unlike many popular presentations by Feynman and Weinberg, these lectures are not suitable for the general layman.
What Do You Care What Other People Think. 1988 A thoughtful companion volume to the earlier Surely You Are Joking Mr. Feynman!.


Do you consider yourself adventurous?
When you make plans with a friend how often do cancel them?
How often do enjoy spending time with your friends?
How often do you get upset?
How well do you relate to other people’s feelings?
Which do you think is more important? The truth or people’s feelings?
How well do you keep your cool when under pressure or stress?
Which would you rather do?
Do you consider yourself more of an introvert or an extrovert?


Hello, I'm Dana Thomas, a
user interface designer and front end developer based in Michigan, USA.
View my work here.
ABOUT ME.
Hi, I'm Dana Thomas! Currently, I work as a UI Developer Intern for Quicken Loans.
Thanks to a rather colorful background, I've had the pleasure of designing for the apparel brand Lands' End, and providing art direction for clients such as - Michigan Lottery Organization
and the Detroit Tigers MLB organization. The takeaway? I'm someone who enjoys puzzles (and figuring out how to creatively to solve them), and striving to provide
a quality product and a powerful user experience.
Let's touch base at d.thomas014@gmail[dot]com.
SPECIALTIES.


You can export all data into json format file
You can import data here
Change password
Add / Delete tags


{% extends 'base.html' %} {% load crispy_forms_tags %} {% block title %}Login{% endblock title %} {% block header %} Zarawa Express Please login to view orders {% endblock header %} {% block content %}
You must logged in to view orders.
Must be admin to login Back to Home


U.S. officials 'repeatedly lied about Afghanistan war for 18 years and hid the fact it was unwinnable', according to bombshell Washington Post report dubbed 'the Pentagon Papers of today'
by Jennifer Smith For Dailymail.com- The Washington Post published 2,000 pages of documents obtained via FOIA request on Monday
- They contain interviews from senior military personnel between 2014 and 2018
- The interviews were part of a government investigation into the Afghanistan war
- They paint a picture where officials were 'woefully deficient' in intelligence
- Troops did not know 'who the bad guys were and where to find them', it claims
- There was also confusion over the point of the war; what began as a fight against terror turned into an effort to democratize Afghanistan, they say
- Officials 'routinely distorted data' to make it appear as though the US was winning
- At the same time, Presidents Bush and Obama made speeches describing the military's success and progress in the region
- The reality, the report claims, was the war was 'unwinnable', senior officials knew it but nearly $1 trillion was spent and 2,400 lives were lost
US officials repeatedly lied to the public about the war in Afghanistan for its 18 year duration by hiding the fact that it was unwinnable and troops were out of their depth, The Washington Post has claimed.
In a lengthy article published on Monday, the Post claims that top officials knew the military's chances were slim but that they routinely hid the grave reality and made 'rosy pronouncements' about it instead.
The cache of documents - dubbed the 'Pentagon Papers of Afghanistan' - includes interviews that the government carried out with senior military personnel which the newspaper obtained through a Freedom of Information request. They took place between 2014 and 2018 and contain the comments of nearly 400 people.
In addition to the interview transcripts, the Post obtained memos dictated by former Defense Secretary Donald H. Rumsfeld between 2001 and 2006, during the first phase of the war.
Together, they paint a picture of a confused military who did not know who the 'bad guys' were, let alone where to find them or how to defeat them.
Among the interviews is a 2015 transcript of one in which Michael Flynn, the disgraced former United States National Security Advisor, said: 'If we are doing such a great job, why does it feel like we are losing?'
The military personnel also describe how top brass officials distorted data to make it appear as though the US was winning when in fact thousands were being needlessly killed.
The alleged failures which troops complained about included not knowing what the point of the war was - whether they were there to fight terror or to make Afghanistan a democratic country - and lacking crucial intelligence which would have helped form their strategies.
John Sopko, Special Inspector General for Afghanistan Reconstruction, whose agency was in charge of the investigation, told the newspaper in light of the unearthed interviews: 'The American people have constantly been lied to.'
The alleged failures include;
- Nearly $1 trillion wasted; troops said they were expected to spend money with no reason in areas that were overwhelmed by the sudden influx of cash and resources
- Misguided attempts to build an Afghan army when all their troops were 'incompetent' and some were 'drug addicts'
- 'Fatally flawed' fighting strategies which put US lives at risk
- Distorting data and figures to make it look like the US was winning
- Years of false statements to the American people that progress was being made when it was not
- Confusion over what the mission was; it started as a war on terror but later priorities became building a democracy and improving women's rights
- 'Woeful' deficiency in intelligence from the beginning
Among the interviewees is General Douglas Lute, who served under Bush and Obama.
He blamed the 2,400 lives lost in the war to 'bureaucratic breakdowns' and said the problems began because the US lacked a 'fundamental understanding' of Afghanistan.
He told government interviewers in 2015: 'What are we trying to do here? We didn't have the foggiest notion of what we were undertaking.
'If the American people knew the magnitude of this dysfunction ... 2,400 lives lost...'
Others interviewed by Sopko's teams described how information and research was skewed to make it appear as though the US had a good chance at victory when in fact it was highly unlikely.
Bob Crowley, an Army colonel who served as a senior counterinsurgency adviser to U.S. military commanders in 2013 and 2014, said: 'Every data point was altered to present the best picture possible.
'Surveys, for instance, were totally unreliable but reinforced that everything we were doing was right and we became a self-licking ice cream cone.'
He also claimed 'truth was rarely welcome' within the Combined Anti-Armor Team and that 'everyone' on the NATO-led International Security Assistance Force 'just wanted to hear good news.'
Among the major failures troops described was the exorbitant amount of money spent for little in return.They estimate that close to $938billion was wasted on the war.
'What did we get for this $1 trillion effort? Was it worth $1 trillion?
'After the killing of Osama bin Laden, I said that Osama was probably laughing in his watery grave considering how much we have spent on Afghanistan,' Jeffrey Eggers, a retired Navy SEAL who also worked in the White House for Bush and Obama, said in one interview with officials.
Special Inspector General for Afghanistan Reconstruction, known as SIGAR, was launched in 2008 to investigate the war effort for waste and fraud.
THE 'LIES' vs WHAT REALLY HAPPENED
'The history of military conflict in Afghanistan [has] been one of initial success, followed by long years of floundering and ultimate failure. We’re not going to repeat that mistake' - George W. Bush, April 2002
A year later, in 2003, Rumsfeld wrote this memo: 'I have no visibility into who the bad guys are. We are woefully deficient in human intelligence.'
'The days of providing a blank check are over. . . . It must be clear that Afghans will have to take responsibility for their security and that America has no interest in fighting an endless war in Afghanistan.' Barack Obama, December 2009
Later, one senior member of the military said in an interview: 'The effort was over-funded and lacked data to drive intelligence decision-making. We were burning $400million per month at one point. We lost objectivity. We were given money told to spend it, and we did, without reason.'
'This army and this police force have been very, very effective in combat against the insurgents every single day. And I think that’s an important story to be told across the board.' - Lt. Gen. Mark A. Milley, 2013
In 2016, looking back on the training efforts, one soldier said the Afghan Local Police were 'the bottom of the barrel in the country that is already at the bottom of the barrel'. Others accused them of doing drugs, stealing fuel from US tanks and only turning up for training to 'get a paycheck'
'Are we losing this war? Absolutely no way. Can the enemy win it? Absolutely no way,' Army Maj. Gen. Jeffrey Schloesser, commander of the 101st Airborne Division, in September 2008
In a 2015 interview about the conflict, Michael Flynn reflected on how success had been reported falsely since 2002. He said: 'From ambassadors down to the low level, they all say we are doing a great job. Really? So if we are doing such a great job, why does it feel like we're losing?'
It had a branch called Lessons Learned which was solely dedicated to identifying decision making failures that could be avoided in later conflicts.
As part of Lessons Learned, 600 interviews were conducted.
It, according to the Post, released reports periodically about its findings but left out the 'harshest' details.
At the beginning of the conflict, the report claims the clear objective of the war was to retaliate against al-Qaeda and prevent a similar atrocity to 9/11 from happening.
However, the military personnel say that as the years wore on, the mission became less clear.
Some officials started focusing on turning it into a democratic country, whereas others wanted to focus on elevating women's rights, the report claims.
One person interviewed by officials compared the conflict to a Christmas tree which, beneath it, had a 'present for everyone'.
'With the AfPak strategy there was a present under the Christmas tree for everyone.
'By the time you were finished you had so many priorities and aspirations it was like no strategy at all,' the unidentified interview said.
Others described how military bosses did not know who the good and bad guys were.
TIMELINE OF THE WAR IN AFGHANISTAN
2001: President George W. Bush announces strikes on Afghanistan in retaliation for harboring al-Qaeda terrorists blamed for the Sept. 11 attacks. By the end of the year, 3,800 US troops are on the ground.
US military death toll: 7
2002: The U.S. ends the year with about 9,700 troops deployed, mostly going after Taliban insurgents.
The Taliban, they say, is largely dismantled.
US military death toll: 30
2003: By the end of the year, 13,000 US troops are on the ground and efforts have focused to 'restructuring' Afghanistan. Tensions also flare in Iraq and the Defense Secretary says 'major combat' is over.
US military death toll: 33
2004: The number swells to 20,300 as the U.S. builds up forces along the Afghan-Pakistani border and provides security for fledgling reconstruction projects.
The country elects its first president democratically.
US military death toll: 49
2005: US and Afghanistan renew commitment to working together in the war on terror
US military death toll: 93
2006: Suicide bombings erupt as rebels stage an insurgence.
US military death toll: 88
2007: Mullah Dadullah, is killed in a joint operation by Afghan, U.S., and NATO forces
U S military death toll: 111
2008: The force in Afghanistan rises to 25,000. Still, Iraq is the priority.
US military death toll: 153
2009: As fighting in Afghanistan becomes more intense, the number of U.S. troops surpasses 50,000.
President Obama is sworn in, renews dedication to the conflict.
US military death toll: 310
2010: The bloodiest year for US troops in Afghanistan as the fighting continues with a resurgence from terrorists.
US military death toll: 496
2011: Osama Bin Laden is killed.
Obama announces his withdrawal plan: Bring home 10,000 troops by the end of 2011, and continue at a steady pace until handing over security responsibilities to the Afghans by 2014.
US military death toll: 412
2012: Troop levels down to 77,000
US military death toll: 301
2013: Down to 46,000 troops, the slow withdrawal continues.
US military death toll: 120
2014: Obama orders the Pentagon to develop options for a complete military withdrawal, because Afghan President Hamid Karzai refuses to sign a security agreement with the United States. Obama announces his plan to pull virtually all U.S. troops out of Afghanistan by the end of 2016.
US military death toll: 54
2015: Obama changes his mind, saying the situation is too fragile for a total withdrawal. 9,800 troops remain
US military death toll: 10
2016: Obama announces that instead of dropping the U.S. troop level to 5,500, he will keep it at about 8,400 through the end of his term on Jan. 20, 2017
US military death toll: 9
2017: Trump deploys more troops to the region
US military death toll: 11
2018: Taliban retaliates with violent attacks
US military death toll: 13
2019: Trump arranges peace talks with the Taliban but calls them off after the death of a US soldier.
US military death toll: 17
They had trouble differentiating to troops if they should focus on fighting al-Qaeda, the Taliban and other foreign jihadists.
Some said they did not know whether to treat Pakistan as an ally or foe.
One unnamed former adviser to an Army Special Forces team admitted not knowing who the 'bad guys' were, let alone where to find them.
'They thought I was going to come to them with a map to show them where the good guys and bad guys live. It took several conversations for them to understand that I did not have that information in my hands.
'At first, they just kept asking: "But who are the bad guys, where are they?"' he said.
Some of the names of people interviewed were redacted.
One of the key failures was the US's 'idiotic' attempt to try to establish a government in Kabul modeled after the one in Washington.
'Our policy was to create a strong central government which was idiotic because Afghanistan does not have a history of a strong central government.
'The time-frame for creating a strong central government is 100 years, which we didn’t have,' one unnamed official said.
The US had promised not to try to 'nation build' in public speeches from former presidents Bush and Obama.
However the interviews suggest that is exactly what was being attempted and it was attempted unsuccessfully.
Another failure was an excess of aid which overwhelmed the country and amounted to a huge waste in money.
'Capitol Hill was always asking, "Did you spend the money? What's your burn rate?"
That's all they ever cared about. The effort was overfunded and lacked data to drive intelligence decision-making. We were burning $400million per month at one point.
'We lost objectivity. We were given money told to spend it, and we did, without reason,' one unnamed person said in a 2016 interview.
One contractor said he was told to spend $3million a day in a district that was roughly the size of the average US county.
He said that he once asked a congressman whether he would be able to spend as much in his district.
'When the congressman, who was not named, answered: 'hell no', the contractor told him: 'Well, sir, that's what you just obligated us to spend and I'm doing it for communities that live in mud huts with no windows.'
Another unnamed interviewee shared his complaint.
Our strategy was, "Money expended equals success."
'I'd get the s**t kicked out of me at the height of the surge... "why did we say yes to spending money building a 38km road up... why can't you build this road and you said you could do it..."
 Why do you expect us to build a road to an area you can't secure.... we were supposed to build roads in an area so dangerous that armed US military helicopters could not even land near it,' he said.
Because so much money was being thrown at the conflict, corruption was inevitable, according to those interviewed, and the US 'looked the other way' while Afghanistan's leaders took advantage of it.
'I like to use a cancer analogy. Petty corruption is like skin cancer; there are ways to deal with it and you’ll probably be just fine.
'Corruption within the ministries, higher level, is like colon cancer; it’s worse, but if you catch it in time, you’re probably OK,'
Christopher Kolenda, who deployed several times, told investigators.
'Kleptocracy, however, is like brain cancer; it’s fatal,' he said, after describing how President Hamid Karzai and his deputies had 'self-organized into a kleptocracy' within the first five years of the effort.
THE DEATH TOLL
Some of those interviewed said US officials focused only on the number of American troops killed and that though high, it was not the worst-suffering category.
One official said the true measure of success in the region would have been if the number of Afghan casualties decreased.
US troops: 2,300
US contractors: 3,814
Afghan security forces: 64,124
NATO and coalition troops: 1,145
Taliban: 42,100
Afghan civilians: 43,074
AID workers: 424
Journalists: 67
As the Afghanistan government became increasingly corrupt, the interviewees claimed, more people turned to the Taliban for order.
'Our biggest single project, sadly and inadvertently, of course, may have been the development of mass corruption.
'Once it gets to the level I saw, when I was out there, it’s somewhere between unbelievably hard and outright impossible to fix it,' former U.S. ambassador Ryan Crocker said in a lengthy 2016 interview with investigators.
Another of the biggest lies, they said, was that the military was helping establish a strong, Afghan army.
In reality, the troops were disorganized, incompetent and uncommitted, they said.
The US soldiers sent to train them said they 'hated them' and claimed that one third of the Afghan police force they were told to help were 'drug addicts' or 'Taliban'.
'The ALP [Afghan Local Police] members were awful - the bottom of the barrel in the country that is already at the bottom of the barrel.
'Vast majority of ALPs didn't care and were just collecting a paycheck,' an unnamed soldier said in a September 2016 interview with Lessons Learned.
Another failure, they said, was their inability to halt the country's mass production of opium.
Under the nose of the US military, the Afghan drug trade flourished, the interviewees said.
Tackling the country's drug production was never part of the military strategy but the drug lords became more powerful than the government, they claimed.
The first strategy was for Brits to pay Afghan farmers to destroy their poppy crops but it only inspired them to plant more, the interviewees said. When the US went back to the farmers and told them to destroy the crops again, this time without payment, it enraged them.
What compounded this failed strategy, they complained, was a lack of communication between British and US forces.
The Pentagon has not commented on the release of the documents or on the allegations by troops or the Post that it deliberately lied about the situation.
THE PENTAGON PAPERS - 1971
After the Post's report became public on Monday, readers jumped to compare it to the release of the infamous Pentagon Papers of 1971 which revealed how the government lied to the public about the atrocities of the Vietnam war.
The papers were published by The New York Times, The Washington Post and The Boston Globe in a combined effort of journalism. They had obtained them from Daniel Ellsberg, a former military analyst who had grown tired of having his concerns about the conflict ignored by members of Congress.
The government tried relentlessly to block the papers' publication. It claimed that in sharing them with the public, newspapers were putting national security at risk.
After The New York Times published a series of stories about the information they contained, the government sought an injunction and the case went to the Supreme Court.
The 'papers' were a government report which had been commissioned four years before they were leaked to the press by the then Defense Secretary, Robert McNamara, and were intended to remain classified.
They laid bare how the US decided to go to war in Vietnam, why and what happened throughout its bloody, 20-year duration.
 Some 500,000 troops had been sent to fight and many were killed.
The papers contained explosive information spanning four presidencies including that the original goal of the war was not to aid South Vietnam but rather to 'contain China', and that President Truman helped France in its colonial war against Viet-Minh which put the US in the center of the conflict in the region.
It revealed how President Eisenhower intervened to prevent North Vietnam from imposing communism on the south of the country, and how President JFK pivoted the US's involvement from one of 'limited risk gamble' to broad commitment. The papers also revealed that President Johnson intended to wage overt war by 1964.
The publication of the papers damaged Nixon's re-election chances. He tried to discredit Ellsberg afterwards and his efforts were revealed as part of the Watergate Scandal, which eventually brought him down.
In July this year, nearly 50 years since the papers became public, the National Archive published them in full.
It wrote, in its announcement of them, that the original leaks were 'incomplete' and caused unnecessary problems.


Table of Contents
Language Modeling and RNNS I (Oxford)
Note: 25:00 (important problem not captured w/ newer models about smoothing and language distribution as Heaps law)
Introduction to and History of Language Models
-
Language Models:
A Language Model is a statistical model that computes a probability distribution over sequences of words.It is a time-series prediction problem in which we must be very careful to train on the past and test on the future.
-
- Applications:
-
- Machine Translation (MT):
- Word Ordering:
p(“the cat is small”) > p(“small the cat is”) - Word Choice:
p(“walking home after school”) > p(“walking house after school”)
- Word Ordering:
- Speech Recognition:
- Word Disambiguation:
p(“The listeners recognize speech”) > p(“The listeners wreck a nice beach”)
- Word Disambiguation:
- Information Retrieval:
- Used in query likelihood model
- Machine Translation (MT):
- Traditional Language Models:
- Most language models employ the chain rule to decompose the joint probability into a sequence of conditional probabilities:
$$\begin{array}{c}{P\left(w_{1}, w_{2}, w_{3}, \ldots, w_{N}\right)=} \\ {P\left(w_{1}\right) P\left(w_{2} | w_{1}\right) P\left(w_{3} | w_{1}, w_{2}\right) \times \ldots \times P\left(w_{N} | w_{1}, w_{2}, \ldots w_{N-1}\right)}\end{array}$$
Note that this decomposition is exact and allows us to model complex joint distributions by learning conditional distributions over the next word \((w_n)\) given the history of words observed \(\left(w_{1}, \dots, w_{n-1}\right)\).
Thus, the Goal of the LM-Task is to find good conditional distributions that we can multiply to get the Joint Distribution.Allows you to predict the first word, then the second word given the first word, then the third given the first two, etc..
- The Probability is usually conditioned on window of \(n\) previous words
- An incorrect but necessary Markovian assumption:
$$P(w_1, \ldots, w_m) = \prod_{i=1}^m P(w_i | w_1, \ldots, w_{i-1}) \approx \prod_{i=1}^m P(w_i | w_{i-(n-1)}, \ldots, w_{i-1})$$
- Only previous history matters
- Limited Memory: only last \(n-1\) words are included in history
E.g. \(2-\)gram LM (only looks at the previous word):
$$\begin{aligned} p\left(w_{1}, w_{2}, w_{3},\right.& \ldots &, w_{n} ) \\ &=p\left(w_{1}\right) p\left(w_{2} | w_{1}\right) p\left(w_{3} | w_{1}, w_{2}\right) \times \ldots \\ & \times p\left(w_{n} | w_{1}, w_{2}, \ldots w_{n-1}\right) \\ & \approx p\left(w_{1}\right) p\left(w_{2} | w_{1}\right) p\left(w_{3} | w_{2}\right) \times \ldots \times p\left(w_{n} | w_{n-1}\right) \end{aligned}$$
The conditioning context, \(w_{i-1}\), is called the history.
- An incorrect but necessary Markovian assumption:
- The MLE estimate for probabilities, compute for
- Bi-grams:
$$P(w_2 \| w_1) = \dfrac{\text{count}(w_1, w_2)}{\text{count}(w_1)}$$
- Tri-grams:
$$P(w_3 \| w_1, w_2) = \dfrac{\text{count}(w_1, w_2, w_3)}{\text{count}(w_1, w_2)}$$
- Bi-grams:
- Most language models employ the chain rule to decompose the joint probability into a sequence of conditional probabilities:
- Issues with the Traditional Approaches:
To improve performance we need to:- Keep higher n-gram counts
- Use Smoothing
- Use Backoff (trying n-gram, (n-1)-gram, (n-2)-grams, ect.)
When? If you never saw a 3-gram b4, try 2-gram, 1-gram etc.
However, - There are A LOT of n-grams
- \(\implies\) Gigantic RAM requirements
- NLP Tasks as LM Tasks:
Much of Natural Language Processing can be structured as (conditional) Language Modeling:- Translation:
$$p_{\mathrm{LM}}(\text { Les chiens aiment les os }\| \| \text { Dogs love bones) }$$
- QA:
$$p_{\mathrm{LM}}(\text { What do dogs love? }\| \| \text { bones } . | \beta)$$
- Dialog:
$$p_{\mathrm{LM}}(\text { How are you? }\| \| \text { Fine thanks. And you? } | \beta)$$
where \(\| \|\) means “concatenation”, and \(\beta\) is an observed data (e.g. news article) to be conditioned on.
- Translation:
-
Analyzing the LM Tasks:
The simple objective of modeling the next word given observed history contains much of the complexity of natural language understanding (NLU) (e.g. reasoning, intelligence, etc.).Consider predicting the extension of the utterance:
$$p(\cdot | \text { There she built a) }$$
The distribution of what word to predict right now is quite flat; you dont know where “there” is, you dont know who “she” is, you dont know what she would want to “build”.
However, With more context we are able to use our knowledge of both language and the world to heavily constrain the distribution over the next word.
$$p(\cdot | \color{red} {\text { Alice }} \text {went to the} \color{blue} {\text { beach. } } \color{blue} {\text {There}} \color{red} {\text { she}} \text { built a})$$
At this point your distributions getting very peaked about what could come next and the reason is because you understand language you understand that in the second utterance “she” is “Alice” and “There” is “Beach” so you’ve resolved those Co references and you can do that because you understand the syntactic structure of the first utterance; you understand we have a subject and object, where the verb phrase is, all of these things you do automatically and then, using the semantics that “at a beach you build things like sandcastles or boats” and so you can constrict your distribution.
If we can get a automatically trained machine to do that then we’ve come a long way to solving AI.
“The diversity of tasks the model is able to perform in a zero-shot setting suggests that high-capacity models trained to maximize the likelihood of a sufficiently varied text corpus begin to learn how to perform a surprising amount of tasks without the need for explicit supervision” - GPT 2
- Evaluating a Language Model | The Loss:
For a probabilistic model, it makes sense to evaluate how well the “learned” distribution matches the real distribution of the data (of real utterances). A good model assigns real utterances \(w_{1}^{N}\) from a language a high probability. This can be measured with Cross-Entropy:$$H\left(w_{1}^{N}\right)=-\frac{1}{N} \log _{2} p\left(w_{1}^{N}\right)$$
Why Cross-Entropy: It is a measure of how many bits are need to encode text with our model (bits you would need to represent the distribution).1
Commonly used for character-level.
Alternatively, people tend to use Perplexity:
$$\text { perplexity }\left(w_{1}^{N}\right)=2^{H\left(w_{1}^{N}\right)}$$
Why Perplexity: It is a measure of how surprised our model is on seeing each word.
If no surprise, the perplexity \(= 1\).
Commonly used for word-level.
-
Language Modeling Data:
Language modelling is a time series prediction problem in which we must be careful to train on the past and test on the future.
If the corpus is composed of articles, it is best to ensure the test data is drawn from a disjoint set of articles to the training data.Two popular data sets for language modeling evaluation are a preprocessed version of the Penn Treebank,1 and the Billion Word Corpus.2 Both are flawed:
- The PTB is very small and has been heavily processed. As such it is not representative of natural language.
- The Billion Word corpus was extracted by first randomly permuting sentences in news articles and then splitting into training and test sets. As such train and test sentences come from the same articles and overlap in time
The recently introduced WikiText datasets are a better option.
- Three Approaches to Parameterizing Language Models:
- Count-Based N-gram models: we approximate the history of observed words with just the previous \(n\) words.
They capture Multinomial distributions. - Neural N-gram models: embed the same fixed n-gram history in a continuous space and thus better capture correlations between histories.
Replace the Multinomial distributions with an FFN. - RNNs: drop the fixed n-gram history and compress the entire history in a fixed length vector, enabling long range correlations to be captured.
Replace the finite history, captured by the conditioning context \(w_{i-1}\), with an infinite history, captured by the (previous) hidden state \(h_{n-1}\) (but also \(w_{n=1})\).
- Count-Based N-gram models: we approximate the history of observed words with just the previous \(n\) words.
- Bias vs Variance in LM Approximations:
The main issue in language modeling is compressing the history (a string). This is useful beyond language modeling in classification and representation tasks.- With n-gram models we approximate the history with only the last n words
- With recurrent models (RNNs, next) we compress the unbounded history into a fixed sized vector
We can view this progression as the classic Bias vs. Variance tradeoff in ML:
- N-gram models: are biased but low variance.
No matter how much data (infinite) they will always be wrong/biased. - RNNs: decrease the bias considerably, hopefully at a small cost to variance.
Consider predicting the probability of a sentence by how many times you have seen it before. This is an unbiased estimator with (extremely) high variance.
- In the limit of infinite data, gives true distribution.
- Scaling Language Models (Large Vocabularies):
Bottleneck:
Much of the computational cost of a Neural LM is a function of the size of the vocabulary and is dominated by calculating the softmax:$$\hat{p}_{n}=\operatorname{softmax}\left(W h_{n}+b\right)$$
Solutions:
- Short-Lists: use the neural LM for the most frequent words, and a traditional n-gram LM for the rest.
While easy to implement, this nullifies the Neural LMs main advantage, i.e. generalization to rare events. - Batch local short-lists: approximate the full partition function for data instances from a segment for the data with a subset of vocabulary chosen for that segment.
- Approximate the gradient/change the objective: if we did not have to sum over the vocabulary to normalize during training, it would be much faster. It is tempting to consider maximizing likelihood by making the log partition function an independent parameter \(c\), but this leads to an ill defined objective:
$$\hat{p}_{n} \equiv \exp \left(W h_{n}+b\right) \times \exp (c)$$
What does the Softmax layer do?
The idea of the Softmax is to say: at each time step look at the word we want to predict and the whole vocab; where we try to maximize the probability of the word we want to predict and minimize the probability of ALL THE OTHER WORDS.So, The better solution is to try to approximate what the softmax does using:
- Noise Contrastive Estimation (NCE): this amounts to learning a binary classifier to distinguish data samples from \((k)\) samples from a noise distribution (a unigram is a good choice):
$$p\left(\text { Data }=1 | \hat{p}_{n}\right)=\frac{\hat{p}_{n}}{\hat{p}_{n}+k p_{\text { noise }}\left(w_{n}\right)}$$
Now parametrizing the log partition function as \(c\) does not degenerate. This is very effective for speeding up training but has no effect on testing.
- Importance Sampling (IS): similar to NCE but defines a multiclass classification problem between the true word and noise samples, with a Softmax and cross entropy loss.
- (more on) Approximating the Softmax
- Factorize the output vocabulary: the idea is to decompose the (one big) softmax into a series of softmaxes (2 in this case). We map words to a set of classes, then we, first, predict which class the word is in, and then we predict the right word from the words in that class.
One level factorization works well (Brown clustering is a good choice, frequency binning is not):$$p\left(w_{n} | \hat{p}_{n}^{\text { class }}, \hat{p}_{n}^{\text { word }}\right)=p\left(\operatorname{class}\left(w_{n}\right) | \hat{p}_{n}^{\text { class }}\right) \times p\left(w_{n} | \operatorname{class}\left(w_{n}\right), \hat{p}_ {n}^{\text { word }}\right)$$
where the function \(\text{ class}(\cdot)\) maps each word to one class. Assuming balanced classes, this gives a quadratic, \(\root{V}\) speedup.
Complexity Comparison of the different solutions:
- Short-Lists: use the neural LM for the most frequent words, and a traditional n-gram LM for the rest.
-
Sub-Word Level Language Models:
Could be viewed as an alternative to changing the softmax by changing the input granularity and model text at the morpheme or character level.
This results in a much smaller softmax and no unknown words, but the downsides are longer sequences and longer dependencies; moreover, a lot of the structure in a language is in the words and we want to learn correlations amongst the words but since the model doesn’t get the words as a unit, it will have to learn what/where a is before it can learn its correlation with other sequences; which effecitely means that we made the learning problem harder and more non-linear
This, also, allows the model to capture subword structure and morphology: e.g. “disunited” <-> “disinherited” <-> “disinterested”.
Character LMs lag behind word-based models in perplexity, but are clearly the future of language modeling. - Conditional Language Models:
A Conditional LM assigns probabilities to sequences of words given some conditioning context \(x\). It models “What is the probability of the next word, given the history of previously generated words AND conditioning context \(x\)?”.
The probability, decomposed w/ chain rule:$$p(\boldsymbol{w} | \boldsymbol{x})=\prod_{t=1}^{\ell} p\left(w_{t} | \boldsymbol{x}, w_{1}, w_{2}, \ldots, w_{t-1}\right)$$
Recurrent Neural Networks
-
- Recurrent Neural Networks:
- An RNN is a class of artificial neural network where connections between units form a directed cycle, allowing it to exhibit dynamic temporal behavior.
- The standard RNN is a nonlinear dynamical system that maps sequences to sequences.
-
- The Structure of an RNN:
- The RNN is parameterized with three weight matrices and three bias vectors:
- \[\theta = [W_{hx}, W_{hh}, W_{oh}, b_h, b_o, h_0]\]
- These parameter completely describe the RNN.
-
- The Algorithm:
- Given an input sequence \(\hat{x} = [x_1, \ldots, x_T]\), the RNN computes a sequence of hidden states \(h_1^T\) and a sequence of outputs \(y_1^T\) in the following way:
for \(t\) in \([1, ..., T]\) do
\(\:\:\:\:\:\:\:\) \(u_t \leftarrow W_{hx}x_t + W_{hh}h_{t-1} + b_h\)
\(\:\:\:\:\:\:\:\) \(h_t \leftarrow g_h(u_t)\)
\(\:\:\:\:\:\:\:\) \(o_t \leftarrow W_{oh}h_{t} + b_o\)
\(\:\:\:\:\:\:\:\) \(y_t \leftarrow g_y(o_t)\)
-
- The Loss:
- The loss of an RNN is commonly a sum of per-time losses:
- \[L(y, z) = \sum_{t=1}^TL(y_t, z_t)\]
-
- Language Modelling: We use the Cross Entropy Loss function but predicting words instead of classes
- \[J^{(t)}(\theta) = - \sum_{j=1}^{\vert V \vert} y_{t, j} \log \hat{y_{t, j}}\]
- \[\implies\]
- \[L(y,z) = J = -\dfrac{1}{T} \sum_{t=1}^{T} \sum_{j=1}^{\vert V \vert} y_{t, j} \log \hat{y_{t, j}}\]
- To Evaluate the model, we use Preplexity :
- \[2^J\]
-
Lower Preplexity is better
-
- Analyzing the Gradient:
- Assuming the following formulation of an RNN:
- \[h_t = Wf(h_{t-1}) + W^{(hx)}x_{[t]} \\ \hat{y_t} = W^{(S)}f(h_t)\]
-
- The Total Error is the sum of each error at each time step \(t\):
- \[\dfrac{\partial E}{\partial W} = \sum_{t=1}^{T} \dfrac{\partial E_t}{\partial W}\]
-
- The local Error at a time step \(t\):
- \[\dfrac{\partial E_t}{\partial W} = \sum_{k=1}^{t} \dfrac{\partial E_t}{\partial y_t} \dfrac{\partial y_t}{\partial h_t} \dfrac{\partial h_t}{\partial h_k} \dfrac{\partial h_k}{\partial W}\]
-
- To compute the local derivative we need to compute:
- \[\dfrac{\partial h_t}{\partial h_k}\]
- \[\begin{align} \dfrac{\partial h_t}{\partial h_k} &= \prod_{j=k+1}^t \dfrac{\partial h_j}{\partial h_{j-1}} \\ &= \prod_{j=k+1}^t J_{j, j-1} \end{align}\]
- \(\:\:\:\:\:\:\:\:\) where each \(J_{j, j-1}\) is the jacobina matrix of the partial derivatives of each respective
\(\:\:\:\:\:\:\:\:\) hidden layer.
-
- The Vanishing Gradient Problem:
-
- Analyzing the Norms of the Jacobians of each partial:
- \[\| \dfrac{\partial h_j}{\partial h_{j-1}} \| \leq \| W^T \| \cdot \| \text{ diag}[f'(h_{j-1})] \| \leq \beta_W \beta_h\]
- \(\:\:\:\:\:\:\:\) where we defined the \(\beta\)s as upper bounds of the norms.
-
- The Gradient is the product of these Jacobian Matrices (each associated with a step in the forward computation):
- \[\| \dfrac{\partial h_t}{\partial h_k} \| = \| \prod_{j=k+1}^t \dfrac{\partial h_j}{\partial h_{j-1}} \| \leq (\beta_W \beta_h)^{t-k}\]
-
- Conclusion:
Now, as the exponential \((t-k) \rightarrow \infty\):- If \((\beta_W \beta_h) < 1\):
\((\beta_W \beta_h)^{t-k} \rightarrow 0\).
known as Vanishing Gradient. - If \((\beta_W \beta_h) > 1\):
\((\beta_W \beta_h)^{t-k} \rightarrow \infty\).
known as Exploding Gradient.
- If \((\beta_W \beta_h) < 1\):
- Conclusion:
- As the bound can become very small or very large quickly, the locality assumption of gradient descent breaks down.

- Backpropagation Through Time:
- We can think of the recurrent net as a layered, feed-forward net with shared weights and then train the feed-forward net with (linear) weight constraints.
- We can also think of this training algorithm in the time domain:
- The forward pass builds up a stack of the activities of all the units at each time step
- The backward pass peels activities off the stack to compute the error derivatives at each time step
- After the backward pass we add together the derivatives at all the different times for each weight.
Complexity:
Linear in the length of the longest sequence.
Minibatching can be inefficient as the sequences in a batch may have different lengths.Can be alleviated w/ padding.
-
Truncated BPTT:
Same as BPTT, but tries to avoid the problem of long sequences as inputs. It does that by “breaking” the gradient flow every nth time-step (if input is article, then n could be average length of a sentence), thus, avoiding problems of (1) Memory (2) Exploding Gradient.Downsides:
If there are dependencies between the segments where BPTT was truncated they will not be learned because the gradient doesn’t flow back to teach the hidden representation about what information was useful.Complexity:
Constant in the truncation length \(T\).
Minibatching is efficient as all sequences have length \(T\).Notes:
- In TBPTT, we Forward Propagate through-the-break/between-segments normally (through the entire comp-graph). Only the back-propagation is truncated.
- Mini-batching on a GPU is an effective way of speeding up big matrix vector products 2. RNNLMs have two such products that dominate their computation: the recurrent matrix \(V\) and the softmax matrix \(W\).
LSTMS:
- The core of the history/memory is captured in the cell-state \(c_{n}\) instead of the hidden state \(h_{n}\).
- (&) Key Idea: The update to the cell-state \(c_{n}=c_{n-1}+\operatorname{tanh}\left(V\left[w_{n-1} ; h_{n-1}\right]+b_{c}\right)\) here are additive. (differentiating a sum gives the identity) Making the gradient flow nicely through the sum. As opposed to the multiplicative updates to \(h_n\) in vanilla RNNs.
There is non-linear funcs applied to the history/context cell-state. It is composed of linear functions. Thus, avoids gradient shrinking.
- In the recurrency of the LSTM the activation function is the identity function with a derivative of 1.0. So, the backpropagated gradient neither vanishes or explodes when passing through, but remains constant.
- By the selective read, write and forget mechanism (using the gating architecture) of LSTM, there exist at least one path, through which gradient can flow effectively from \(L\) to \(\theta\). Hence no vanishing gradient.
- However, one must remember that, this is not the case for exploding gradient. It can be proved that, there can exist at-least one path, thorough which gradient can explode.
- LSTM decouples cell state (typically denoted by c) and hidden layer/output (typically denoted by h), and only do additive updates to c, which makes memories in c more stable. Thus the gradient flows through c is kept and hard to vanish (therefore the overall gradient is hard to vanish). However, other paths may cause gradient explosion.
- The Vanishing gradient solution for LSTM is known as Constant Error Carousel.
- Why can RNNs with LSTM units also suffer from “exploding gradients”?
- LSTMs (Lec Oxford)
Important Links:
The unreasonable effectiveness of Character-level Language Models
character-level language model with a Vanilla Recurrent Neural Network, in Python/numpy
Visualizing and Understanding Recurrent Networks - Karpathy Lec
Cool LSTM Diagrams - blog
Illustrated Guide to Recurrent Neural Networks: Understanding the Intuition
Code LSTM in Python
Mikolov Thesis: STATISTICAL LANGUAGE MODELS BASED ON NEURAL NETWORKS
RNNs Extra!
-
- Vanishing/Exploding Gradients:
-
- Exploding Gradients:
- Truncated BPTT
- Clip gradients at threshold
- RMSprop to adjust learning rate
- Vanishing Gradient:
- Harder to detect
- Weight initialization
- ReLu activation functions
- RMSprop
- LSTM, GRUs
- Exploding Gradients:
-
- Applications:
-
- NER
- Entity Level Sentiment in context
- Opinionated Expressions
-
- Bidirectional RNNs:
-
- Motivation:
For classification we need to incorporate information from words both preceding and following the word being processed
- Motivation:
- \(\:\:\:\:\) Here \(h = [\overrightarrow{h};\overleftarrow{h}]\) represents (summarizes) the past and the future around a single token.
-
- Deep Bidirectional RNNs:
- \(\:\:\:\:\:\) Each memory layer passes an intermediate sequential representation to the next.
-
- Math to Code:
- The Parameters: \(\{W_{hx}, W_{hh}, W_{oh} ; b_h, b_o, h_o\}\)
- \[\begin{align} h_t &= \phi(W_{hx}x_t + W_{hh}h_{t-1} + b_h) \\ h_t &= \phi(\begin{bmatrix} W_{hx} & ; & W_{hh} \end{bmatrix} \begin{bmatrix} x_t \\ ; \\ h_{t-1} \end{bmatrix} + b_h) \end{align}\]
- \[y_t = \phi'(W_{oh}h_t + b_o)\]
-
- Initial States:
-
- Specifying the Initial States:
-
- Teaching Signals:
-
- Vanishing/Exploding Gradients:
-
- Exploding Gradients:
- Truncated BPTT
- Clip gradients at threshold
- RMSprop to adjust learning rate
- Vanishing Gradient:
- Harder to detect
- Weight initialization
- ReLu activation functions
- RMSprop
- LSTM, GRUs
- Exploding Gradients:
-
- Rectifying the Vanishing/Exploding Gradient Problem:
-
- Linearity of BackProp:
- The derivative update are also Correlated which is bad for SGD.
-
the problem of assigning a probability to a string and text compression is exactly the same problem so if you have a good language model you also have a good text compression algorithm and both we think of it in terms of the number of bits we can compress our sequence into. ↩
-
By making them Matrix-Matrix products instead. ↩


This is for myself only
OR myself and my partner
?
NZ Superannuation eligibility
Married, civil union or de facto couple: both partners qualify
Married, civil union or de facto couple: one partner qualifies and the other
is
included
Married, civil union or de facto couple: one partner qualifies and the other
is not
included
neither
are eligible for NZ Superannuation
Your birth date:
Your desired retirement age:
Your partner’s birth date:
Your partner’s desired retirement age:
?
Annual amount desired in retirement:
?
Annual income earned by last person to retireafter first person has retired:
?
Additional annual income received in retirement:
?
Current savings:
?
Interest rate:
show results
In order to
retire at ages
65/62
and live on
$75,000
per year
You will need
to save a lump sum of
$884,427
IT WILL TAKE
16
years to save the lump sum
AND YOU’LL NEED TO SAVE
$15,510
per year
$1,292
per month
$298
per week
SHOW ME HOW TO GET THERE


Welcome to Gambo (super market)
Your shopping cart is empty!
If you already have an account with us, please login at the login page.
Powered By 8-bit Developers


The Bignum extensions add the following features to the Javascript language while being 100% backward compatible:
BigFloat
) in base 2 using the IEEE 754 semantics.
BigDecimal
) in base 10 based on the proposal available at
https://github.com/littledan/proposal-bigdecimal.
math
mode: arbitrarily large integers and floating point numbers are available by default. The integer division and power can be overloaded for example to return a fraction. The modulo operator (%
) is defined as the Euclidian
remainder. ^
is an alias to the power operator
(**
). ^^
is used as the exclusive or operator.
The extensions are independent from each other except the math
mode which relies on BigFloat and operator overloading.
Operator overloading is inspired from the proposal available at
https://github.com/tc39/proposal-operator-overloading/. It
implements the same dispatch logic but finds the operator sets by
looking at the Symbol.operatorSet
property in the objects. The
changes were done in order to simplify the implementation.
More precisely, the following modifications were made:
with operators from
is not supported. Operator overloading is always enabled.
[[OperatorSet]]
field in all instances. Instead, a dynamic lookup of the Symbol.operatorSet
property is done. This property is typically added in the prototype of each object.
Operators.create(...dictionaries)
is used to create a new OperatorSet object. The Operators
function is supported as an helper to be closer to the TC39 proposal.
[]
cannot be overloaded.
Operators.updateBigIntOperators(dictionary)
.
A few properties are added to the BigInt object:
tdiv(a, b)
Return trunc(a/b). b = 0
raises a RangeError
exception.
fdiv(a, b)
Return \lfloor a/b \rfloor. b = 0
raises a RangeError
exception.
cdiv(a, b)
Return \lceil a/b \rceil. b = 0
raises a RangeError
exception.
ediv(a, b)
Return sgn(b) \lfloor a/{|b|} \rfloor (Euclidian
division). b = 0
raises a RangeError exception.
tdivrem(a, b)
fdivrem(a, b)
cdivrem(a, b)
edivrem(a, b)
Return an array of two elements. The first element is the quotient, the second is the remainder. The same rounding is done as the corresponding division operation.
sqrt(a)
Return \lfloor \sqrt(a) \rfloor. A RangeError exception is raised if a < 0.
sqrtrem(a)
Return an array of two elements. The first element is \lfloor \sqrt{a} \rfloor. The second element is a-\lfloor \sqrt{a} \rfloor^2. A RangeError exception is raised if a < 0.
floorLog2(a)
Return -1 if a \leq 0 otherwise return \lfloor \log2(a) \rfloor.
ctz(a)
Return the number of trailing zeros in the two’s complement binary representation of a. Return -1 if a=0.
This extension adds the BigFloat
primitive type. The
BigFloat
type represents floating point numbers in base 2
with the IEEE 754 semantics. A floating
point number is represented as a sign, mantissa and exponent. The
special values NaN
, +/-Infinity
, +0
and -0
are supported. The mantissa and exponent can have any bit length with
an implementation specific minimum and maximum.
Each floating point operation operates with infinite precision and
then rounds the result according to the specified floating point
environment (BigFloatEnv
object). The status flags of the
environment are also set according to the result of the operation.
If no floating point environment is provided, the global floating point environment is used.
The rounding mode of the global floating point environment is always
RNDN
(“round to nearest with ties to even”)1. The status flags of the global environment cannot be
read2. The precision of the global environment is
BigFloatEnv.prec
. The number of exponent bits of the global
environment is BigFloatEnv.expBits
. The global environment
subnormal flag is set to true
.
For example, prec = 53
and expBits = 11
exactly give
the same precision as the IEEE 754 64 bit floating point format. The
default precision is prec = 113
and expBits = 15
(IEEE
754 128 bit floating point format).
The global floating point environment can only be modified temporarily
when calling a function (see BigFloatEnv.setPrec
). Hence a
function can change the global floating point environment for its
callees but not for its caller.
The builtin operators are extended so that a BigFloat is returned if at least one operand is a BigFloat. The computations are always done with infinite precision and rounded according to the global floating point environment.
typeof
applied on a BigFloat
returns bigfloat
.
BigFloat can be compared with all the other numeric types and the result follows the expected mathematical relations.
However, since BigFloat and Number are different types they are never
equal when using the strict comparison operators (e.g. 0.0 ===
0.0l
is false).
BigFloat literals are floating point numbers with a trailing l
suffix. BigFloat literals have an infinite precision. They are rounded
according to the global floating point environment when they are
evaluated.3
BigFloat
functionThe BigFloat
function cannot be invoked as a constructor. When
invoked as a function: the parameter is converted to a primitive
type. If the result is a numeric type, it is converted to BigFloat
without rounding. If the result is a string, it is converted to
BigFloat using the precision of the global floating point environment.
BigFloat
properties:
LN2
PI
Getter. Return the value of the corresponding mathematical constant rounded to nearest, ties to even with the current global precision. The constant values are cached for small precisions.
MIN_VALUE
MAX_VALUE
EPSILON
Getter. Return the minimum, maximum and epsilon BigFloat
values
(same definition as the corresponding Number
constants).
fpRound(a[, e])
Round the floating point number a
according to the floating
point environment e
or the global environment if e
is
undefined.
parseFloat(a[, radix[, e]])
Parse the string a
as a floating point number in radix
radix
. The radix is 0 (default) or from 2 to 36. The radix 0
means radix 10 unless there is a hexadecimal or binary prefix. The
result is rounded according to the floating point environment e
or the global environment if e
is undefined.
isFinite(a)
Return true if a
is a finite bigfloat.
isNaN(a)
Return true if a
is a NaN bigfloat.
add(a, b[, e])
sub(a, b[, e])
mul(a, b[, e])
div(a, b[, e])
Perform the specified floating point operation and round the floating
point number a
according to the floating point environment
e
or the global environment if e
is undefined. If
e
is specified, the floating point status flags are updated.
floor(x)
ceil(x)
round(x)
trunc(x)
Round to an integer. No additional rounding is performed.
abs(x)
Return the absolute value of x. No additional rounding is performed.
fmod(x, y[, e])
remainder(x, y[, e])
Floating point remainder. The quotient is truncated to zero (fmod) or
to the nearest integer with ties to even (remainder). e
is an
optional floating point environment.
sqrt(x[, e])
Square root. Return a rounded floating point number. e
is an
optional floating point environment.
sin(x[, e])
cos(x[, e])
tan(x[, e])
asin(x[, e])
acos(x[, e])
atan(x[, e])
atan2(x, y[, e])
exp(x[, e])
log(x[, e])
pow(x, y[, e])
Transcendental operations. Return a rounded floating point
number. e
is an optional floating point environment.
BigFloat.prototype
The following properties are modified:
valueOf()
Return the bigfloat primitive value corresponding to this
.
toString(radix)
For floating point numbers:
The exponent letter is e
for base 10, p
for bases 2, 8,
16 with a binary exponent and @
for the other bases.
toPrecision(p, rnd_mode = BigFloatEnv.RNDNA, radix = 10)
toFixed(p, rnd_mode = BigFloatEnv.RNDNA, radix = 10)
toExponential(p, rnd_mode = BigFloatEnv.RNDNA, radix = 10)
Same semantics as the corresponding Number
functions with
BigFloats. There is no limit on the accepted precision p
. The
rounding mode and radix can be optionally specified. The radix must be
between 2 and 36.
BigFloatEnv
constructorThe BigFloatEnv([p, [,rndMode]]
constructor cannot be invoked as a
function. The floating point environment contains:
BigFloatEnv.prototype.clearStatus()
or with the various status flag setters.
new BigFloatEnv([p, [,rndMode]]
creates a new floating point
environment. The status flags are reset. If no parameter is given the
precision, exponent bits and subnormal flags are copied from the
global floating point environment. Otherwise, the precision is set to
p
, the number of exponent bits is set to expBitsMax
and the
subnormal flags is set to false
. If rndMode
is
undefined
, the rounding mode is set to RNDN
.
BigFloatEnv
properties:
prec
Getter. Return the precision in bits of the global floating point
environment. The initial value is 113
.
expBits
Getter. Return the exponent size in bits of the global floating point
environment assuming an IEEE 754 representation. The initial value is
15
.
setPrec(f, p[, e])
Set the precision of the global floating point environment to p
and the exponent size to e
then call the function
f
. Then the Float precision and exponent size are reset to
their precious value and the return value of f
is returned (or
an exception is raised if f
raised an exception). If e
is undefined
it is set to BigFloatEnv.expBitsMax
.
precMin
Read-only integer. Return the minimum allowed precision. Must be at least 2.
precMax
Read-only integer. Return the maximum allowed precision. Must be at least 113.
expBitsMin
Read-only integer. Return the minimum allowed exponent size in bits. Must be at least 3.
expBitsMax
Read-only integer. Return the maximum allowed exponent size in bits. Must be at least 15.
RNDN
Read-only integer. Round to nearest, with ties to even rounding mode.
RNDZ
Read-only integer. Round to zero rounding mode.
RNDD
Read-only integer. Round to -Infinity rounding mode.
RNDU
Read-only integer. Round to +Infinity rounding mode.
RNDNA
Read-only integer. Round to nearest, with ties away from zero rounding mode.
RNDA
Read-only integer. Round away from zero rounding mode.
RNDF4
Read-only integer. Faithful rounding mode. The result is non-deterministically rounded to -Infinity or +Infinity. This rounding mode usually gives a faster and deterministic running time for the floating point operations.
BigFloatEnv.prototype
properties:
prec
Getter and setter (Integer). Return or set the precision in bits.
expBits
Getter and setter (Integer). Return or set the exponent size in bits assuming an IEEE 754 representation.
rndMode
Getter and setter (Integer). Return or set the rounding mode.
subnormal
Getter and setter (Boolean). subnormal flag. It is false when
expBits = expBitsMax
.
clearStatus()
Clear the status flags.
invalidOperation
divideByZero
overflow
underflow
inexact
Getter and setter (Boolean). Status flags.
This extension adds the BigDecimal
primitive type. The
BigDecimal
type represents floating point numbers in base
10. It is inspired from the proposal available at
https://github.com/littledan/proposal-bigdecimal.
The BigDecimal
floating point numbers are always normalized and
finite. There is no concept of -0
, Infinity
or
NaN
. By default, all the computations are done with infinite
precision.
The following builtin operators support BigDecimal:
+
-
*
Both operands must be BigDecimal. The result is computed with infinite precision.
%
Both operands must be BigDecimal. The result is computed with infinite precision. A range error is throws in case of division by zero.
/
Both operands must be BigDecimal. A range error is throws in case of
division by zero or if the result cannot be represented with infinite
precision (use BigDecimal.div
to specify the rounding).
**
Both operands must be BigDecimal. The exponent must be a positive integer. The result is computed with infinite precision.
===
When one of the operand is a BigDecimal, return true if both operands are a BigDecimal and if they are equal.
==
!=
<=
>=
<
>
Numerical comparison. When one of the operand is not a BigDecimal, it is converted to BigDecimal by using ToString(). Hence comparisons between Number and BigDecimal do not use the exact mathematical value of the Number value.
BigDecimal literals are decimal floating point numbers with a trailing
m
suffix.
BigDecimal
function.It returns 0m
if no parameter is provided. Otherwise the first
parameter is converted to a bigdecimal by using ToString(). Hence
Number values are not converted to their exact numerical value as
BigDecimal.
BigDecimal
objectadd(a, b[, e])
sub(a, b[, e])
mul(a, b[, e])
div(a, b[, e])
mod(a, b[, e])
sqrt(a, e)
round(a, e)
Perform the specified floating point operation and round the floating
point result according to the rounding object e
. If the
rounding object is not present, the operation is executed with
infinite precision.
For div
, a RangeError
exception is thrown in case of
division by zero or if the result cannot be represented with infinite
precision if no rounding object is present.
For sqrt
, a range error is thrown if a
is less than
zero.
The rounding object must contain the following properties:
roundingMode
is a string specifying the rounding mode
("floor"
, "ceiling"
, "down"
, "up"
,
"half-even"
, "half-up"
). Either
maximumSignificantDigits
or maximumFractionDigits
must
be present to specify respectively the number of significant digits
(must be >= 1) or the number of digits after the decimal point (must
be >= 0).
BigDecimal.prototype
objectvalueOf()
Return the bigdecimal primitive value corresponding to this
.
toString()
Convert this
to a string with infinite precision in base 10.
toPrecision(p, rnd_mode = "half-up")
toFixed(p, rnd_mode = "half-up")
toExponential(p, rnd_mode = "half-up")
Convert the BigDecimal this
to string with the specified
precision p
. There is no limit on the accepted precision
p
. The rounding mode can be optionally
specified. toPrecision
outputs either in decimal fixed notation
or in decimal exponential notation with a p
digits of
precision. toExponential
outputs in decimal exponential
notation with p
digits after the decimal point. toFixed
outputs in decimal notation with p
digits after the decimal
point.
A new math mode is enabled with the "use math"
directive. It propagates the same way as the strict mode. It is
designed so that arbitrarily large integers and floating point numbers
are available by default. In order to minimize the number of changes
in the Javascript semantics, integers are represented either as Number
or BigInt depending on their magnitude. Floating point numbers are
always represented as BigFloat.
The following changes are made to the Javascript semantics:
BigFloat
by default (i.e. a l
suffix is implied). Hence typeof 1.0 === "bigfloat"
.
n
suffix are BigInt
if their value cannot be represented as a safe integer. A safe integer is defined as a integer whose absolute value is smaller or equal to 2**53-1
. Hence typeof 1 === "number "
, typeof 1n === "number"
but typeof<PHONE_NUMBER>740992 === "bigint"
.
^
operator is an alias to the power operator (**
).
^
and **
) grammar is modified so that -2^2
is allowed and yields -4
.
^^
operator.
%
) returns the Euclidian remainder (always positive) instead of the truncated remainder.
Operators.updateBigIntOperators(dictionary)
.
Operators.updateBigIntOperators(dictionary)
.
The rationale is that the rounding mode changes must always be explicit.
The rationale is to avoid side effects for the built-in operators.
Base 10 floating point literals cannot usually be exactly represented as base 2 floating point number. In order to ensure that the literal is represented accurately with the current precision, it must be evaluated at runtime.
Could be removed in case a deterministic behavior for floating point operations is required.


Introduction¶
Learning a Bayesian network can be split into two problems which are both implemented in this package:
Structure learning: Given a set of data samples, estimate a DAG that captures the dependencies between the variables.
Parameter learning: Given a set of data samples and a DAG that captures the dependencies between the variables, estimate the (conditional) probability distributions of the individual variables.
- The library supports Parameter learning for discrete nodes:
Maximum Likelihood Estimation
Bayesian Estimation
- Structure learning for discrete, fully observed networks:
Score-based structure estimation (BIC/BDeu/K2 score; exhaustive search, hill climb/tabu search)
Constraint-based structure estimation (PC)
Hybrid structure estimation (MMHC)
The following functions are available after importing bnlearn:
Structure learning
Parameter learning
Inference
Sampling
Plot
comparing two networks
loading bif files
conversion of directed to undirected graphs


Voting Absentee in South Carolina
Written By: Tremain Prioleau II
October 5, 2020
Image source: ramseycounty
With the Coronavirus pandemic changing life for everyone this year, true concerns were made about the dangers to voter's health in the general election. Because of this, voting by mail has become a popular choice among American's looking to
participate in the democratic process while also keeping safe from COVID. The State of South Carolina is no different in this cause as it has allowed all South Carolina voters to vote by mail this year.
There are a few important things to understand as a South Carolina voter about the process of voting by mail or "absentee voting". The main areas to focus on are the laws that allowed this change, the past requirements that have been waived,
and the process of receiving a ballot in the mail.
3 Important Things to Know
All South Carolina voters can vote by mail in 2020 because of the waived restrictions by the state government. When requesting a ballot, S.C. voters should select “State of Emergency” as their excuse. There is not “no excuse absentee
voting” in S.C. so it is important that voters select “state of emergency” because it refers to the ongoing pandemic.
Voters can print out an absentee ballot application by visiting their county website or they can email or call their local county voter registration office and get a ballot mailed to them that way. Ballots will be sent out to voters
starting at the beginning of October. Applications must be returned to county registration offices by 5 p.m on October 24th.
The past requirement of needing a witness signature has been waived for S.C. voters. However, this requirement has gone back and forth within state courts so it is important that voters either check on the status of witness signatures or
they get a signature anyway in order to be safe.


Starts a graphical console that lets you monitor and manage Java applications.
jconsole [ options ] [ connection ... ]
The command-line options. See Options.
The pid
value is the process ID of a local Java Virtual Machine (JVM). The JVM must be running with the same user ID as the user ID running the jconsole
command.The host:port
values are the name of the host system on which the JVM is running, and the port number specified by the system property com.sun.management.jmxremote.port
when the JVM was started.The jmxUrl
value is the address of the JMX agent to be connected to as described in JMXServiceURL.
For more information about the connection
parameter, see Monitoring and Management Using JMX Technology at
http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
See also the JMXServiceURL
class description at
http://docs.oracle.com/javase/8/docs/api/javax/management/remote/JMXServiceURL.html
The jconsole
command starts a graphical console tool that lets you monitor and manage Java applications and virtual machines on a local or remote machine.
On Windows, the jconsole
command does not associate with a console window. It does, however, display a dialog box with error information when the jconsole
command fails.
Sets the update interval to n seconds (default is 4 seconds).
Does not tile windows initially (for two or more connections).
Specifies a list of directories or JAR files to be searched for JConsole
plug-ins. The plugins path should contain a provider-configuration file named META-INF/services/com.sun.tools.jconsole.JConsolePlugin
that contains one line for each plug-in. The line specifies the fully qualified class name of the class implementing the com.sun.tools.jconsole.JConsolePlugin
class.
Displays release information and exits.
Displays a help message.
Passes flag
to the JVM on which the jconsole
command is run.
Using JConsole at
http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html
Monitoring and Management Using JMX Technology at
http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
The JMXServiceURL
class description at
http://docs.oracle.com/javase/8/docs/api/javax/management/remote/JMXServiceURL.html


Reeborg’s World uses Python’s exceptions (and the Javascript equivalent) a lot.
Try running the following program:
raise ReeborgError("Surprise!")
You should see something like this:
Raising an exception is another way to control the flow of a program, although a rather abrupt one. If one expect an exception to be raised, the following pattern is usually used:
try:
# code that may
# raise an exception of one type ...
# or possibly different types
except ExceptionName1:
# deal with it
except ExceptionName2:
# deal with this other exception
finally:
# do this at the end
# no matter if we recognized the
# right type of exception.
You might want to try the example illustrated below. To select the maze shown so that you can try things out, you need to make sure you have the Documentation menu loaded and select “Big maze”.
In the above, we import the randint function from Python’s random module; this allow us to obtain a randomly selected integer each time we go through the while loop. We set RUR.MAX_STEPS to a value of 10,000; this variable controls the maximum number of instructions that can be executed in a given program; by default, it is set to 1000 but this would likely not be enough to go through the entire program.
move() instructions can trigger a ReeborgError exception if a wall is in the way; however, turn_left() instructions can never trigger an exception.
Other exceptions that ReeborgError might be raised by user’s programs. For example, the program:
move()
Mov()
will raise a NameError, since Mov is an unknown command. The program:
move()
move()
will raise an IndentationError. The program:
move)
will raise a SyntaxError; etc.


Because of the ongoing Covid-19 pandemic, the decision has been taken to cancel the Barns Green Half Marathon and 10k races this year
The Barns Green Half Marathon and 10k races will return next year and the races will take place on Sunday 26th September 2021
There will be entertainment for all the family and ample car parking. Before the races start, why not watch the runners’ warm-up to a musical routine.
There will be a funfair and ice cream van for the children. In the food area there will be fish and chips, hot dogs and burgers plus teas and cakes. If you wish to dine alfresco then why not bring a picnic and enjoy the atmosphere.
Local outlets include the Queen’s Head pub for fine ales and food, Barns Green Village Store for your Sunday papers and sundries and Sumners Pond Camping and Fishery for refreshments and lunches and the Sports and Social Club on the Village Green where drinks can be purchased.
To top it all off there will be six bands playing on the course for the runners and three bands on the Village Green.
We hope you are able to join us, whether you are a runner or supporter, and enjoy your day at the “races”!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Molestias, expedita, saepe, vero rerum deleniti beatae veniam harum neque nemo praesentium cum alias asperiores commodi.


Unemployment insurance and cigarette smoking
Wei Fu and Feng Liu, Journal of Health Economics, vol 63, (Jan 2019): 34-51
[Published Version]
[Abstract] We provide evidence for the causal relationship between unemployment insurance (UI) and individuals’ smoking behavior using the 1995–2011 Current Population Survey-Tobacco Use Supplement data. Our identification relies on the exploitation of the exogenous variations of the maximum UI weekly benefits across states and over years. Instead of focusing on all unemployed people, we concentrate on those who are eligible for UI benefits. We find that when the maximum UI weekly benefit level increases by $100, smoking cessation increases by approximately 2.9 percentage points among the UI-eligible unemployed. The results are robust to various model specifications. We also explore the mechanism and find suggestive evidence that the increase in the maximum UI weekly benefit leads to a decrease in the probability of over-work of the respective spouse. Moreover, the unemployed who are less educated are more responsive to the increasing UI benefits.
Other Publications in Chinese Peer Reviewd Journals
Land Transfer Right, Rural-to-Urban Migration and Agricultural Production.
(土地承包经营权流转、劳动力流动与农业生产)
Yuanyuan Chen and Wei Fu, Management World(管理世界), Nov, 2017
Purchased by Government or Provided by Family? Estimating the Substitution Effects of Informal Care.
(政府购买还是家庭照料? 基于家庭照料替代效应的实证分析)
Wei Fu and Feng Huang, Nankai Economic Studies (南开经济研究), 2017
Ecological Footprint Analysis of the China’s International Trade.
(中国进出口贸易内涵自然资本的生态足迹分析)
Wei Fu and Zhaohua Li, China Industrial Economics (中国工业经济), 2013


Located in a peaceful bungalow outside of Lake Geneva, Wisconsin.
Retreat from the desk, return refreshed.
Have the work week you always dreamed of - without the bad wifi.
12 private rooms with ensuite bathrooms, 2 group meeting rooms, and 4 breakout rooms.
Private chef tema providing on demand meals - just like your team kitchen.
5 outdoor obstacle courses, including private beach ½ mile from bungalow.
Retreat facilitator to manage your day to day activities so you all get a chance to reset.
Dedicated computer room for times that you must wifi.
Be a better team in 5 days, like these.
LaCrue Bottling Co.
October 2018
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ex iusto repellat modi nam praesentium facere consectetur ad obcaecati, voluptates eius dicta molestias libero ratione quam at pariatur tempore perspiciatis voluptatum quisquam distinctio.


Stretching pyglet's Wings
I'm excited to be giving a talk at PyCon UK next weekend about creating OpenGL programs in Python, using the graphics and games library pyglet. I'm still working feverishly on the presentation. This post is to be a permanent URL for the content, downloadable demos and YOUR comments, once PyCon is over.
See y'all there.
Update v1.0: The presentation slides are online, as is the demo source code.
Update v1.1: Fixed a bug using batches of vertex lists. (they don't work with triangle fans, and they need a duplicated first and last vertex in each list to delineate primitives.) Rendering speed is still awful using graphics.draw, vertex_lists and batches though. I'm chasing that up next.
Update v1.2: Fixed some of the performance problems, demo 6's batches of vertex lists are now the fastest way to render, which is the expected result. Still curious why calls to pyglet.graphics.draw() are slower than pyglet.gl.glvertex() though.
Update v1.3: Added demo 9 which creates a maze with ghosts wandering within it. The entire maze is rendered in a single batch.draw() call. Innumerable other improvements throughout.


Centralize REDI
Available REDI endpoints
Selection
Name
Base Context
SPARQL
Status
Delete
Centralize
Update
Register a new Endpoint
Name
Base URL


Trouble signing in? Reset your password by sending a text to your phone or email Password expired? Simply sign in with your last known password here


FIFA 18 Players
Top 100 Player's Name, Age, Country, Potential information
🔽 Download
Maine Wild Berries Production
The annual data of Maine's Wild Berries production.
🔽 Download
Women Participation in Research Organizations
ℹ
Research funding organisations: Presidents and members of the highest decision-making body.
🔽 Download
City e-bikes
Bu veri setinde, dört durak arasındaki bisiklet kullanımının süre verisi bulunmaktadır.
🔽 Download
Forest Areas
Forest Area of Selected Countries Between 1990-2018
🔽 Download
Research Budgets
Research Budgets of Selected Countries with GDP ratios.
🔽 Download
Global Plastic Production
World-wide Total Global Plastic Production through the years
🔽 Download
MIT- Atlas
Visualize, understand, and interact with the latest international trade data.
▶Visit
Resource Watch
Monitoring the Planet’s Pulse: Resource Watch provides trusted and timely data for a sustainable future.
▶Visit
Data.Europa
The official portal for European data
▶ Visit
CORGIS
CORGIS: The Collection of Really Great, Interesting, Situated Datasets
▶ Visit


Users
Interface to change the password of a system user.
File information
Classes
IUsers
class IUsers {
public:
static users_password_change_error_t ChangePassword(const char * user, const char * oldPassword, const char * newPassword);;
};
Public functions
ChangePassword (static function)
-
This function changes the password of a given user. The old and the new password must be both provided.
Parameters
| const char * user | The system user which must exist |
| const char * oldPassword | The old password of the system user |
| const char * newPassword | The desired new password |
Return value
If the password is successfully changed USERS_PASSWORD_CHANGE_SUCCESS
is returned.
Code Example
users_password_change_error_t error = IUsers::ChangePassword("root", "topSecret", "superTopSecret");
Data types
users_password_change_error_t
typedef enum {
USERS_PASSWORD_CHANGE_SUCCESS = 0,
USERS_PASSWORD_CHANGE_PAM,
USERS_PASSWORD_CHANGE_AUTHENTICATION,
USERS_PASSWORD_CHANGE_ACCOUNT,
USERS_PASSWORD_CHANGE_FAILURE
} users_password_change_error_t;
Overview
The enum users_password_change_error_t
is an error enum which can be used to check if changing the passowrd was a success or a failure.
Values
| USERS_PASSWORD_CHANGE_SUCCESS | The password was changed successfully |
| USERS_PASSWORD_CHANGE_PAM | Error: A PAM (Pluggable Authentication Modules Library) transcation could not be created |
| USERS_PASSWORD_CHANGE_AUTHENTICATION | Error: The system user could not be authenticated |
| USERS_PASSWORD_CHANGE_ACCOUNT | Error: The user account might not be valid |
| USERS_PASSWORD_CHANGE_FAILURE | Error: The password could not be changed |


OTT/video meta crawl | Sports/Real Estate database aggregation | Comparison engines | Custom Mashups
Managed server clusters of 100 + machines | Monitoring uptime , deploying software , maintaining state | Distributed monitoring using Nagios, SNMP integration | Distributed configuration management using Chef/Puppet
IOS and Android Dev | intricacies of codebase fragmentation and resultant cost factors | Django/Python/Mysql/Apache/Nginx environments
We help our clients prototype minimum viable products.
OSS deployment consultation | OSS Deployment and support | Experience with Postgres, Hadoop, MongoDB and Raik
Custom Data Extraction and DaaS solutions | Industry / Organisation specific crawling infrastructure | Client specific technology consultation and build
A Team Of Young passionate Buzzing headrunners With Multi Domain Expertise, Mentored by Veterains In The Industry.
Veveo has gainfully used Headrun for multiple engineering projects ranging from new fuctionality and maintenance as well as production services. Deliverable quality has been consistently good and the service proactive and responsive. The Headrun leadership team is also easily approachable and reliable. I wouldn’t hesitate recommonding Headrun.
With quick turnaround and innovative outlook at arriving at solutions to problems. Headrun is a reliable partner at work with We enjoy working with the team and look forward to a long term business relationship.
Good startups are efficient amplifiers of the creativity , energy, and productivity levels of its founders. My interactions with the Headrun leadership team offered me clear evidence of such amplification in practice.
Lorem ipsum dolor sit amet, luctus posuere semper felis consectetuer hendrerit, enim varius enim, tellus tincidunt tellus est sed
Lorem ipsum dolor sit amet, luctus posuere semper felis consectetuer hendrerit, enim varius enim, tellus tincidunt tellus est sed
The Little Gym is a services business that focuses on developing confidence in Children.Headrun as an organization really spent the time and effort to understand our business and its nuances and to reflect the actual operations when developing the technology platform.The team at Headrun have shown great perseverance in solving some complex problems into simple solutions.Thanks Team Headrun. !!


When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
Messages about mathematics:
All Messages:


Bike Trips in Washington D.C. area, March 2015
Data shows Capital Bikeshare bike trips in Washington DC area on March 2015, released at
https://www.capitalbikeshare.com/trip-history-data
.


| 1045 | (A) | Swiche lyfelode to ladys was lethir for-to schewe |
| 1050 | (C) | Swyche lyflode for ladyes . was heuy vnto schewe |
| 1033 | (D) | That lyvelode for ladies was lither to chewe |
| 1013 | (E) | that mete for ladyes . þat tyme was wol swete . |
| (Ex) | ---- no text ---- | |
| 1071 | (L) | þat liflode for ladies was luþer to chewe |
| (P) | ---- no text ---- | |
| (U) | ---- no text ---- | |
| 111 | (V) | Suche was liuelode for ladies . þat somtyme were sȝene |