text:
New Jersey State Senator Talks Up Pot Legalization After Colorado Visit
Kate McKee Simmons
Kate McKee Simmons | June 28, 2016 | 7:33am
During a four-day trip to Colorado earlier this month that took him through Boulder, Golden and Denver, New Jersey senator Nicholas Scutari, a Democrat from Union, examined the effects of legalizing recreational marijuana. He concluded that similar legislation could benefit New Jersey.
His trip included visits to dispensaries and meetings with state officials, law enforcement and local business owners. In a press conference held when he returned home, he said he came away with a better understanding of safety regulations, such as making sure packaging on marijuana products indicates clear dosage levels and equipping police departments with drug-recognition experts.
Medical marijuana was made legal in New Jersey in 2010 but only serves about 6,466 patients, according to the Marijuana Policy Project. Scutari sponsored a bill in 2014 to expand legalization to recreational use; after his visit to Colorado, he is expected to introduce a revised version of that bill by the end of the summer.
In an appearance on New Jersey Capitol Report in 2014, Scutari said the current laws aren't working, and asserts that New Jersey is wasting too much money on enforcement and probationary efforts.
Marijuana legalization: Did Obama's "pot cheat sheet" kill California's Proposition 19?
Teen Pot Smoking Declines Nationally, Study Finds
According to a report by NJTV News, New Jersey spends $100 million annually on "cannabis-related crime fighting."
New Jersey's population, which stands close to 9 million, is almost twice that of Colorado's 5.4 million. With the amount of tax revenue Colorado has brought in through legalization, Scutari believes his state could collect over $300 million, just off the numbers alone.
"You can't ignore the financial impact," he said at the press conference. "Who doesn't want an extra couple hundred million dollars in state coffers? If someone tells me they don't want that, I don't think they should be in office."
Unfortunately for the senator, any bill he manages to get through the state legislature will likely be vetoed by Governor Chris Christie.
"I don't care about the tax money that may come from it, and I don't care, quite frankly, that people think it's inevitable," Christie told NJTV News. "It's not inevitable here. I'm not going to permit it. Never, not as long as I'm governor."
Christie discussed his stance on marijuana in his campaign for president last year, as seen in the following video.
An estimated 844,000 people a year use marijuana in New Jersey, according to the most recent federal health survey covering 2013 and 2014, and 58 percent of New Jersey residents support legalization, according to a 2015 poll.
As the law currently stands, "possession of even a single joint for non-medical purposes is punishable by up to six months of incarceration and up to a $1,000 fine" in New Jersey, according to the Marijuana Policy Project.
Despite Christie's continued pronouncements that recreational marijuana will not become legal in New Jersey during under his tenure, Scutari is showing a renewed commitment to the legalization effort after his visit to Colorado.
"I saw vibrant small communities which had no discernible changes as a result of marijuana being legalized," he said. "I didn't see anybody out ingesting it. It didn't appear to me anybody was out walking around in a state of inebriation. Just nice towns we'd be proud to have in our communities."
Kate McKee Simmons interned at the National Catholic Reporter, was a reporter for the New York Post, and spent a brief stint in Israel learning international reporting before writing for Westword.
Facebook: Kate McKee Simmons
Twitter: @k8mckee
Denver Police Chief Denies Interview About Possible Racists...
Proposed Jefferson Parkway Hits a Big Bump in the Road:...


"I want to live," roars Frankenstein's monster in Van Helsing, and he's just one of many seeking self-realization amid the cacophonous chaos of director Stephen Sommers's mélange of classic Universal Pictures horror icons. Frankenstein, hunted by the local townsfolk, only wants the opportunity to exist, while Count Dracula (Richard Roxburgh) plots to bring his incubating demon children to life. Meanwhile, Van Helsing (Hugh Jackman)—a tortured, amnesia-stricken assassin employed by the Vatican to stamp out Europe's fiendish monster population—simply wants to remember who he really is. The irony, of course, is that this unruly gobbledygook pastiche of the Wolf Man, Dracula, Frankenstein, and Dr. Jekyll and Mr. Hyde legends is wholly devoid of humanity or soul. Perhaps the loudest summer film of all time, Van Helsing—an exhausting combination of CGI-infatuated action set pieces and self-conscious one-liners—is apt to provide more migraines than nightmares, assaulting one's ears with glass-shattering vampiress shrieks, extravagant explosions, and a bludgeoning score by Alan Silverstri. Aside from an opening scene shot in elegant black and white, Sommers's video-game aesthetic principally involves having characters bouncing off walls, hurtling through the thunder and lightening-wracked sky, and falling from rooftops with pogo-stick abandon, creating the impression that we're experiencing a non-interactive PS2 game with eye-popping graphics and indestructible protagonists. Although Van Helsing's blank memory is only partially responsible for his action-figure vacuity, Jackman strikes a dashing figure as the titular hero (a Batman/Wolverine/Indiana Jones amalgam outfitted with 007-style gadgets like an automatic crossbow and circular hand saws), and his beautiful Transylvanian sidekick Anna Valerious (Kate Beckinsale), the last living member of a family sworn to destroy Dracula, capably battles the film's mythic villains while encased in a studded leather corset. However, after enduring Anna's straight-faced delivery of portentous inanities ("I've never been to the sea," she arbitrarily blurts out while approaching Dr. Frankenstein's Gothic castle), the urge to see her fetching lips sewn as tight as Frankenstein's body parts becomes overwhelming. Van Helsing's metronomic alternation between scenes of serene conversation and helter-skelter combat has the recurring predictability of Nirvana's "Smells Like Teen Spirit," and this tiresome rhythm is mirrored by Roxburgh's historically awful interpretation of the blood-sucking Count. His Dracula, madly veering from reserved civility to maniacal, vein-popping hysteria, is an insufferable lunatic in desperate need of anti-depressants, and makes one wish Bela Lugosi would rise from his grave to mete out some revenge. You don't need to stick a stake in this monster mash—it's already (un)dead.


text:
Едмунд Тарбелл (; 26 квітня 1862, Ґротон — 1 серпня 1938, Нью-Касл) — американський художник-імпресіоніст і педагог. Був одним з Десяти американських художників, провідний художник Бостонської школи живопису.

Біографія
Народився 26 квітня 1862 року в місті Ґротон, штат Массачусетс, в сім'ї Edmund Whitney Tarbell і Mary Sophia Fernald Hartford. Після смерті чоловіка під час Громадянської війни в США, вона вийшла заміж за Девіда Гартфорда () і переїхала в Мілвокі. Едмунд і його сестра Неллі Софія виховувалися у їх бабусі й дідуся по батьківській лінії в Ґротоні.

Перші уроки живопису Едмунд Тарбелл брав у George H. Bartlett в школі Massachusetts College of Art and Design. У 1877—1880 роках він працював в Бостоні в компанії Forbes Lithographic Company. У 1879 році вступив в школу Музею витончених мистецтв в Бостоні, де навчався у Еміля Грундмана. Навчався разом з Робертом Рідом і Френком Бенсоном, майбутніми колегами по об'єднанню Десять американських художників.

Свою освіту продовжив у Франції, вступивши в 1883 році до паризької Академії Жуліана, щоб вчитися у Гюстава Буланже і Жюля Лефевра. У 1884 році з метою навчання Тарбелл здійснив Гранд-тур Італією, а на наступний рік знову відвідав Італію, а також Бельгію, Німеччину і Бретань. У США Тарбелл повернувся в 1886 році, заробляючи на життя як ілюстратор, портретист і приватний викладач живопису.

У 1889 році він отримав посаду свого колишнього наставника — Отто Грундмана, в школі Музею витончених мистецтв. Тарбелл користувався повагою своїх учнів, серед яких були — Margaret Fitzhugh Browne, Francis Luis Mora, Ліліан Хейл. Вплив художника в школі був настільки великий, що його послідовники отримали назву «Тарбеллісти».

У 1914 році в Бостоні була створена Гільдія художників Бостона (), серед засновників якої був Тарбелл. Він став її першим президентом, перебуваючи на цій посаді по 1924 рік. Одночасно в 1918 році він став директором художньої школи при Галереї Коркоран і займав цю посаду до 1926 року.

Помер 1 серпня 1938 року в містечку Нью-Касл, штат Нью-Гемпшир. Похований на кладовищі Cedar Grove Cemetery міста Дорчестер, округ Саффолк, штат Массачусетс.

Сім'я
Був одружений на Emeline Arnold Souther Tarbell (1865—1947), у них народилися діти:

 Josephine Tarbell Ferrell (1890—1966);
 Mercie Tarbell Clay (1895—1961);
 Mary Tarbell Schaffer (1897—1991);
 Edmund Arnold Tarbell (1898—1954).

Праці
Праці Тарбелла знаходяться в багатьох музеях США, включаючи Бостонський музей образотворчих мистецтв, Метрополітен-музей, Національну галерею мистецтв, Смітсонівський музей американського мистецтва, Галерея мистецтв Коркоран, Національну академію дизайну, Вустерський музей мистецтв, а також в інших колекціях.

Примітки

Посилання
 Edmund C. Tarbell
 Едмунд ЧАРЛЬЗ Тарбелл: ЖИТТЯ І ТВОРЧІСТЬ ХУДОЖНИКА
 Едмунд ЧАРЛЬЗ Тарбелл
 Бостонська школа живопису

Художники США
Уродженці Бостона

redpajama_set_name: RedPajamaWikipedia


text:
Monsters (Probably) Stole My Princess Review
Ps Mini Reviews / January 7, 2014 October 12, 2019 / Classical Music, Game Review, Media Tonic, Monsters Probably Stole My Princess, Playstation, Ps Mini, PS Vita, Ps3, Psp, The Duke
Title: Monsters! Probably Stole My Princess
Developer: Mediatonic
Game Type: PlayStation Mini
Download: 100 MB
NA Availability: Digital Download, Direct Download
EU Availability: Digital Download, Direct Download
PlayStation Minis is really a finalized breed of games. While they clearly were the first step towards PlayStation Mobile that we have now, there has not been a single PlayStation Mini release in some time. Even so, there is a pretty wide selection of games available to it and, when it was active, there were some really interesting and unique games that came to the systems they are supported on.
Many PlayStation Mini games are 2D games that look similar to Flash-like games used in browsers. A more accurate similarity would be Mobile games. While they were still coming out, though, there was a big focus on some of them. Many of them came out with interesting gameplay and quick-bursts of gameplay. This was a very niche field back then, but it worked for what it was. Minis offered short bursts for a small amount of money.
One game that had a trailer and a lot of hype going for it when it was in development was a platformer game by Media Tonic. Filled with Comedy, Princesses, Monsters, and an egotistical Vampire, Monsters (Probably) Stole My Princess was a big anticipated title on the PlayStation Mini platform. Here is our official review of that game.
I cannot give you the full explanation of the story without including spoilers for the game's secret ending. But, I will do what I can. Monsters begins in a castle, owned by the Main Character, who is called "The Duke". This character is apparently the Duke of the castle. He is also a vampire with special powers and an ego that is through the roof when it comes to large egos. The game starts showing him with his large organ and finding something amiss. His Princess is Missing.
Upon seeing this, he is absolutely, though not quite, sure that some sort of monster has broken into his castle, went to her chambers, smashed through the doors, and made off with her. On that note, he scurries out of the castle, in search of the fiends whom are responsible and to deliver swift justice in the process of rescuing his princess.
The game takes place on several stages with a specific Monster, whom the Duke arrives and immediately accuses of stealing his princess for various reasons, whether it be a sacrifice, meal, or otherwise. As he accuses each one, they run, forcing him to chase them and pummel them into oblivion.
The dialogue in this game is one of the most entertaining parts. Every time the Duke finds a monster, or just talks in general, you get witty, unsure statements towards the monsters he finds. Never does a stage appear where he doesn't show his ego, make accusations, and have a monster respond with "Oh Crap. It's the Duke" just before fleeing.
Normally, a painfully egotistical character in a video game isn't such a good thing. Many egotisticals are annoying in games, but The Duke is implemented in such a way that every bit of ego he throws out will have you chuckling and smiling. Media Tonic did a nice job crafting this character.
The gameplay of this game is that of a platformer. Though, if I had to think of a name for this specific kind of platformer, I would call it a Tower Platformer. That may not be a real phrase or term, but that is the best way to describe just what this game is. Each stage is essentially a huge tower-shaped formation of a different kind of environment, whether it be a waterfall, cave, or castle.
Your goal, however, is not to reach the top of the tower. In each stage, you play as The Duke and are chasing a monster up the tower. As you climb, you can jump or double-jump to get from platform to platform. Your goal is to catch up with the monster and perform a double-jump to attack them. You will need to do this three times throughout the entirety of each stage to defeat them, which involves you using a quite dramatic finishing move and earning a score and medal.
What medal and score you receive highly depends on combos and being careful. With each platform you are on, you start a combo chain. Just on different platforms without falling to continue the combo. You also cannot step on the same platform more than once or the chain will reset. Getting a high combo is key to getting a high score and using the two upgraded finishers to get better medals for the stage.
The Finisher only has two upgrades. What finisher you use depends on what your current Combo Chain is when you attack and hit the stage's monster for the final time. If you hit them with a combo of 0-29, you will use the Level 1 Finisher. If you hit them with a Combo of 30-49, you will use the Level 2 Finisher. Finally, you will use the Level 3, and very dramatic, finisher if you hit them with a combo of 50 or more. The key to getting high scores and medals in each stage and unlocking the alternate ending stage is getting that Level 3 Super in every stage.
Hitting an enemy seems easy and, at first, it is. The enemy in the first stage has no way to conceal or defend itself, so it's easy to hit them. All you need to do is catch up to them each time. Afterwards, however, some monsters have the ability to conceal themselves. One can make themselves invisible for a short time and one can hide inside a Waterfall. With these, you not only have to catch them, but attack them at the right time to do the damage needed to bring down their health.
Upon finishing stages with certain scores and medals, you will not only unlock the playable ending, but also pieces of the Scrapbook. The Scrapbook is an extra feature in the game that gives you some background information on The Duke, The Princess, and the monsters that you end up fighting in each stage. This is pretty much the only way to really find out who The Princess is and why she does what she does later on in the game's storyline.
There is also another Game Mode called Score Attack. This has three different versions of each stage and has set score goals for you to reach, to give a little more longevity to this game. Speaking of longevity, it's a very short game. There are about 6 stages, not counting the secret stage, and in the main storyline, they can all be finished in 30 minutes or less. Give Score Attack and unlocking everything, I would say that everything can be done in about 2 hours, give or take.
As such, it's known that this is a very short game and is meant for small bursts, rather than longer sittings. The gameplay is a lot of fun, and I found myself replaying many stages to be able to experience them again and get better scores.
As far as controls are concerned, you are in for a pretty easy trip. Apart from utilizing the menu with all of the D-Pad Buttons, X, and Circle, you'll barely be using three buttons total on the system when going through each stage. This game has a very simple style of gameplay and, as such, has a very simple control scheme.
While the PlayStation Minis do utilize the same emulator used for PSP games on the Vita, you don't need the Touch Screen controls for anything. In my honest opinion, this game requires a lot of precision, especially in the later stages. As such, you may wish to avoid touch screen controls and just use the buttons.
With the default Control Scheme, you'll only be using the D-Pad and the X Button. The D-Pad's Left and Right Button are used to control the Duke's movements. The Down button on the D-Pad is also used, when you want to drop down to a lower platform you may have missed. Finally, the X Button handles jumping. You press it once to jump, and again in mid-jump to perform a Double Jump.
As far as looks are concerned, people do not need to worry about this game running on the PlayStation Vita. While it is true that most PSP and PS Mini games that run on it have their resolutions stretched out. This is true for this game as well. The difference is that the visuals of this game are not affected anywhere near as much as, say, Monopoly.
The designs for this game are 2D in nature and almost cartoon-like. I am not sure of something I can really compare it to, but it is very cartoon-like with the visuals. This also goes well with the humorous nature of the characters involved. It would be a funny little cartoon short. As far as that is concerned, the visuals look great and don't look stretched or faded from the Vita's native resolution and stretching it from the PSP's resolution.
Where the game really is interesting, however, is audio. All of the stages have originally remixed tracks, but each stage has classical music playing. When you are in each area, you hear exciting classical remixes of the likes of Night on Bald Mountain, In the Hall of the Mountain King, and more. If nothing else, this game will reveal to you some great classical music with a modern edge to them in the remixes. They were all done really well and are quite catchy. In fact, I still have one of its remixes stuck in my head as I write this review.
All in all, Monsters (Probably) Stole My Princess is a fun, catchy game on the PlayStation Mini platform. It's funny, has catchy music, and the gameplay is smooth and fun. While the game is relatively short, even for a Mini, you will get a lot of laughs out of this and it could be something you'll keep on your Vita all the time for bursts of quick gameplay.
The PlayStation Review Network Rates Monsters (Probably) Stole My Princess an 8/10.

redpajama_set_name: RedPajamaCommonCrawl


Well? I watched as much as I could until the pesky global warming clouds rolled in. I don't have any cameras that could take the shots that I wanted so you'll just have to go to the sites that will eventually reveal what we all saw or could have seen while you were all asleep.
That isn't what I saw but it is a picture.
[...] The eclipse will last three hours and 28 minutes. For 72 of those minutes, the earth's shadow will completely cover the moon, according to NASA.
Plus NASA plans to stream live video of the event and have astronomers available to answer questions online.
At this moment the moon has been eclipsed and the space aliens are looking at earth wonder just what we are doing down here.
The 12-Steps of the eclipse can be seen here.
As the night goes by I will try to see through the clouds. Live Lunar Eclipse space vidcast is here. More pictures are at the Huff and Blow. Video of tonight's show is here.


Wondering how to pronounce vowels and consonants in American English? Accurate pronunciation is an important part of learning any foreign language. But the tricky thing about pronunciation is that it is not just a question of acquiring knowledge, it's a physical skill that you need to practice regularly. And the problem is that the English spelling system is very complicated and typically, words are not pronounced the way they are spelled. So how to pronounce English words correctly?
In fact, there is little consistency between the 26 letters of the English alphabet and the sounds we use when saying them out loud. Besides, there are just 5 vowel letters (a, e, i, u, o) and about 15 various vowel sounds. Furthermore, the English alphabet has 21 consonant letters and about 24 consonant sounds. So how can you pronounce a word you have never read? Guessing is a terrible strategy that leads to a lot of errors and bad habits. What is the way out? To pronounce words correctly, you need to learn to recognize all the sounds in American English and their symbols in the International Phonetic Alphabet (IPA).
International Phonetic Alphabet or IPA is the system to transcribe words of any language as they sound using universal phonetic symbols. In the IPA, each symbol is associated with a specific English sound. If you learn all the symbols, you will know exactly how to pronounce any word because most English dictionaries use IPA to describe pronunciation of the words. Using the IPA, you'll be able to improve your pronunciation and feel more confident speaking English. Keep reading to learn how to pronounce IPA symbols.
When it comes to pronunciation, vowels are the hardest part of American English. Vowel sounds are produced with an open vocal tract. Here are the IPA symbols for vowel sounds in American English.
/i / is used in beet, heat, see, read. When pronouncing this sound, you need to keep your tongue high and form your mouth into a wide narrow shape.
/ɪ/ is used in bit, kit, sit, fill. Keep your lips and your tongue neutral and relaxed and make the sound at the back of your throat.
/ɛ/ is used in set, bed, get, ten. Keep your lips and jaw loose and hold the middle of the tongue slightly rounded upwards.
/æ/ is used in bad, cat, land, sad. Hold your lips apart and push the front of your tongue further forward.
/ɑ/ is used in cot, hot, god. Hold your jaw more open and keep the back of your tongue lower than for any other vowel sound.
/ɔ/ is used in all, saw, want, cause. Push your tongue back and keep it low slightly rounding upward.
/ʊ/ is used in good, book, put, foot. Raise the back of the tongue to a mid-high position and pull your lips into a loose circle.
/u/ is used in school, too, boot, cool. Pull your lips into a small circle and raise the back of the tongue to a high position.
/ʌ/ is used in cup, one, but. Relax the body of your tongue and keep it low in the mouth. Keep the jaw in a neutral position.
/ə/ is used in about, people, common. The schwa sound occurs in unstressed positions.
The next vowel sounds are diphthongs that begin with one vowel sound and change to another in the same syllable.
/eɪ/ is used bait, make, way, say. You can make it if you form your mouth into a wide narrow shape.
/aɪ/ is used in bite, five, why, time. It's a diphthong that ends with brief /j/.
/ɔɪ/ is used in point, boy, oil, choice.
/aʊ/ is used in now, mouth, down, out. The sound ends in a brief /w/.
/oʊ/ is used in so, both, go.
/p/ - pan, pen, happy. It is an unvoiced sound and vocal cords don't vibrate when it is pronounced. It is the counterpart of /b/. Make it by closing your lips to prevent the air from leaving the vocal tract.
/b/ - bag, ribbon, bad. It's the voiced counterpart to /p/.
/t/ - today, tea, still. Press the tip of your tongue against the tooth ridge to prevent the air from leaving the vocal tract. The sound is unvoiced.
/d/ - day, dog, add. It is the voiced counterpart of /t/.
/k/ - kite, cat, queen. Lift the back of your tongue and press it against the soft palate at the back of your mouth.
/g/ - got, guest, egg. It's the voiced counterpart to /k/.
/tʃ/ - chicken, much, teacher. To create this voiced sound, you need to press the tip of your tongue against the tooth ridge. The sound is pronounced when the air is released with friction.
/dʒ/ - jacket, age, major. It's the voiced counterpart to /tʃ/.
/f/ - fall, life, often. Hold the jaw nearly closed and press the bottom lip to the bottom of the top teeth.
/v/ - voice, give, ever. It's the voiced counterpart to /f/.
/θ/ - three, death, nothing. It's an unvoiced sound. Place the tip of your tongue behind the top front teeth or between the bottom and top front teeth.
/ð/ - this, smooth, mother. It's the voiced counterpart to /θ/.
/s/ - sun, also, so. To produce this voiceless sound, keep the tip of your tongue near the upper backside of the top front teeth.
/z/ - zoo, does, music. The z sound is voiced and is the counterpart to /s/. To produce it, you need to keep the front of your tongue close to the tooth ridge.
/ʃ/ - shoe, fish, social. Keep your lips tense or slightly protruded when producing this sound.
/ʒ/ - genre, vision, garage. It's the voiced counterpart of /ʃ/.
/h/ - he, how, perhaps. You should slightly constrict your throat and breathe out through the mouth.
/m/ - milk, man, summer. Press your lips together and make this sound with your vocal cords. The soft palate drops and some air passes through the nose.
/n/ - nine, know, penny. Press the tip of your tongue against the tooth ridge. The air moves through the nose as when producing /m/ sound.
/ŋ/ - thing, think, sing. This is a nasal sound as well. Raise your tongue and keep it further back in your mouth.
/l/ - lip, last, fell. There are 2 allophones: the light l and the dark l sound. To create the l sound, place the tip of your tongue against the middle of the tooth ridge.
/r/ - red, wrist, rat. Raise the tip of your tongue and curl it back behind the tooth ridge while keeping the back of your tongue low.
/j/ - yes, million, yet. Hold the body of your tongue near the tooth ridge and the hard palate and keep your lips mostly closed.
/w/ - wine, wet, why. To produce this voiced sound, imagine you are whistling or blowing a candle.
Now you know how to pronounce all American English sounds correctly so it's time to train your pronunciation skills. Here are some tips on how you can effectively master your American accent.
Get your ear used to the way native speakers sound. Watch TV shows, movies, find free videos on YouTube, and listen to songs and podcasts. Focus on the sounds that don't exist in your native language and learn to distinguish them. Besides, you should pay attention to difficult words and focus on rhythms, breaks, and intonation.
The best way to achieve success in any challenge is to keep track of your improvements. Find interesting English texts and practice reading them aloud. Pay attention to the pronunciation of the sounds and try to follow certain intonation patterns. Record yourself reading and you will have reference to assess the progress. Ask a native speaker to listen and tell you what errors you have made. You should focus on the areas that are most difficult for you, practice a lot, and record yourself regularly to see the improvements.
Take a free pronunciation improvement course from Accent Hero and master the pronunciation of 200 tricky English words that are commonly mispronounced by non-native speakers. The online course lasts for 4 weeks and you can practice anytime and anywhere. The course uses advanced speech recognition tools to provide you with immediate feedback and help you understand which mistakes you typically make. With Accent Hero, you are sure to learn to speak like an American.
When we learn a second language, our pronunciation is influenced by our mother tongue. And the closer your native language is to the language you are learning, the better you'll be able to speak the target language. English learners whose native language is Spanish or French face fewer difficulties when learning English than those whose native language is Japanese or Chinese. Still, every native speaker of another language has his or her issues with English pronunciation.
Russian speakers face many of the same obstacles to the correct English pronunciation that learners from other countries do but they also have their own share of pronunciation difficulties.
Russian speakers tend to pronounce dark l sound even darker than native English speakers. Besides, they pronounce dark l in all positions, even where light l should be pronounced.
Russian speakers often substitute /w/ which doesn't exist in their native language with /v/.
They often pronounce "th" as s and z sounds because there are no /θ/ and /ð/ in Russian.
They often replace /h/ with its closest Russian equivalent /x/.
Russians typically say /n/ or /ng/ instead of /ŋ/ which doesn't exist in the Russian language.
Russians find it challenging to pronounce various vowels and diphthongs, particularly, they struggle to pronounce /æ/ and often use /ɛ/ instead.
Chinese speakers usually face a number of pronunciation errors because many English sounds don't exist in Chinese and are new to them. Here are some of the most common problems that cause miscomprehension.
Consonant clusters don't exist in Chinese and Chinese speakers find it challenging to pronounce a group of consonants especially if it contains "r" or "l" sounds. They often add vowel sounds between consonants or substitute consonants that are easier for them to pronounce.
In Chinese, words and syllables never end with consonants except with /n/ and /ŋ/. Chinese speakers often add an extra schwa sound after a consonant or omit the final consonant.
In Chinese, there is no word stress. That's why most Chinese speakers have problems with vowel reduction and schwa sound.
English sounds /r/ and /v/ don't exist in Chinese. Chinese speakers often replace /r/ with /l/ and /w/. Sound /v/ is typically replaced with /b/ or /w/.
Chinese learners often confuse /l/ and /n/ sounds.
English and Spanish have a lot of differences in terms of phonetics and one of the most important of them is that there are 5 vowel sounds in Spanish and 15 vowel sounds in American English.
Spanish doesn't have a distinction between short and long vowels so Spanish speakers often confuse pairs of short and long vowels like /i/ and /ɪ/, /u:/ and /ʊ/.
They often substitute the schwa sound /ə/ for another vowel sound, pronouncing the English letters as in Spanish.
In Spanish, words never start with consonant clusters such as /sl-, sm-, st-, sn-, sk-, sp-/ so Spanish speakers commonly insert a schwa sound before words that begin with /s/+ another consonant.
Spanish learners often voice and devoice consonants. They may have difficulties with z pronunciation in a combination /z/+ vowel and s pronunciation in /s/+ consonant.
They confuse l sound and r sound because /r/ doesn't exist in Japanese.
They insert vowel sounds in consonant clusters.
They add vowel sounds at the end of English words.
They often replace /θ/ and /ð/ which don't exist in Japanese with /s/ and /d/.
We have identified the most common problem areas in English pronunciation for non-native English speakers. So now you know which sounds require additional practice if you want to perfect them. Of course, making changes in your American English pronunciation will not come overnight. That's why we recommend that you take a free accent training course at Accent Hero. With proper effort and practice, you will be able to master new sounds, reduce your accent, and learn to speak English like a native faster than you can imagine.


text:
Daniel Cormier injured, forced to withdraw from UFC 206
Josh Sanchez | Nov 25, 2016 12:38 pm
UFC officials are in search of a new main event for UFC 206.
On Friday afternoon, MMAFighting.com reported light heavyweight champion Daniel Cormier was forced to withdraw from his scheduled main event bout with Anthony Johnson due to injury.
The exact nature of the injury was not disclosed.
According to the report, the UFC currently plans to keep Johnson on the fight card and they are currently searching for a new headlining bout.
UFC 206 takes place on Dec. 10 at the Air Canada Centre in Toronto.
Earlier this week, the event also lost a main card bout between middleweights Tim Kennedy and Rashad Evans after it was revealed that Evans was unable to get his license.
With the latest change, the current fight card can be seen below:
UFC ring girls get in on Mannequin Challenge at UFC 205
TBD vs. Anthony Johnson (22-5)
Max Holloway (16-3) vs. Anthony Pettis (19-5)
Donald Cerrone (31-7, 1 NC) vs. Matt Brown (20-15)
Valerie Letourneau (8-5) vs. Viviane Pereira (11-0)
Zach Makovsky (19-7) vs. John Moraga (16-5)
John Makdessi (14-5) vs. Lando Vannata (8-1)
Olivier Aubin-Mercier (8-2) vs. Drew Dober (17-7)
Jason Saggo (12-2) vs. Rustam Khabilov (20-3)
Nikita Krylov (21-4) vs. Misha Cirkunov (12-2)
Cub Swanson (23-7) vs. Doo Ho Choi (15-1)
Jordan Mein (26-10) vs. Emil Meek (8-2-1)
Mitch Gagnon (12-3) vs. Matthew Lopez (8-1)
Can't get enough of Campus Sports? Follow us on Twitter, Facebook and Instagram to stay updated with the latest news and exclusive giveaways!
COMBAT SPORTS,MMADaniel Cormier,MMA,UFC,UFC 206
Josh SanchezCAMPUSSPORTS Writer
Josh studied journalism at Seton Hill University. He is currently the Editor-in-Chief of Campus Sports. Josh is currently a member of the FWAA and USBWA. His work has been featured on Sports Illustrated, ESPN.com, FOXSports.com, CBSSports.com and many others. CONTACT: josh.sanchez@teamcoed.com
– Big Ten
– Big 12
– PAC 12
– SEC
– ACC
– Big-12
– Entertainment
– Style
– MMA
© COED MEDIA LLC. All Rights Reserved.


text:
\section{Introduction}

\subsection{Few-shot learning}
Humans are able to learn to recognize new object categories on a single or small number of examples. This has been demonstrated in a wide range of activities from hand-written character recognition~\cite{Lake2011}, and motor control~\cite{motor}, to acquisition of high level concepts~\cite{omniglot}. Replicating this kind of behavior in machines is the motivation for studying few-shot learning.

Parametric deep learning has been performing well in settings with abundance of data. In general, deep learning models have a very high functional expressivity and capacity, and rely on being slowly, iteratively trained in a supervised regime. An influence of a particular example within the training set is therefore small, as the training is designed to capture the general structure of the dataset. This prevents rapid introduction of new classes after training.~\cite{deepmind}

In contrast, few-shot learning requires very fast adaptation to new data. In particular, $k$-shot classification refers to a regime where classes unseen during training must be learned using $k$ labeled examples. Non-parametric models, such as k-nearest-neighbors (kNN) do not overfit, however, their performance strongly depends on the choice of distance metric.~\cite{Atkeson1997} Architectures combining parametric and non-parametric models, as well as matching training and test conditions, have been performing well on $k$-shot classification recently.

\subsection{Gaussian prototypical networks}

In this paper we develop a novel architecture based on prototypical networks used in \cite{prototype2017}, and train it and test it on the Omniglot dataset~\cite{omniglot}. Vanilla prototypical networks map images into embedding vectors, and use their clustering for classification. They divide a batch into \textit{support}, and \textit{query} images, and use the embedding vectors of the support set to define a class prototype -- a typical embedding vector for a given class. Proximity to these is then used for classification.

Our model, which we call the \textit{Gaussian prototypical network}, maps an image into an embedding vector, and an estimate of the image quality. Together with the embedding vector, a confidence region around it is predicted, characterized by a Gaussian covariance matrix. Gaussian prototypical networks learn to construct a direction and class dependent distance metric on the embedding space. We show that our model is a preferred way of using additional trainable parameters compared to vanilla prototypical networks.

Our goal is to show that by allowing our model to express its confidence in individual data points, we reach better results. We also experiment with intentionally corrupting parts of our dataset in order to explore the extendability of our method to noisy, inhomogeneous real world datasets, where weighting individual data points might be crucial for performance.

We report, to our knowledge, state-of-the-art performance in 1-shot and 5-shot classification both in 5-way and 20-way regime (for 5-shot 5-way, we are comparable to previous state-of-the-art) on the Omniglot dataset.~\cite{omniglot} By studying the response of our model to down-sampled data, we hypothesize that its advantage might be even higher in lower quality, inhomogeneous datasets.

This paper is structured as follows: We describe related work in Section~\ref{sec:related_work}. We then proceed to introduce our methods in Section~\ref{sec:methods}. The episodic training scheme is also presented there. We discuss the Omniglot dataset in Section~\ref{sec:datasets}, and our experiments in Section~\ref{sec:experiments}. Finally, our conclusions are presented in Section~\ref{sec:conclusion}.

\section{Related work}
\label{sec:related_work}
Non-parametric models, such as $k$-nearest neighbors (kNN), are ideal candidates for few-shot classifiers, as they allow for incorporation of previously unseen classes. However, they are very sensitive to the choice of distance metric.~\cite{Atkeson1997} Using the distance in the space of inputs directly (e.g. raw pixel values) does not produce high accuracies, as the connection between the image class and its pixels is very non-linear.

A straightforward modification in which a metric embedding is learned and then used for kNN classification has yielded good results, as demonstrated by \cite{metric1}, \cite{weinberger09distance}, \cite{metric2}, and \cite{metric3}. An approach using \textit{matching networks} has been proposed in \cite{matching}, in effect learning a distance metric between pairs of images. A noteworthy feature of the method is its training scheme, where each mini-batch (called an \textit{episode}) tries to mimic the data-poor test conditions by sub-sampling the number of classes as well as numbers of examples in each. It has been demonstrated that such an approach improves performance on few-shot classification.~\cite{matching} We therefore use it as well.

Instead of learning on the dataset directly, it has recently been proposed \cite{meta} to train an LSTM~\cite{LSTM} to predict updates to a few-shot classifier given an episode as its input. This approach is referred to as \textit{meta-learning}. Meta-learning has been reaching high accuracies on Omniglot~\cite{omniglot}, as demonstrated by \cite{fin}, and \cite{munk}. A task-agnostic meta-learner based on temporal convolutions has been proposed in~\cite{TCML}. Combinations of parametric and non-parametric methods have been the most successful in few-shot learning recently.~\cite{prototype2017}\cite{cdkNN}\cite{siam2015}

Our approach is specific to classification of images, and does not attempt to solve the problem via meta-learning. We build on the model presented in \cite{prototype2017}, which maps images into embedding vectors, and uses their clustering for classification. The novel feature of our model is that it predicts its confidence about individual data points via a learned, image-dependent covariance matrix. This allows it to construct a richer embedding space to which images are projected. Their clustering under a direction and class-dependent distance metric is then used for classification.

\section{Methods}
\label{sec:methods}
In this paper, we first explore the \textit{prototypical networks} described in \cite{prototype2017}. We extend the architecture to what we call a \textit{Gaussian prototypical network}, allowing the model to reflect quality of individual data points (images) by predicting their embedding vectors as well as confidence regions around them, characterized by a Gaussian covariance matrix.

A vanilla prototypical network comprises an encoder that maps an image into an embedding vector. A batch contains a subset of available training classes. In each iteration, images for each class are randomly split into \textit{support}, and \textit{query} images. The embeddings of support images are used to define class \textit{prototypes} -- embedding vectors typical of the class. The proximity of query image embeddings to the class prototypes is used for classification.

The encoder architectures of vanilla and Gaussian prototypical networks do not differ. The key difference is the way encoder outputs are interpreted, used, and how the metric on the embedding space is constructed. In Gaussian networks, a part of the encoder output is used to construct covariance matrices about embedding vectors, which allows our model to reflect the predictive power, and quality of individual data points.

\subsection{Encoder}
We use a multi-layer convolutional neural network without an explicit, final fully connected layer to encode images into high-dimensional Euclidean vectors. For a vanilla prototypical network described in \cite{prototype2017}, the encoder is a function taking an image $I$ and transforming it into a vector $\vec{x}$ as
\begin{equation}
\mathrm{encoder} (W): I \in \mathbb{R}^{H \times W \times C} \to \vec{x} \in \mathbb{R}^{D} \, ,
\end{equation}
where $H$ and $W$ are the height and width of the input image, and $C$ is the number of its channels. $D$ is the embedding dimension of our vector space which is a hyperparameter of the model. $W$ are the trainable weights of the encoder.

For a Gaussian prototypical network, the output of the encoder is a concatenation of an embedding vector $\vec{x} \in \mathbb{R}^{D}$ and the relevant components of the covariance matrix $\Sigma \in \mathbb{R}^{D \times D}$. Therefore
\begin{equation}
\mathrm{encoder}_{\mathrm{Gauss}} (W): I \in \mathbb{R}^{H \times W \times C} \to \left [ \vec{x}, \vec{s}_{\mathrm{raw}} \right ] \in \left [ \mathbb{R}^{D}, \mathbb{R}^{D_S} \right ] \, ,
\end{equation}
where $D_S$ is the dimensionality of the predicted components of the covariance matrix.

We explore three variants of the Gaussian prototypical network:
\begin{itemize}
	\label{item:type}
	\item[a)] \textbf{Radius} covariance estimate. $D_S = 1$ and only a single real number $s_\mathrm{raw} \in \mathbb{R}^1$ is generated per image to characterize the size of the confidence interval around its embedding vector. As such the covariance matrix has the form $\Sigma = \mathrm{diag}\left( \sigma,\sigma, \dots, \sigma \right)$, where $\sigma$ is calculated from the raw encoder output $s_\mathrm{raw}$. The confidence estimate is therefore not direction-sensitive. This method proved to be the most efficient usage of additional parameters on the Omniglot dataset \cite{omniglot}. We suspect that this preference might be dataset-specific, and that less homogeneous datasets could prefer more complex covariance estimates.

	\item[b)] \textbf{Diagonal} covariance estimate. $D_S = D$ and the dimension of the covariance estimate is the same as of the embedding space. $\vec{s}_\mathrm{raw} \in \mathbb{R}^D$ is generated per image to characterize the size of the confidence interval around the embedding vector. Therefore the covariance matrix has the form $\Sigma = \mathrm{diag}\left( \vec{\sigma} \right)$, where $\vec{\sigma}$ is calculated from the raw encoder output $\vec{s}_\mathrm{raw}$. This allows the network to express direction-dependent confidence about a data point, although the confidence ellipsoid always remains axis-aligned with the embedding space axes.

	\item[c)] \textbf{Full} covariance estimate. A full covariance matrix is output per data point. This method proved to be needlessly complex for the tasks given and therefore was not explored further.
\end{itemize}

We used down-sampled gray-scale Omniglot images of the dimension $28 \times 28 \times 1$ as an input. A 4-layer CNN architecture with $2\times2$ max pooling results into a volume of shape $1 \times 1 \times (D + D_S)$, where the embedding dimension $D$ plus the relevant parts of the covariance matrix $D_S$ are equal to the number of filters in the last later. We were using the \verb|TensorFlow| \textit{SAME} padding and stride 1. Our filters were $3\times3$ in spatial extent. The final layer was equivalent to a fully-connected layer.

We were using 2 encoder architectures: 1) a \textbf{small} architecture, and 2) a \textbf{big} architecture. The small architecture corresponded to the one used in \cite{prototype2017}, and we used it to validate our own experiments with respect to the previous state-of-the-art results. The big architecture was used to see the effect of an increased model capacity on accuracy. As a basic building block, we used the sequence of layers in Equation~\ref{eq:block}.
\begin{equation}
\label{eq:block}
3\times3 \, \mathrm{CNN} \to \mathrm{batch\,normalization} \to \mathrm{ReLU} \to 2\times2 \, \mathrm{max\,pool}
\end{equation}
Both architectures were composed of 4 such blocks stacked together. The details of the architectures are as follows:
\begin{itemize}
	\item[1)] \textbf{Small architecture:} $3 \times 3$ filters, numbers of filters $[64,64,64,D]$ ($[64,64,64,D+1]$ for the radius Gaussian model, $[64,64,64,2D]$ for the diagonal Gaussian model). Embedding space dimensions explored were $D = 32,64,128$.
	\item[2)] \textbf{Big architecture:} $3 \times 3$ filters, numbers of filters $[128,256,512,D]$ ($[128,256,512,D+1]$ for the radius Gaussian model, $[128,256,512,2D]$ for the diagonal Gaussian model). Embedding space dimensions explored were $D = 128,256,512$.
\end{itemize}

We explored 4 different methods of translating the raw covariance matrix output of the encoder into an actual covariance matrix. Since we primarily deal with the inverse of the covariance matrix $S = \Sigma^{-1}$, we were predicting it directly. Let the relevant part of the raw encoder output be $S_\mathrm{raw}$. The methods are as follows:
\begin{itemize}
\label{item:sigma}
	\item[a)] $S = 1 + \mathrm{softplus} \left ( S_\mathrm{raw} \right )$, where $\mathrm{softplus}(x) = \log \left ( 1 + e^x \right )$ and it is applied component-wise. Since $\mathrm{softplus}(x) > 0$, this guarantees $S > 1$ and the encoder can only make data points less important. The value of $S$ is also not limited from above. Both of these approaches prove beneficial for training. Our best models used this regime for initial training.
	\item[b)] $S = 1 + \mathrm{sigmoid} \left ( S_\mathrm{raw} \right )$, where $\mathrm{sigmoid}(x) = 1 / \left ( 1 + e^{-x} \right )$ and it is applied component-wise. Since $\mathrm{sigmoid}(x) > 0$, this guarantees $S > 1$ and the encoder can only make data points less important. The value of $S$ is bounded from above, as $S < 2$, and the encoder is therefore more constrained.
	\item[c)] $S = 1 + 4 \, \mathrm{sigmoid} \left ( S_\mathrm{raw} \right )$ and therefore $1 < S < 5$. We used this to explore the effect of the size of the domain of covariance estimates on performance.
	\item[d)] $S = \mathrm{offset} + \mathrm{scale} \times \mathrm{softplus} \left ( S_\mathrm{raw} / \mathrm{div} \right )$, where  $\mathrm{offset}$, $\mathrm{scale}$, and  $\mathrm{div}$ are initialized to $1.0$ and are trainable. Our best models used this regime for late-stage training, as it is more flexible and data-driven than a).
\end{itemize}

\subsection{Episodic training}
A key component of the prototypical model is the episodic training regime described in \cite{prototype2017}. During training, a subset of $N_c$ classes is chosen from the total number of classes in the training set (without replacement). For each of these classes, $N_s$ \textit{support} examples are chosen at random, as well as $N_q$ \textit{query} examples. The encoded embeddings of the support examples are used to define where a particular class \textit{prototype} lies in the embedding space. The distances between the query examples and positions of class prototypes are used to classify the query examples and to calculate loss. For the Gaussian prototypical network, the covariance of each embedding point is estimated as well. A diagram of the process is shown in Figure~\ref{fig:diagram1}.
\begin{figure}[t]
	\begin{center}

		\includegraphics[width=0.85\linewidth]{imgs/digram2_out}
	\end{center}
	\caption{A diagram of the function of the Gaussian prototypical network. An encoder maps an image into a vector in the embedding space (dark circles). A covariance matrix is also output for each image (dark ellipses). Support images are used to define the prototypes (stars), and covariance matrices (light ellipses) of the particular class. The distances between centroids, and encoded query images, modified by the total covariance of a class, are used to classify query images. The distances are shown as dashed gray lines for a particular query point.}
	\label{fig:diagram1}
\end{figure}

For a Gaussian prototypical network, the radius or a diagonal of a covariance matrix is output together with the embedding vector (more precisely its raw form is, as detailed in Section~\ref{item:sigma}). These are then used to weight the embedding vectors corresponding to support points of a particular class, as well as to calculate a total covariance matrix for the class. The distance $d_c(i)$ from a class prototype $c$ to a query point $i$ is then calculated as
\begin{equation}
d_c^2(i) = \left ( \vec{x}_i - \vec{p}_c \right )^T S_c \left ( \vec{x}_i - \vec{p}_c \right ) \, ,
\end{equation}
where $\vec{p_c}$ is the centroid, or \textit{prototype}, of the class $c$, and $S_c = \Sigma_c^{-1}$ is the inverse of its covariance matrix. The Gaussian prototypical network is therefore able to learn class and direction-dependent distance metric in the embedding space. We found that the speed of training and its accuracy depend strongly on how distances are used to construct a loss. We conclude that the best option is to work with linear Euclidean distances, i.e. $d_c(i)$. The specific form of the loss function used is presented in Algorithm~\ref{alg:prototrain}. A diagram of the embedding space for a Gaussian prototypical network is shown in Figure~\ref{fig:diagram2}. A sample of the embedding space during training is shown in the Appendix in Figures~\ref{fig:embed} and~\ref{fig:embed_dots}. It illustrates the clustering of similar characters that is used for classification.
\begin{figure}[t]
	\begin{center}

		\includegraphics[width=0.45\linewidth]{imgs/diagram2}
	\end{center}
	\caption{A diagram showing the embedding space of a Gaussian prototypical network. An image is mapped to its embedding vector (dark dot) by the encoder. Its covariance matrix (dark ellipse) is also output by the encoder. An overall covariance matrix for each class is then computed (large light ellipses), as well as prototypes of the classes (stars). The covariance matrix of a class is used to locally modify the distance metric to query points (shown in gray).}
	\label{fig:diagram2}
\end{figure}

We study settings in which the covariance matrix is diagonal, as summarized in Section~\ref{item:type}. For the \textit{radius} case, $S = sI$, where $I$ is the identity matrix, and $s \in \mathbb{R}^1$ is calculated from the raw encoder output for each image. For the \textit{diagonal} case, $S = \mathrm{diag} \left ( \vec{s} \right )$, where $\vec{s}$ is similarly calculated from the raw encoder output for each image.

\subsection{Defining a class}
A critical part of a prototypical network is the creation of a class prototype from the available support points of a particular class. We propose a variance-weighted linear combination of embedding vectors of individual support examples as our solution. Let class $c$ have support images $I_i$ that are encoded into embedding vectors $\vec{x}^c_i$, and inverses of covariance matrices $S^c_i$, whose diagonals are $\vec{s}^c_i$. The prototype, i.e. the centroid of the class, is defined as
\begin{equation}
\label{eq:prot}
\vec{p}_c = \frac{\sum_i \vec{s}^c_i \circ \vec{x}^c_i }{\sum_i \vec{s}^c_i} \, ,
\end{equation}
where $\circ$ denotes a component-wise multiplication, and the division is also component-wise. The diagonal of the inverse of the class covariance matrix is then calculated as
\begin{equation}
\label{eq:sigma}
\vec{s}_c = \sum_i \vec{s}^c_i \, .
\end{equation}
This corresponds to the optimal combination of Gaussians centered on the individual points into an overall class Gaussian, hence the name of the network. The elements of $s$ are effectively $1/\sigma^2$. Equations~\ref{eq:prot} and~\ref{eq:sigma} therefore correspond to weighting examples by $1/\sigma^2$. This allows the network to down-weight examples that are less important for defining the class, and therefore makes our architecture more suitable for noisy, inhomogeneous, or otherwise imperfect datasets.

For a one-shot regime, which is the way our networks were trained, there is a single labeled vector $\vec{x}^c$ defining each class. That means that the vector itself becomes the class prototype, and its covariance matrix is also inherited by the class. The covariance then comes into play in modifying distances to query points. The full algorithm is described in Algorithm~\ref{alg:prototrain}.

\begin{algorithm*}[tb]
	\caption{Classification and loss algorithm for Gaussian prototypical networks}
	\label{alg:prototrain}
	\begin{algorithmic}
		\REQUIRE Images $I$, class labels $y$, encoder $f$, $N_s$ number of support points per class, $N_q$ number of query points per class, $N_c$ number of classes in a batch
		\ENSURE Predicted labels $\hat{y}$, loss $L$
		\FOR{batch in data}
			\STATE Choose a subset $C_\mathrm{used}$ of $N_c$ classes from all possible training classes at random (without replacement)
			\FOR{class $c$ in classes $C_\mathrm{used}$}
				\STATE Choose $N_s$ \textit{support} examples for the class $c$ from batch and call them $S_c$.
				\STATE Choose $N_q$ \textit{query} examples for the class $c$ from batch and call them $Q_c$.
				\STATE Embed $Q_c$ as $f(Q_c) \to \tilde{Q}^c, \_$
				\STATE Embed $S_c$ as $f(S_c) \to \tilde{S}^c , \{ \vec{s}^c \}$ \COMMENT{vectors and covariances}
				\STATE Class prototype $\vec{p}_c \gets \left ( \sum_i \vec{s}^c_i \circ \tilde{Q}^c_i \right ) / \left ( \sum_i \vec{s}^c_i \right ) $ \COMMENT{summed over query points}
				\STATE Class inverse covariance $\vec{s}^c = \sum_i \vec{s}^c_i$ \COMMENT{summed over query points}
			\ENDFOR
			\STATE Loss $L \gets 0$ \COMMENT{zeroing the loss per batch}
			\FOR{query image $i$ in batch query points}
				\STATE Let the image $i$ embedding vector be $\vec{x}$ and its true class $y$
				\FOR{class $c$ in classes $C_\mathrm{used}$}
					\STATE $\mathrm{difference}(c,i) =  \vec{x} - \vec{p}_c$ \COMMENT{position difference from class $c$}
					\STATE $\mathrm{distance}(c,i) = \sqrt{ \left ( \vec{x} - \vec{p}_c \right )^T \vec{s}^c_i \circ \left ( \vec{x} - \vec{p}_c \right ) }$ \COMMENT{covariance-modified distance}
				\ENDFOR
				\STATE Predicted label $\hat{y}_i \gets \argmin_c \mathrm{distance}(c,i)$ \COMMENT{labelled based on the "closest" prototype}
				\STATE $L \gets L + \frac{1}{N_c} \mathrm{softmax\,cross\,entropy}(-\mathrm{distance}(c,i), y)$
				\COMMENT{summed over $c$}
			\ENDFOR
			\STATE $L \gets L / \mathrm{batch\,size}$ \COMMENT{loss per batch for comparability}
		\ENDFOR
	\end{algorithmic}
\end{algorithm*}

\subsection{Evaluating models}
\label{sec:evaluate}
To estimate the accuracy of a model on the test set, we classify the whole test set for every number of support points $N_s = k$ in the range $k \in [1,..19]$. The number of query points for a particular $k$ is therefore $N_q = 20 - N_s$, as Omniglot provides 20 examples of each class. The accuracies are then aggregated, and for a particular stage of the model training a $k$-shot classification accuracy as a function of $k$ is determined. Since we are not using a designated validation set, we ensure our impartiality by considering the test results for the 5 highest training accuracies, and calculate their mean and standard deviation. By doing that, we prevent optimizing our result for the test set, and furthermore obtain error bounds on the resulting accuracies. We evaluate our models in 5-way and 20-way test classification to directly compare to existing literature.

\section{Datasets}
\label{sec:datasets}
We used the Omniglot dataset.~\cite{omniglot} Omniglot contains 1623 character classes from 50 alphabets (real and fictional) and 20 hand-written, gray-scale, $105 \times 105$ pixel examples of each. We down-sampled them to $28 \times 28 \times 1$, subtracted their mean, and inverted them. We were using the recommended split to 30 training alphabets, and 20 test alphabets, as suggested by \cite{omniglot}, and used by \cite{prototype2017}. The training set included overall 964 unique character classes, and the test set 659 of them. There was no class overlap between the training and test datasets. We did not use a separate validation set as we did not fine-tune hyperparameters and chose the best performing model based on training accuracies alone (see Section~\ref{sec:evaluate}).

To extend the number of classes, we augmented the dataset by rotating each character by $90^\circ$, $180^\circ$, and $270^\circ$, and defined each rotation to be a new character class on its own. The same approach is used in \cite{matching}, and \cite{prototype2017}. An example of an augmented character is shown in Figure~\ref{fig:rot}. This increased the number of classes 4-fold. In total, the training set therefore included 77,120 images, and the test set 52,720 images. Due to the rotational augmentation, characters that have a rotational symmetry were nonetheless defined as multiple classes. As even a hypothetical perfect classifier would not be able to differentiate e.g. the character "O" from a rotated "O", $100\,\%$ accuracy was not reachable.
\begin{figure}[t]
	\begin{center}

		\includegraphics[width=0.4\linewidth]{imgs/rotace.png}
	\end{center}
	\caption{An example of augmentation of class count by rotations. An original character (on the left) is rotated by $90^\circ$, $180^\circ$, and $270^\circ$. Each rotation is then defined as a new class. This enhances the number of classes, but also introduces degeneracies for symmetric characters.}
	\label{fig:rot}
\end{figure}

To improve training, and utilization of the ability to predict covariances of characters by the Gaussian network, we purposefully down-sampled a part of the training set in some of our experiments. Details are provided in Section~\ref{sec:experiments}. Our results suggest that the Omniglot dataset is too simple to fully utilize the ability of the Gaussian network to estimate covariance matrices. We hypothesize that the full strength of our method would show more on inhomogeneous datasets with varying quality of individual data points, as is commonly the case in real world applications.

\section{Experiments}
\label{sec:experiments}
We conducted a large number of few-shot learning experiments on the Omniglot dataset. For Gaussian prototypical networks, we explored different embedding space dimensionalities, ways of generating the covariance matrix, and encoder capacities (see Section~\ref{item:sigma} for details). We also compared them to vanilla prototypical networks, and showed that our Gaussian variant is favorable, and that in particular the most efficient way of using the additional parameters is to predict a single number per embedding point (the radius method in Section~\ref{item:sigma}).  In general, we explored the size of the encoder (small, and big, as described in Section \ref{sec:methods}), the Gaussian/vanilla prototypical network comparison, the distance metric (cosine, $\sqrt{L_2}$, $L_2$, and $L_2^2$), the number of degrees of freedom of the covariance matrix in the Gaussian networks (radius, and diagonal estimates, see Section~\ref{item:sigma}), and the dimensionality of the embedding space. We also explored augmenting the input dataset by down-sampling a subset of it to encourage the usage of covariance estimates by the network, and found that this improves $(k>1)$-shot performance.

We were using the \textit{Adam} optimizer with an initial learning rate of $2 \times 10^{-3}$. We halved the learning rate every $2000$ episodes $\approx$ $30$ epochs. All our models were implemented in \verb|TensorFlow|, and ran on a single NVidia K80 GPU on Google Cloud. The training time of each model was less than a day.

We trained our models with $N_c = 60$ classes (60-way classification) at training time, and tested on $N_{ct} = 20$ classes (20-way) classification. For our best-performing models, we also conducted a final $N_{ct} = 5$ (5-way) classification test to compare our results to literature. During training,  each class present in the mini-batch comprised $N_s = 1$ support points, as we found that limiting the number of support points leads to better classification accuracies. This could intuitively be understood as matching the training regime to the test regime. The remaining $N_q = 20 - N_s = 19$ images per class were used as query points.

The detailed results of our experiments are summarized in Table~\ref{tab:results1}. We explored 4 ways of estimating the covariance matrix from the raw covariance output of the encoder, as detailed in Section~\ref{item:type}.

We also verified, provided that the covariance estimate is not needlessly complex, that using encoder outputs as covariance estimates is more advantageous than using the same number of parameters as additional embedding dimension. This holds true for the \textit{radius} estimate (i.e. one real number per embedding vector), however, the \textit{diagonal} estimate does not seem to help with performance (keeping the number of parameters equal). This effect is shown in Figure~\ref{fig:type_effect}, and Table~\ref{tab:results1}.
\begin{figure}[t]
	\begin{center}

		\includegraphics[width=0.65\linewidth]{imgs/type_effect.png}
	\end{center}
	\caption{Comparison of two methods of allocation of extra parameters. Allocating extra parameters to increase embedding space dimensionality (radius), or making a more precise covariance estimate (diagonal). The radius estimate (1 additional real number per embedding vector) outperforms the diagonal estimate, and the vanilla prototypical network with the same number of parameters.}
	\label{fig:type_effect}
\end{figure}
The best performing model was initially trained on the undamaged dataset for 220 epochs. The training then continued with $1.5\%$ of images down-sampled to $24 \times 24$, $1.0\%$ down-sampled to $20 \times 20$, and $0.5\%$ down-sampled to $16 \times 16$ for 100 epochs. Then with $1.5\%$ down-sampled to $23 \times 23$ and $1.0\%$ down-sampled to $17 \times 17$ for 20 epochs, and $1.0\%$ down-sampled to $23 \times 23$ for 10 epochs. These choices were quite arbitrary and not optimized over. The purposeful damage to the dataset encouraged usage of the covariance estimate and increased $(k>1)$-shot results, as shown in Table~\ref{tab:results1}, and Figure~\ref{fig:damage}. This partially shows that the Omniglot dataset is too high quality and simple a testbed for our approach. The training loss curves are shown in Figure~\ref{fig:lr}.
\begin{figure}[t]
	\begin{center}

		\includegraphics[width=0.65\linewidth]{imgs/damage_effect.png}
	\end{center}
	\caption{The effect of down-sampling a part of the training set on $k$-shot test accuracy. The version trained on purposefully damaged data outperforms the one trained on unmodified data, as it learned to utilize covariance estimates better.}
	\label{fig:damage}
\end{figure}
\begin{figure}[t]
	\begin{center}

		\includegraphics[width=0.65\linewidth]{imgs/biggauss_learning_curve.png}
	\end{center}
	\caption{The loss as a function of iteration. The yellow vertical lines show where the learning rate was halved. The beneficial effect of learning rate halving is visible at the beginning. The red segment corresponds to training on a partially down-sampled training set, and therefore has a higher loss.}
	\label{fig:lr}
\end{figure}
The training, and test accuracies as functions of iteration are also shown in Figure~\ref{fig:accs}.
\begin{figure}[t]
	\begin{center}

		\includegraphics[width=0.65\linewidth]{imgs/accs_new.png}
	\end{center}
	\caption{Training accuracy compared to test accuracy. The plot shows the training accuracy (60-way classification) of a large Gaussian prototypical network (radius covariance estimate) and compares it to its 1-shot and 5-shot test performance (20-way classification). It also compares the results to the current state-of-the-art.~\cite{prototype2017}}
	\label{fig:accs}
\end{figure}
\begin{table*}
	\begin{center}
		\centerline{
			\begin{tabular}{|l|l|c|c||c|c|}
				\hline
				\multicolumn{4}{|c||}{} & \multicolumn{2}{|c|}{20-way} \\
				\hline
				Model & Covariance & Damage & Embedding dim. & 1-shot & 5-shot \\
				\hline
				Vanilla & & & 512  &  0.9697 $\pm$ 0.0004 \%  &  0.9913 $\pm$ 0.0003 \% \\
				Big Gauss &  Diagonal (a) & & 256   &  0.9688 $\pm$ 0.0008 \% &  0.9910 $\pm$ 0.0004 \% \\
				Big Gauss &  Radius (b) & & 512  &  0.9703 $\pm$ 0.0003 \% &  0.9917 $\pm$ 0.0005 \% \\
				Big Gauss &  Radius (c) & & 512   &  0.9698 $\pm$ 0.0003 \%  &  0.9915 $\pm$ 0.0005 \% \\
				Big Gauss &  Radius (d) & & 512  &  \textbf{0.9702 $\pm$ 0.0004 \%}  &  \textbf{0.9916 $\pm$ 0.0005 \%}  \\
				Big Gauss &  Radius (d) & Yes & 512  &  \textbf{0.9694 $\pm$ 0.0014 \%}  &  \textbf{0.9929 $\pm$ 0.0004 \%}  \\
				\hline
				\multicolumn{4}{|c||}{} & \multicolumn{2}{|c|}{5-way} \\
				\hline
				Big Gauss &  Radius (d) & & 512  &  \textbf{0.9902 $\pm$ 0.0005 \%}  &  \textbf{0.9966 $\pm$ 0.0002 \%}  \\
				Big Gauss &  Radius (d) & Yes & 512  &  \textbf{0.9907 $\pm$ 0.0003 \%}  &  \textbf{0.9973 $\pm$ 0.0002 \%}  \\
				\hline
			\end{tabular}
		}
	\end{center}
	\caption{The test results for the big encoder architecture ($3 \times 3$ filters, 4 layers, number of filters = 128,256,512,$\bullet$) comparing the effect of dimensionality of the covariance matrix as well as the embedding space on the final accuracy. (a, b, c, d) relates to different methods of converting the raw encoder output to the covariance matrix. The radius estimate of the covariance adds one more dimension to the encoder output. The diagonal estimate doubles the number of encoder outputs. The \textit{Big Gauss} with embedding dimension $256$ and a diagonal covariance therefore has the same number of parameters as the vanilla network with $512$. The radius estimate adds 1 dimension and is therefore comparable to the vanilla model of the same embedding dimensionality. The damage column signifies that the training set was purposefully partially down-sampled during training.}
	\label{tab:results1}
\end{table*}

We conducted verification experiments with the small architecture, and reached comparable results to \cite{prototype2017}, as summarized in Table~\ref{tab:verification}. The table also shows that training in a $N_s > 1$ regime, i.e. with more data points defining a class, leads to worse performance. The effect of the higher capacity of the big model is shown in Figure~\ref{fig:size}.
\begin{figure}[t]
	\begin{center}

		\includegraphics[width=0.65\linewidth]{imgs/gauss_lr_size_comparison.png}
	\end{center}
	\caption{The effect of model capacity on loss. The bigger model trains faster and reaches a smaller loss overall. The yellow vertical lines show where the learning rate was halved.}
	\label{fig:size}
\end{figure}
\begin{table*}
	\begin{center}
		\begin{tabular}{|l||c|c|}
			\hline
			Method (20-way classification) & 1-shot test & 5-shot test \\
			\hline
			Best results from \cite{prototype2017} & $96.0\, \%$ & $98.9\, \%$ \\
			\hline
			Small, $N_s = 5$ & $94.28 \pm 0.26 \, \%$ & $98.61 \pm 0.18 \, \%$ \\
			Small, $N_s = 1$ & $95.64 \pm 0.22 \, \%$ & $98.87 \pm 0.11 \, \%$ \\
			Small Gauss $\sigma \in \mathbb{R}^1$, $N_s = 1$ & $95.99 \pm 0.28 \, \%$ & $98.81 \pm 0.16$ \% \\
			\hline
		\end{tabular}
	\end{center}
	\caption{Results of our verification experiments with small architectures. State of the art for 20-way classification 1-shot was $96.0 \, \%$ and for 5-shot $98.9 \, \%$. $N_s$ is the number of support points per class during training. All training was done in $N_c = 60$ (60-way classification) regime. For the Gaussian prototypical model $\sigma \in \mathbb{S}$ shows the dimensionality of the estimated covariance matrix.}
	\label{tab:verification}
\end{table*}
The comparison of our models, and results from literature is presented in Table~\ref{tab:comparison}. To our knowledge, our models outperform state-of-the-art 1-shot and 5-shot results in both 5-way and 20-way test-time classification on Omniglot. In 5-way 5-shot classification in particular, we are reaching very close to perfect performance ($99.73 \pm 0.02$ \%) and therefore conclude that a more complex dataset is needed for further few-shot learning algorithms development.
\begin{table*}
	\begin{center}
		\centerline{
		\begin{tabular}{|l||c|c|c|c|}
			\hline
			 & \multicolumn{2}{c|}{{20-way}} & \multicolumn{2}{c|}{{5-way}}  \\
			\hline
			Model & 1-shot & 5-shot & 1-shot & 5-shot  \\
			\hline
			Matching networks \cite{matching} & 93.8\% & 98.5\% & 98.1\% & 98.9\% \\
			Matching networks \cite{matching} & $93.5\, \%$ & $98.7\, \%$ & 97.9\% & 98.7\% \\
			Neural statistician \cite{stats} & $93.2\, \%$ & $98.1\, \%$ & 98.1\% & 99.5\% \\
			Prototypical network \cite{prototype2017} & $96.0\, \%$ & $98.9\, \%$ & 98.8\% & \textbf{99.7}\% \\
			TCML \cite{TCML} & & & 98.8 $\pm$ 0.22\% & 99.2 $\pm$ 0.17\% \\
			Fin et al. \cite{fin} & & & 98.7 $\pm$ 0.4\% & \textbf{99.9 $\pm$ 0.3}\% \\
			Munkhdalai and Yu \cite{munk} & & & 98.9 \% & \\
			\textbf{Big Gauss (radius) (ours)} & \textbf{97.02 $\pm$ 0.04\%} & \textbf{99.16 $\pm$ 0.05\%} & \textbf{99.02 $\pm$ 0.05\%} & \textbf{99.66 $\pm$ 0.02\%}\\
			\textbf{Big Gauss (radius) with damage (ours)} & \textbf{96.94 $\pm$ 0.14\%} & \textbf{99.29 $\pm$ 0.04\%} & \textbf{99.07 $\pm$ 0.03\%} & \textbf{99.73 $\pm$ 0.02\%}\\
			\hline
		\end{tabular}
}
	\end{center}
	\caption{The best results of our experiments as compared to other papers. All training was done in $N_c = 60$ (60-way classification) regime. To our knowledge, our models have statistically significant state-of-the-art performance in both 1-shot and 5-shot 20-way classification, as well as for 1-shot 5-way classification. We perform comparably with current state-of-the-art in the 5-shot 5-way case.}
	\label{tab:comparison}
\end{table*}

\subsection{Usage of covariance estimate}
In order to validate our assumption that the Gaussian prototypical network outperforms the vanilla version due to its ability to predict covariances of individual embedded images and therefore the possibility to down-weight them, we studied the distribution of predicted values of $s$ for our best performing network that was trained on partially down-sampled training set. We purposefully down-sampled a part of the data, and studied the resulting distribution of covariances.

Down-sampling an image changes its mean and variance. As our encoders were built with a batch normalization layer in each block (see Equation~\ref{eq:block} for details), the meaning of a particular value of the raw output changes based on the current batch. Since our model was trained with batch normalization, turning it off to study the covariances would lead to irrelevant results.

For the undamaged dataset, the vast majority of covariance estimates took the same value. This stays true even when artificially introducing damage by down-sampling. However, the distributions are shifted due to the effect of batch normalization in the last layer. To better represent the meaning of individual inverse covariances, we aligned our histograms such that the most frequent values match each other. This approach is useful as the most dominant values correspond to the raw output of $0$, and only the differences from it influence classification. The result is shown in Figure~\ref{fig:sigma}.
\begin{figure}[!htb]
	\begin{center}

		\includegraphics[width=0.55\linewidth]{imgs/sigmas1.png}
	\end{center}
	\caption{Predicted covariances for the original dataset and a partially down-sampled version of it. The Gaussian network learned to down-weight damaged examples by predicting a higher $s$, as apparent from the heavier tail of the yellow distribution. The distributions are aligned together, as only the difference between the leading edge and a value influence classification.}
	\label{fig:sigma}
\end{figure}

\section{Conclusion}
\label{sec:conclusion}
In this paper we proposed Gaussian prototypical networks for few-shot classification -- an improved architecture based on prototypical networks~\cite{prototype2017}. We tested our models on the Omniglot dataset, and explored different approaches to generating a covariance matrix estimate together with an embedding vector. We showed that the Gaussian prototypical network outperforms the vanilla prototypical network with a comparable number of parameters, and therefore that our architecture choice is beneficial. We found that estimating a single real number on top of an embedding vector works better than estimating a diagonal or a full covariance matrix. We suspect that lower quality, less homogeneous datasets might prefer a more complex covariance matrix estimate. Contrary to \cite{prototype2017}, we found that the best results are obtained if one trains the network in the 1-shot regime. We then extended the size of our model and managed to reach, to the best of our knowledge, state-of-the-art performance in 1-shot and 5-shot classification both in 5-way and 20-way test regime (for 5-shot 5-way, we are comparable to previous state-of-the-art). We managed to get better accuracies (in particular for $(k>1)$-shot classification) by artificially down-sampling fractions of our training dataset, encouraging the network to fully utilize covariance estimates. Especially for 5-way classification, our results are very close to perfect performance and we therefore conclude that further development in few-shot classification should focus on more complex datasets than Omniglot. We hypothesize that the ability to learn the embedding as well as its uncertainty would be even more beneficial for poorer-quality datasets, which are commonplace in real world applications. There, down-weighting some data points might be crucial for faithful classification. This is supported by our experiments with down-sampling Omniglot.

\clearpage
\subsubsection*{Acknowledgements}
We would like to thank Ben Poole, and Yihui Quek (both at Stanford University) for useful discussions, and brainstorming. A part of this work was done as a class project for the Stanford University CS~231N: \textit{Convolutional Neural Networks for Visual Recognition}, which provided Google Cloud credit coupons that partially supported our GPU usage.

{
	\small
	\bibliographystyle{unsrt-phys}

redpajama_set_name: RedPajamaArXiv


text:
TV / Uncategorized
Set List, the improvised stand-up show, scores TV deal with Sky Atlantic
by Sean L. McCarthy July 3, 2012 July 3, 2012
After a solid year-plus of experimentation on both sides of the pond, the improvised stand-up show, Set List: Comedy Without a Net, is getting a chance to wow TV viewers with a 14-episode order from Britain's Sky Atlantic HD. The series begins taping July 4 in London, with additional tapings on the 5th, 10th and 12th there (if you're in London then, you can get free tickets to attend the tapings). It'll also tape episodes July 17-18 near San Francisco at the Throckmorton Theatre, head to Montreal for a run at the Just For Laughs comedy festival July 23-28, and then tape again this fall in Los Angeles.
The concept is simple.
Comedians walk onstage without a prepared set. Instead, they're asked to improvise a stand-up performance based on premises presented to them while onstage.
Get a sense of what that looks like by watching this reel "Set List" put together last winter. Roll it.
Comedians taking part in the first season of Set List for Sky Atlantic HD include Robin Williams, Tim Minchin, Drew Carey, Rich Hall, Frank Skinner, Tony Law, Rick Overton, Eddie Pepitone, Josie Long, Reggie Watts, JB Smoove, Andrew Maxwell, Russell Kane, Judah Friedlander, Dana Gould, Paul Foot, Ross Noble and Dara O'Briain.
Philip Edgar-Jones, Sky's Head of Entertainment called it "a uniquely terrifying approach to stand-up comedy. I love it because we have no idea what we'll get. It's like a bizarre compulsion to some of the biggest names in stand-up who are addicted to the freedom it brings them to take their comedy anywhere and everywhere."
Co-creator Troy Conrad developed the format with Paul Provenza first at the Comedy Central Stage in Los Angeles.
Conrad tells The Comic's Comic: "He got what this show was right away — a place for comics to play with and hone their instincts onstage, in an environment where technically they can do no wrong in the audience's eyes, because they're getting really challenging topics in the moment."
How did you wind up getting the attention of Sky Atlantic?
"After a great run at last year's Montreal JFL, Edinburgh, and a regular run at the Soho Theatre in London, the attention the show was getting was steadily increasing. Big UK comics were hanging out in the back to see this. Then the company that we're partnered with for the TV show came in, Princess Productions. They brought some people from Sky Atlantic, and there was interest in a pilot, then 10 episodes, then finally they commissioned us for 14 episodes."
Have any U.S. networks shown any interest in Set List?
"We had some interest from Comedy Central, but right now our home is Sky and for good reason — they're giving us complete creative and language freedom and letting us push the envelope like we do in the live shows. This is the opposite of the shiny floor stand-up shows on TV. This is part stand-up, part documentary, and Sky is behind it all the way. I didn't know a network could even BE this supportive of a stand-up show this outside the box."
Is there a chance of selling it to them via Sky?
"We have already had interest in distribution for a number of countries which would include the U.S., Australia, and more, but nothing is inked yet. Since the show itself is based on using international comics, it would be great for this to be available around the world for what it would do for comedy. Audiences say they want this show, and comics say they need this show."
And how will the format change, if at all, to accommodate a TV audience vs. the typical live shows?
"The format is almost exactly the same, we really kept the integrity of the show. The TV show will be different in that it gets more in-depth with the comics talking about the adrenaline and experience of doing the show. Lots of comics say it feels like doing stand-up for the first time, but with a supportive audience."
Reggie Watts at a Set List show at the UCB Theatre
"The comics really love this. The best comics in the world can feel like their stuff is stagnant. Even when I was doing more club dates, no matter how much new stuff I did, I couldn't shake the feeling of feeling like it was all so safe. I always had an extra closer I could pull out of my pocket, or a way to work the crowd, or some other thing to guarantee things would go well. I love not having that anymore, being able to go onstage with practically nothing, and I think most of the comics who have done this show feel the same way. I am really inspired by how vulnerable they are and they keep coming back no matter what. UK comic Phill Jupitus called Set List 'Catnip for comedians.'"
You'll be able to see why soon enough. If you're in London, San Francisco, Montreal or Los Angeles, then even sooner.
TaggedImprovPaul ProvenzaSet ListSky Atlanticstand-upTroy Conrad
Back from the dead: HBO orders 4th season of "Eastbound & Down"
The PIT launches New York City Sketch Festival
Jay Leno to receive Mark Twain Prize for American Humor in 2014
These comedians dressed up (or down) for Halloween. How about you?
Assessing the Rififi/post-Rififi scene
3 thoughts on "Set List, the improvised stand-up show, scores TV deal with Sky Atlantic"
Pingback: Set List, the improvised stand-up show, scores TV deal with Sky … | Tv Show Reviews
Pingback: Set List, the improvised stand-up show, scores TV deal with Sky … - comedians-in-uk
Pingback: Set List live improvised stand-up shows come to Nerdist, with a special LIVE show for YouTube Comedy Week | The Comic's Comic


text:
<script src=../priorities/resources/common.js></script>
<script src=../resources/testharness.js></script>
<script src=../resources/testharnessreport.js></script>

<!-- Setup getInitialResourcePriority promises.  -->
<script>
const priority_tests = [
  {
    promise: internals.getInitialResourcePriority(new URL('../resources/dummy.css', location), document),
    expected_priority: kHigh,
    description: 'low importance on <link rel=stylesheet> must load with kHigh priority'
  },
  {
    promise: internals.getInitialResourcePriority(new URL('../resources/dummy.css?1', location), document),
    expected_priority: kVeryHigh,
    description: 'high importance on <link rel=stylesheet> must have no effect on resource load priority'
  },
  {
    promise: internals.getInitialResourcePriority(new URL('../resources/dummy.css?2', location), document),
    expected_priority: kVeryHigh,
    description: 'auto importance on <link rel=stylesheet> must have no effect on resource load priority'
  },
  {
    promise: internals.getInitialResourcePriority(new URL('../resources/dummy.css?3', location), document),
    expected_priority: kVeryHigh,
    description: 'invalid importance on <link rel=stylesheet> must have no effect on resource load priority'
  },
  {
    promise: internals.getInitialResourcePriority(new URL('../resources/dummy.css?4', location), document),
    expected_priority: kVeryHigh,
    description: 'missing importance on <link rel=stylesheet> must have no effect on resource load priority'
  }
];
</script>

<link id=link1 importance=low rel=stylesheet href=../resources/dummy.css>
<link id=link2 importance=high rel=stylesheet href=../resources/dummy.css?1>
<link id=link3 importance=auto rel=stylesheet href=../resources/dummy.css?2>
<link id=link4 importance=xyz rel=stylesheet href=../resources/dummy.css?3>
<link id=link5 rel=stylesheet href=../resources/dummy.css?4>

<script>
  promise_test(async (t) => {
    await new Promise(resolve => {
      addEventListener('DOMContentLoaded', resolve);
    });

    const base_msg = ' was fetched by the preload scanner';
    assert_true(internals.isPreloaded(link1.href), link1.href + base_msg);
    assert_true(internals.isPreloaded(link2.href), link2.href + base_msg);
    assert_true(internals.isPreloaded(link3.href), link3.href + base_msg);
    assert_true(internals.isPreloaded(link4.href), link4.href + base_msg);
    assert_true(internals.isPreloaded(link5.href), link5.href + base_msg);
  }, 'all stylesheets must be fetched by the preload scanner');

  // Setup the tests described by |priority_tests|.
  for (const test of priority_tests) {
    promise_test(async () => {
      const priority = await test.promise;
      assert_equals(priority, test.expected_priority);
    }, test.description);
  }
</script>

redpajama_set_name: RedPajamaGithub


F1 Car Top Speed, Indycar Top Speed, Formula E Top Speed - Who Wins?
Which factors affect the top speed of F1 cars and other motorsport cars?
You would be right to imagine that the F1 car top speed would be faster than the Formula E top speed but do you know by how much and how NASCAR top speed and IndyCar top speed fit into this picture? There are many factors that govern how fast a motorsport car can travel and the power of the engine is just the start. Braking ability is important because drivers can only go as fast as allows them to brake for corners. Lift (upwards vertical aerodynamic force) and downforce (downwards vertical aerodynamic force) also play a strong part, as do tire quality and driver ability.
What is the top speed of F1 cars?
Our expectations for Formula 1 are high, although some prefer other forms of motor racing, Formula One is considered by many to be the elite in motorsport. It follows that our anticipation of the F1 car top speed would be higher than other motorsports. As with most motorsports, F1 car developers face a range of restrictions that change from season to season, these result in a fluctuation in speed records. The F1 car top speed is also limited by track design, with the longest straight giving the greatest opportunity for speed but this, in turn being restricted by the necessity for the optimum cornering speed.
There is some controversy over the F1 car top speed record, Juan Pablo Montoya's 2005 record of 231.5 mph was achieved during testing but recognised by the FIA whereas Valtteri Bottas' 2016 top speed of 231.48 mph was achieved in race conditions but has yet to be accepted by FIA record officials. Statistics for the 2017 F1 season so far show that the cornering speed of F1 cars has increased due to changes in car design. The top speeds at Silverstone's Copse corner were this year 18.6 mph faster than last year at 180 mph. Silverstone has a high-speed layout and is considered one of the fastest Formula One tracks. At the 2017 British Grand Prix, Felipe Massa recorded a maximum speed of 202.06 mph.
What is the NASCAR top speed?
Did you know that NASCAR is an acronym for National Association for Stock Car Auto Racing? As the original definition of a stock car is one that has had no modification since factory configuration, it is maybe surprising that NASCAR top speeds do sometimes match the top speed of a Formula car or even that of F1's modern, electric brother, Formula E. Today's stock cars may resemble standard factory models on the outside but they have major internal modifications, which meet strict car design regulations that differ for each class.
The fastest speed ever reached by a NASCAR specification stock car was 244.9 mph but Russ Wicks' Dodge Charger was on the Bonneville Salt Flats at the time, not a racing circuit. In 1987 Bill Elliott set the series qualifying speed record at 212.809 mph at Talladega Superspeedway. The fact that this record still stands today is not down to engineering progress or driver talent, it is because such speeds were considered highly dangerous on an enclosed circuit. Following Bobby Allison's dramatic, airborne crash in the same year, in which his car narrowly avoided smashing into the crowd, unrestricted high-speed races were ended at Talladega Superspeedway and Daytona International Speedway. Today's NASCAR drivers reach speeds of around the 200 mph mark.
What is the IndyCar top speed?
The IndyCar Series came into being in 1996 and was started by Tony George who, at the time, owned the popular Indianapolis Motor Speedway. The most famous IndyCar event is the Indianapolis 500. Whilst IndyCars look and perform very much like Formula One cars, there are some significant differences. For example, Formula 1 cars have much bigger budgets than IndyCars and IndyCars all come from the same manufacturer whereas Formula One teams build their own distinctive cars. The top 2017 speed for the Indianapolis 500 was 232.164 mph and driven by New Zealander Scott Dixon. Average speeds over the course of a season are not so high, for example, Alexander Rossi's average speed for the 2016 season was 166.634 mph.
What is the Formula E top speed?
As the new kid on the motorsport block and a very different kid at that, entirely electric powered Formula E had something to prove when it was introduced to the world in Beijing in 2014. The electric Formula E cars are dependent, to a great extent, on the ability of their batteries to deliver power. Development and improvements to the Formula E battery are still ongoing, but with the 2016 swap from Williams Advanced Engineering to McLaren Applied Technologies, improvements in speed are expected. The current battery can only deliver Formula E top speeds approaching 150 mph but the jury is out on the 2018/19 next generation cars, the concept of which was revealed by Spark Racing Technology in February 2017. An apparent lack of speed gains has been the source of considerable discussion but it looks as though drivers will now be able to complete a whole race without the car swaps that are currently necessitated by poor battery life.
Speed is exciting and the very essence of motorsport but with it comes risk. The provision of professional medical cover and equipment at all motorsport events is vital to safety. At MDD our experienced team have wide-ranging knowledge and experience of working at motorsport events. Get in touch today to speak to our specialist consultation team about all of your medical and safety equipment needs.


text:
Q: Best way to construct a Directed Acyclic Word Graph (DAWG) I am currently looking into DAWGs and I haven't been able to find one good way of constructing an acyclic automaton.
So basically, what I want to do is this :

It is basically a tree, where the number of states are reduced. I would use it with numbers but the concept is exactly the same.
I wonder what would be the fastest way to do it, my actual plan was to construct the graph as shown on the left, and then look at the states of low level and when they are similar merge them.
Although, I am not sure this is the best way of doing it, does anyone have an idea on how to construct it.
Regards.

A: DAWGs are minimal-state finite automata for the particular set if strings they store. You can construct them by treating the trie you have as a non-minimal finite automaton and running a standard DFA minimization algorithm on it. This is perhaps the easiest way to construct the DAWG, and also probably the fastest.
Hope this helps!

redpajama_set_name: RedPajamaStackExchange


text:
10 Skills to Work in Information Technology
All Technology Careers
Technology Careers Skills
By Laura Schneider
Whether you are just starting your technical career or looking to make a career change, it helps to know what career skills are hot in the job market. The following list is of technical skills that are currently in high demand. The list includes information, a brief history of each technology, and links to training resources.
Unix Operating System
gilaxia/E+/Getty Images
The Unix Operating System is the foundation of the internet. Unix is a critical skill for a career in Information Technology.
The Linux Operating System is a Unix-like operating system that is being used by many large companies. It is quickly growing in popularity and is a popular operating system to develop for. Linux is a great career skill if you want a career as a System Administrator.
Java is an object-oriented programming language developed by Sun Microsystems. Java is a popular career skill if you want to be a Web Developer.
C++ Programming Language
C++ is another high level, object-oriented programming language. C++ is often used in commercial application software development. It has been and continues to be a hot programming career skill in the market. A career as a Software Engineer would be the most likely with C++ expertise.
Perl Programming Language
Perl is a dynamic scripting language that is used quite often in networking, system administration, and website development. Knowledge of this multi-use language is a must-have for many career paths.
MySQL Database Management
MySQL is a database management tool that is widely used. Knowledge of MySQL is necessary for many careers, including Database Administrators, Web Developers, and Software Engineers.
Microsoft C# Programming Language
The C# programming language from Microsoft Corporation is rapidly gaining popularity as more companies utilize the .NET framework. It is one of the hottest career skills in the market right now for developers.
XML - Extensible Markup Language
XML or Extensible Markup language is a popular language that makes information on the internet viewable across many different platforms. It is relatively easy to learn. While many developers know XML, fewer of them are experts in XML. It is a specialty focus that is gaining popularity for a career in web development.
HTML Skills
HTML continues to be a necessary skill to have for web design careers. Expert knowledge of HTML is a must-have for this career path.
Management of technical projects is a necessary career skill for advancement, no matter which technical career path you choose. Formal project management training is a great start to more senior level technical roles.
Here's a List of Top Information Technology Publications Worth Reading
Example: Web Developer Resume With Summary Statement Example
Learn About Being Computer Engineer and What Skills You Need to Have
19 Tech Terms You Should Know
The 7 Fastest-Growing Tech Jobs
Software Developer Cover Letter and Resume Example
10 High-Paying Jobs You Can Get Without a College Degree
Examples of the Best Skills to Put on Your Resume
Important Skills for Information Technology (IT) Jobs
Top 7 Entry-Level IT Jobs
Start Your Tech Career With One of These Resume Samples
Computer Systems Administrator Job Description: Salary, Skills, & More
Get Organized With Museum System (TMS) Collections Management Software
10 Of The Top Paying Tech Careers Right Now
Android and iOS Mobile Developer Skills for Resumes
Get Ahead in Data Science by Learning Lucrative Languages


text:
Home Team The Reverend Laura Gronberg
The Reverend Laura Gronberg
Pastor@secondchurchboxford.org
Laura is the 30th settled pastor of Second Congregational Church of Boxford, United Church of Christ.
Laura comes to Second Church with joy after serving as a chaplain at Wayside Hospice in Wayland, MA. Laura received her Bachelor of Arts in Psychology and Religious Studies in 1994 from The College of Wooster in Wooster, Ohio. She received her Master's of Divinity in May 2008 from Andover Newton Theological School where she was inducted into the Jonathan Edwards Honor Society.
Laura is married to Fred who is an Emergency Care Instructor, among his varied talents and together, they have two children. Matthew is attending Wake Forest Univ. and Rachel is attending Davidson College – both located in NC.
Laura has been a life-long member of the United Church of Christ, and is the daughter and sister of UCC clergy. Laura was an active member of the Wellesley Congregational Church in Wellesley, Massachusetts before coming to Second Church. It is with deep gratitude that she serves as pastor of our warm and welcoming community of faith.


text:
Q: Will this texture sharing technique work in my universal iOS app? I'm creating an universal iOS game and I'm trying to come up with a good system to share textures. In my case, all the retina iPhone textures are exactly the same size as my iPad textures. Right now I have separate directories for iPad and iPhone content which is very redundant. I would also like to have iPad3 content in my project.
My idea is to have three different versions for every texture:
texture - non-retina iPhone
texture@2x - retina iPhone / non-retina iPad
texture@2x@2x - retina iPad

When the iPhone wants to load a texture, I would point it to the base texture. When the iPad wants to load a texture I would just append an @2x to it. Would this scheme also allow the iPad 3 to find the texture@2x@2x?

A: you dont need a separate graphic for the iPad retina and the iPhone retina they are both @2x

A: I tested this technique out and it worked totally fine. I don't have an iPad 3 to directly test if texture@2x@2x will work. However, I took a non-retina image and called it image@2x. Then I made a retina version and called that image@2x@2x. The iPhone 4 loaded the @2x@2x version thinking it was retina and everything was fine. I assume the iPad 3 can do the same thing without a problem. My universal app's size was reduced from 44MB to 29MB by sharing all the redundant content!


The judicial capital of South Africa has been a city since midway through the 19th century. Today it's a large metropolis with plenty of history to keep visitors busy.
Military history buffs will be keen to see the Anglo Boer War Museum. The National Museum is also in Bloemfontein and is worth visiting. The Presidency Museum is housed in what was once the home of the Orange Free State Boer presidents; and the Queens Fort Military Museum is yet another Boer must-see. The town has a lovely waterfront, and there are plenty of things to see nearby, including the Soetdoring Nature Reserve and two game parks. Also, the Mountain Zebra National Park is not far.
Bloemfontein airport serves the area. Mango, Airlink and South African Express fly here.
Bloemfontein, South Africa connects to 5 airports worldwide.
The shortest flight from Bloemfontein is 236 miles to Johannesburg on South African Airways.
The longest flight from Bloemfontein is 563 miles to Cape Town on South African Airways.
South African Airways fly from Bloemfontein to Cape Town and 3 other cities including Johannesburg.
Save on cheap flights from Bloemfontein. See below sample of Bloemfontein airfares and airline ticket deals.
Top departure cities and airlines offering cheap airline tickets to Bloemfontein.