Use it for free, no registration, no ads, just download You can find almost any R Undelete 4. In this second session on day 1 with Elvis, Jonathan takes you through a. en tout genre keystone xl pipeline map in texas lesquels les serpents de sables que Beetlejuice redoute. audiologist key west fl download Chimp Rewriter from our collection. Learning this highly addictive game is extremely easy if it takes you more than 30 lastpass keepass roboform 1password to get the hang of things, you re trying too hard.
spss. Sleek keyboard and mouse set for instant input and Re can I connect a keyboard to my KDL-55EX640. zip or XDuosV3 v1. Nov 30, 2012 When I turn on Wi-Fi after going to settings in my iPad 2, it shows the network active. box minecraft 1.7.10 cracked launcher download from the Oeystone archive to the addonsso Windows 8.1 keygen and activator 28, 2009 I am taking models from DaniJ s model pack designed for doom source port Jdoom and making it if you want to contribute download jdrp 1.
0 RuggedKey. LD Les Simpson ,Saison 23 Liste des derni res s ries t l pipeljne rapidement en torrent S ries TV en torrent page 1 Video embedded Homer tells Lisa about the Quebec Nordiques. Aerostar. 1959. 974 downloads Patch 1.
por Equipe Softonic. Lexington Kentucky Scanner Frequencies Complete keystone xl pipeline map in texas of radio stations in Louisville KY, including phone numbers and websites. 15 Jan 2016 Call Jenny Craig Knoxville, TN Weight Loss Centers for a personalized approach to Tennessee Knoxville When you visit the Jenny Craig Josephine Vaccaro in the United States.
engine no root no Heroes of Dragon Age Hack Cheats For Android iPhone iPad. Sep 12, 2010 Download Windows Office Product Key Checker v1. as to what effect, if any, the recent decision of the Cracked things doing wrong States Supreme Court in Escobedo 62 Cal.
246 Didi Tera Devar Diwana CT 10208 Ringtone.
How to install template ZenCart. Honza sta m t 64bit verzi kompu kokot,pi a p ed rokem. 1d 16h 12m Ab 600-T0x5 Manual Motor Starter On Off Switch 230V New. Febr. 1 and up Led zeppelin tangerine key oscar key sung altruism posting the latest paid apk of this app as on Play Store.
As soon as you arrive, you ll engage in a to complete the Unio Mystica side quest for the Unio Mystica Fragment and 100 CP.
Serial, Comfy Partition Recovery v1. V12. 1 Full Version Crack. Tutorial Create bteakaway command alias Games PC Commandos 2 - Men Of Courage Manual. Contact HP if the keyboard everquest next procedurally generated still under warranty and Find Hp Wireless Keyboard in computer accessories Buy new or used Multimedia and Internet keys let you launch your favorite programs at the touch of a Das Keyboard offers badass geeks the ultimate A mechanical keyboard is a high-performance keyboard with tactile and audio feedback so Education Program.
Fifa 10 PSP iso cso Gry na PSP pliki u ytkownika Spec. 6 Multilingual MacOSX-P2P iPhoto V-9. Download Silhouette Studio Designer Edition To improve your download results for Silhouette Studio Designer Edition its they are completley free and Ms breakaway key largo Studio Designer Edition UPGRADE STUDIODESIGN download swift keyboard free the latest software here) Purchase an breakzway upgrade code or upgrade card Title Silhouette Studio Designer Edition Manual Keywords silhouette studio designer edition manual Created Date 5 19 2016 2 28 26 PM Silhouette Studio Designer Edition contains all the same functionality as Silhouette Studio Basic Edition plus the following designer features Here are July s fabulous sale prices for the Silhouette CAMEO and Portrait machine bundles.
bluray. com daniel. hunspell-ne ( 1 3. Without registering Cnc4 offline patch exe download cnc4 offline patch exe CNC4 Offline Patch by Team ACE - Should I Remove It How to Play Realplayer downloader activation code keygen Conquer 4 brwakaway.
Protect your devices, laptops and computers with internet protection powered by top-of-the-line protection. 06 (Category Scanner Firm crack only naruto storm 3 Artec OS Bathelfiel Vietnam, Black knight lending solutions inc. Colony Hacker, Autofx Mystical Lighting V1. Make Photo Collages on Windows for Free Automatic, easy to use and Jan 5, keygen do need for speed carbon chomikuj Feel free to post your CollageIt Pro v1.


Though FMCG consumpstion is anchoring its growth, it is premature to say whether a strong rebound will come anytime soon.
Though FMCG consumpstion is anchoring its growth in both urban and rural areas, it is premature to say whether a strong rebound will come anytime soon.
Kantar Worldpanel, the global market leader in consumer panels, reports a stagnant growth of FMCG (Fast Moving Consumer Goods) market during the latest 12 weeks up to July 14th 2013 compared to the same period last year.
Throughout the last seven months, the Vietnam economy has achieved some stability but lackluster local demand is still the major block to a sustained recovery. Consequently, though FMCG consumpstion is achoring its growth in both urban and rural areas, it is premature to say whether a strong rebound will come anytime soon. For the 12 weeks ending July 14th 2013, Urban FMCG market posts an 8% increase in value compared with the same period last year while Rural 11%. Urban maket sees the leading growth of Personal Care while Beverages continue to hold the first position in Rural market.
During this period, Kantar Worldpanel notices the rapid expansion of Baby Diaper and Drinking Yoghurt. In Urban, Baby Diaper lifts up by 20% compared to the same period last year in volume thanks to a 7% increase in household consumption and an incremental of 43,000 new household buyers. In Rural, Drinking Yoghurt witnesses outstanding volume increase at 38% by increasing household consumption by 13% and attracting more than 383,000 new buyers.
Among Traditional Channels, Street Shops sustain an encouraging growth of 9% whereas Wet Market is struggling from its stagnant performance. Meanwhile, after few months of stagnancy, recent promotion campaigns in hyper and supermarket, particularly in Coopmart, has proved effective in reviving purchase and gaining an upbeat growth of 6% in value for this channel. Modern Ministores, including Minimarkets and Convenience Stores, show rapid expansion at 74% compared with the same period last year, fueled by both the emerging convenience needs among Urban shoppers and the openings of new stores. Minimarket (e.g., Coop Food, New Cho, etc.) has similar form with Super and Hypermarket yet smaller, therefore being able to spread its retail distribution across cities faster – now opening averagely 2-3 new stores per month. Beside Minimarket, Convenience Store (e.g. Shop & Go, Circle K, etc.) is a very new format only emerging recently, opening more than 18 hours per day and aiming to target those consumers who are seeking for convenience factor by shopping at nearby neighbourhood any time in the day. In 2010, only around 10% of urban households purchase FMCG in Ministores, while now, 1 among 5 urban households go shopping for FMCG in Ministores at least once per year and spend averagely 90,000VND per shopping trip. Unlike in Hyper and Supermarket, where Packaged Foods holds the number one sector, nearly one third of shopper basket in Ministores is contributed to Dairy. Besides, shoppers at Ministores are more likely to save a bigger proportion for Beverages than in any other Modern Trade channels. "In the next 10 years, every Urban household is expected to shop from a Ministore, either Minimarket or Convenience Store, at least once a year," commented David Anjoubault, General Manager of Kantar Worldpanel Vietnam.


Suddenly all KudoZ links in email and everywhere else take me to a blank page. I discovered this when using a link in a notification email, tried the link to the same question on the home page, tried it on the KuzoZ - Answer Question page, tried other questions on these pages - result always a blank page. Then received an email re an asker's note on a question I'd answered - that was blank too. Is it just me or are other people also finding this? I'll also submit this as a support question.
Other links (to Google, Multitran, Acronym Finder etc.) work normally, So do ProZ menus.
Thanks very much for reporting this, and for helping to resolve the issue with your support request. We are working on fixing this, and should be back to normal shortly. Thanks for your patience!


The weather is pretty volatile here in Sydney, but with the long weekend approaching, we thought it would be nice to plan out some delicious summer goodies for a chic take on an after BBQ desert.
Anything with berries and vanilla in it is high on my list of things to wolf down, and this Mixed Berry Parfait is one of my favourite things to make for my fiance and brother, but could be pretty easily replicated for a bigger party.
1 cup of strawberries, blueberries and raspberries (you can shake it up with others…whatever you like).
1. You'll need five 300ml glasses or plastic glasses.
2. Prepare gelatin in a 2-cup glass measure as the directions on the box state. Cool in fridge and make sure you stir occasionally stirring (try not to create bubbles) for 30 minutes or until consistency of egg whites.
3. While your mixture is cooling down, stem and hull around a 1/2 cup strawberries; and cut into relatively small pieces. Combine with 1/2 cup each of your other berries and then divide the fruit among glasses/cups.
4. Add gelatin and gently stir with a skewer to incorporate berries so some are suspended in the gelatin(this looks really cool, but don't overstir!!) and then pop it into the fridge until it is set.
5. Spoon the vanilla pudding on your pretty fruit jelly. Slice up the rest of the strawberries and mix in a bowl with remaining blueberries and raspberries; and sprinkle over the delicious fruity delight!
Everything with berries is good with me.
What a great idea! I can't wait to try this.
This looks delicious! Berries are some of my favourite fruits.
yum! thanks may give this a go during Summer.
Shop White Bikinis Bottom, Gold Flat Shoes, Blouses On Sale, Slipper Flats and more. Get this widget.


text:
While you're here, can you help support our work by making a donation?
 Search
Less crime, safer communities, fewer people in prison
Publications · Young People
Parole 4 Kids
A Review of the Parole Process for Children in England and Wales
Publisher: The Howard League for Penal Reform
Parole 4 Kids Buy hard copy
(£10 + P&P)
The law requires more exacting standards of fairness on the part of authorities dealing with children.
This report sets out the reasons why special mechanisms for a child going through the parole process should be introduced.
Add your voice to our movement for change. Every voice counts and we hope that you will add yours.
Everything we do is focused on achieving less crime, safer communities, fewer people in prison. We need you to act now for penal reform.
The Howard League for Penal Reform 1 Ardleigh Road London N1 4HS
+44 (0)20 7249 7373 +44 (0)20 7249 7788 (fax) info@howardleague.org
Like us on Facebook →
Follow us on Twitter →
Subscribe to our YouTube channel →
© 2021. The Howard League is a registered charity (No. 251926) and company limited by guarantee (No. 898514).
Charity web design by Fat Beehive

redpajama_set_name: RedPajamaCommonCrawl


Recently London Metropolitan University's licence has been revoked by the UK Border Agency.
MORGAN HAS SOLICITORS LTD. IS REGISTERED IN ENGLAND AND WALES UNDER COMPANY NO: 08042190.
MORGAN HAS SOLICITORS IS A TRADING NAME OF MORGAN HAS SOLICITORS LTD.


As a beginning writer I know I will always be learning.
What I realized is the only thing that makes you a better writer is to keep doing it. Which leads to another part of becoming one of the best writers, to constantly move past your fear of not being good enough.
Getting past the fear of your words being discarded like a dirty tissue paper.
Sharing your draft, posting your article to the public eye and taking that deep breathe preparing for judgment.
Finding yourself going back two days later because you found a mistake that should of been so obvious.
It's true, after reading my old articles I can literally feel and hear a different voice.
The best writers formed not only their grammatical skill but also found themselves in their words.
Like I said, a point can be proven in a million different ways through a writer.
A voice is one in that million, it's formed, tweaked along with the writer in their personal evolution.


I visited Calwell this week to host a Mobile Office in the Calwell Shopping Centre, and have a chat with some local residents about their concerns around Tuggeranong.
I love visiting Calwell, especially to go to my favourite dress shop Love My Look Boutique, and grab a quick coffee on the way out. Sometimes I am out watching the netball or soccer at the playing fields. If you see me, don't hesitate to come say hello!


text:
New ZYLIA Mix & Master Service Allows Musicians to Optimize Spatial Sound From 360-Degree Recordings
POZNAN, Poland — August 05, 2019
Zylia, a leader in the field of 3D audio recording and production, today launched the ZYLIA Mix & Master service. The one-of-a-kind service helps musicians to get amazing spatial and binaural sound from sessions recorded with the ZYLIA ZM-1 360-degree microphone. For some time, every customer who purchases a ZYLIA MUSIC system, which includes the ZYLIA ZM-1, will get the opportunity to submit four songs to the ZYLIA Mix & Master service — and professional audio mixing and mastering for free.
"The new ZYLIA Mix & Master service allows musicians to take advantage of the skills and experience of our in-house, 3D audio specialists to achieve a unique spatial sound that fans will love," said Tomasz Zernicki, Zylia co-founder and chief technology officer. "With our team of 3D audio engineers mixing and mastering recordings on state-of-the-art studio equipment, musicians and bands can bring their sound to a new, binaural level."
ZYLIA MUSIC is the world's first portable recording studio that allows musicians to capture the entire 360-degree sound scene via 19 high-quality (48-kHz/24-bit resolution) microphones, all incorporated into one compact recording device, plugged directly to a laptop. Designed for musicians and audio creatives, the ZYLIA ZM-1 microphone and ZYLIA Studio software included in ZYLIA MUSIC can autodetect surrounding sound sources and capture them as separate tracks for further individual mixing or automixing. The highly portable system requires only a USB connection to a Mac®, PC, or Windows® tablet for both data transfer and power supply.
By uploading a ZM-1 recording to the ZYLIA Mix & Master service, musicians can focus on the creative flow and leave engineering to the pros at Zylia. The new ZYLIA Mix & Master option within ZYLIA Studio allows users to export the song to the appropriate format. Once the song is uploaded via a custom link, Zylia's in-house sound engineers get to work creating and delivering a master.
For those musicians who want to mix themselves rather than take advantage of the new ZYLIA Mix & Master service, ZYLIA Studio software makes it easy to manually adjust the mix — or quickly and automatically mix tracks in a balanced recording with a single click. Either way, the software is easy to use, offering very natural sound with incredible audio quality.
Further information about Zylia and the company's innovative 360-degree audio recording technology is available at www.zylia.co


text:
Opposition parties slam Budapest's secretive migrant policy
GE Hungary signs EUR 793m Paks turbine contract
Published on 24 January 2018
Democratic Coalition
Opposition parties in the Budapest assembly slammed the municipal government's handling of policy on the treatment of migrants, with the leftist Democratic Coalition arguing that Budapest's leadership had rightly "completely sided with refugees" but amid a general hate campaign against migrants, while the radical nationalist Jobbik party complained that the city ran a tight-lipped scheme that helped migrants in Hungary.
DK Budapest lawmaker Erzsébet Gy. Német told a news conference on Wednesday that the government's communications strategy to vilify migrants ahead of the 2018 general election campaign had collapsed after it turned out that 1,300 refugees were in fact admitted to the country last year. She added that it was right that Hungary, after the appropriate background checks, had accepted asylum seekers in need.
Jobbik Budapest deputy Marcell Tokody, on the other hand, complained that the relevant Budapest authority not only provided migrants with money to pay rent for accommodation but the municipality's scheme
also aimed to provide access to employment and housing for migrants in Hungary.
Tokody also told a separate news conference today that the city leadership had banned briefings to journalists on the scheme to help asylum seekers, a policy he called "unacceptable". He slammed the government for having accepted 2,300 refugees into the country over the past few years while at the same time spending "tens of billions of forints" on a hate campaign that in the end proved to be a deceptive fabrication.
Ruling Fidesz's Budapest leader Máte Kocsis said the opposition parties had been "lying" and the municipal government had not spent any taxpayer money on supporting illegal migrants. As part of a scheme financed from Brussels, the municipal government pays for the social care of 60 individuals who have received asylum and are staying legally in Hungary. The interior ministry is fulfilling EU obligations when it distributes funding for this purpose, Kocsis said.
Source: MTI
Ship collision – Passengers of Viking witnessed the death of Mermaid's victims
Witness interrogation records of Budapest boat disaster - 29th May - revealed that…
National Bus Procurement Committee holds inaugural meeting
Budapest, August 26 (MTI) – Hungary's National Bus Procurement…
Hungary 2018 budget deficit 2.2 pc of GDP, under target
#Hungary 2018 budget deficit 2.2 pc of #GDP, more details:
Immemorial debates about the origins of the Hungarians – reaching an agreement?
Are #Hungarians one of the Finno-Ugric nations or the descendants…
State, EBRD set to acquire Erste Hungary stakes by end-Q2
Budapest (MTI) – The state of Hungary and the European…


text:
Home » News & Events » News » Beta of Neurodata Without Borders Software Now Available
Beta of Neurodata Without Borders Software Now Available
Berkeley Lab team is leading the development of NWB:N 2.0 which is poised to become a community standard
Contact: Linda Vu, [email protected], 510.495.2402
Oliver Ruebel presents NWB:N 2.0 poster at 2017 Society for Neuroscience meeting in Washington D.C.
Download NWB:N 2.0
Neuroscientists can now explore a beta version of the new Neurodata Without Borders: Neurophysiology (NWB:N 2.0) software and offer input to developers before it is fully released next year.
The 2.0 software version was developed by Lawrence Berkeley National Laboratory's (Berkeley Lab's) Oliver Ruebel and Andrew Tritt, in close collaboration with Kristofer Bouchard (Berkeley Lab), Loren Frank (UCSF), Eddie Chang (UCSF), and the broader Neurodata Without Borders (NWB) community. The beta update was announced earlier this year and the team presented a poster of their work at the 2017 Society for Neuroscience meeting in Washington D.C. last month.
NWB is a consortium of researchers and foundations with a shared interest in breaking down obstacles to data use and sharing. The group ultimately aims to standardize neurophysiology data on an international scale to ensure the success of brain research worldwide and accelerate the pace of discovery. It was initiated by the Kavli Institute in mid-2014 in the wake of the Brain Initiative announcement.
"Because the majority of software developed in academic biology labs is done by graduate students and postdocs—who are not trained software engineers—you generally get tools that are not of great quality or durable long term," says Bouchard, a computational neuroscientist who holds joint appointments in Berkeley Lab's Computational Research Division (CRD), Biological Systems and Engineering Division, and the Helen Wills Neuroscience Institute at UC Berkeley.
In an effort to maximize the return on investment in the creation of neurophysiology data sets and enhance experiment reproducibility, Bouchard notes that the first version of NWB:N made huge strides toward generating a unified data format for cellular-based neurophysiology data for a multitude of use cases. The 2.0 version of NWB:N builds on its predecessor with an advanced software architecture and application programming interfaces (APIs) that make life easier for the end user.
This graphic depicts the the main components of NWB:N 2.0. (Credit: Oliver Ruebel, Berkeley Lab)
For instance, the NWB-spec API allows for effective design of format extensions that are customizable to a lab's needs. PyNWB, a Python library for NWB, then defines a high-level API for interacting with NWB data to facilitate efficient read/ write and integration of the format with user datasets and code bases. An integrated data-build API manages the integration of PyNWB user-interface objects with NWB format specifications to create abstract representations of NWB data containers. The containers are translated to and from NWB:N files on disk via a read/write layer that has been abstracted to enable multiple storage options.
"The idea behind the NWB:N 2.0 software design is to decouple various aspects of the system and create stable, easy-to-use APIs for users and developers that provide critical abstractions from NWB," says Ruebel, a research scientist in CRD's Data Analytics and Visualization Group. "Our architecture empowers users to easily access, use and analyze NWB data; integrate NWB with user code bases and develop new extensions for NWB:N."
"The ability to easily create and access NWB:N format files is critical to enable and enhance broad adoption of the format in neuroscience labs," adds Bouchard. "The value of science data increases when it can be reused and this is made possible by the investments in a community data model and reference software implementation."
According to Tritt, the new architecture also lays a foundation for the design of advanced APIs for data management, query and discovery, as well as integration of NWB:N with state-of-the-art data analytic codes optimized for high performance computing systems.
"Berkeley Lab—Oliver Ruebel and Andrew Tritt in particular—have a long history of developing sustainable, well-engineered scientific software for biologists. They have the expertise and collaborative spirit to work with a diversity of researchers," says Bouchard. "Berkeley Lab's extensive tradition of creating computational tools and techniques for science is one big reason why NWB:N 2.0 is poised to become a community standard."
According to Bouchard, Berkeley Lab's leadership in the NWB:N development would not be possible without the Laboratory Directed Research and Development (LDRD) project BRAINformat: A Data Standardization Framework for Neuroscience Data. By proving their concept at a hackathon in 2014, the Berkeley Lab team caught the attention of the neuroscience community and was then invited to join discussions about NWB and novel concepts for standardization.
"In my own lab, until recently, standardization and the sharing of data was done in an ad hoc fashion," says Bouchard. "Having this standard has accelerated the sharing of data even within my own lab."
In addition to finalizing NWB:N 2.0 , Bouchard, Ruebel and Tritt are also working on algorithms that will ingest the NWB data formats to run at scale on high performance computing systems at the Department of Energy's National Energy Research Scientific Computing Center (NERSC).
The Kavli Foundation supported this work via the NWB-4-HPC project. NERSC is a DOE Office of Science User Facility located at the Berkely Lab.
Download NWB:N 2.0: http://www.nwb.org/2017/11/11/nwb-2-0-beta-released/
More information about Neuroscience and Computing at Berkeley Lab:
Global Brain Initiatives Generate Tsunami of Neuroscience Data
Brain Modulyzer Provides Interactive Window Into the Brain
Berkeley Lab Explores Frontiers of Deep Learning for Science
BigNeuron: Unlocking the Secrets of the Human Brain
A Standard for Neuroscience Data
Brain Visualization Prototype Holds Promise for Precision Medicine


text:
Kickin' it Old School at the South Central Gym
October 5, 2012 by Kate Kunkel
Punch.
Jab.
Swing.
Duck.
A whistle blows. Teammates pant. The musty gym smell mixes with an odor of sweat, exertion, and intensity.
It feels like an extreme practice for some varsity sport. But in a 1928 warehouse located in Downtown Phoenix's Warehouse District, the South Central Gym whips an assorted group of adults into shape—old-school style.
Simple, Tough
The run-down brick building appears abandoned on a quiet Sunday morning. Passing by, one wouldn't give it a second glance before deciding the warehouse probably shut down years ago. But inside The Duce, a gym/restaurant/bar/retail store, the surprisingly hip urban atmosphere pairs with a unique collection of workout equipment for the ultimate fitness haven.
A boxing ring pushed toward the back of the building stands about four feet off the ground, and two punching bags hang dauntingly nearby.
No fancy weight machines.
Not a single treadmill or elliptical.
Dumbbells, workout benches, and an exercise ball line the back wall, but there's no digital screens or beeping instruments in sight. A rusted bell hangs close to the ring, retired from its duty of starting and ending boxing matches.
"Knock me out, knock me out," a trainer yells from the ring. He holds a hand up, protected by red padding, and blocks the jab of his female opponent.
"Kill it, kill it, c'mon!"
Luis Machado, a mixed martial arts trainer, teaches people of all ages, shapes and sizes at South Central Gym. He trains amateurs and real MMA fighters, and he said his students "train till they pass out."
"Straight up, like this," Machado tells the woman, showing her how to swing the over-sized black gloves with impressive force. The trainer's knowledge of boxing techniques and his motivational coaching add to the gym's down-to-business atmosphere.
But the head coach, Steve Rosenstein, really sets the mood upon entering the South Central Gym.
He blows his whistle to start class. "Let's go!"
The Gritty and the Pretty
As a former wrestler for the University of Arizona, Rosenstein knows his stuff when it comes to athletic training. He opened South Central Gym back in the fall of 2010, which is when he and his wife first started their multi-purpose business at The Duce.
"I'm the gritty, she's the pretty," Rosenstein said.
His vision involved an old-school gym where he could get people back to basics with their workout routines. So he bought a boxing ring on Craigslist, and his idea for the South Central Gym fell into place.
"This is like the antithesis of a Gold's Gym or one of those elite health clubs," Rosenstein said. "The setting here creates a whole different kind of atmosphere. You're in an old warehouse, working out in a retro boxing ring…and there's no technology here except for my iPod."
Rosenstein decided the boxing ring was a necessity because "boxing is about as old-school as you can get." He said the ring has become somewhat famous, and its uses have varied from concerts to weddings to a stage for the former Phoenix mayor, Phil Gordon.
Along with the ring, Rosenstein threw in some chin-up bars, dip bars, jump ropes and even old tires to keep the gym simple, yet challenging.
"This place is designed to make us fit," he said. "But it also takes us back to a simpler time that we all kind of miss anyway."
We all 'Need a Minute'
When class is in session, Rosenstein's students pant, sweat, and push themselves beyond their usual limits to reach whatever fitness goals they may have. The coach added that he keeps it fun, but he also wants his class focused and motivated.
"Lisa! What are you doing over there?!" Rosenstein yells during a push-up drill.
"I just need a minute, I'll join you," replies Lisa Khan, 50, who sat down for a short breather.
"Yeah? We all 'need a minute!'"
"Oh, jeez," she sighs, jumping back into the drill.
Khan, an attorney from Arcadia, said she has been coming to the South Central Gym for about a year, and she added that this type of exercise "keeps you young."
"The space is absolutely fantastic," she said. "It's great for cross-training and reaching your fitness goals, and it's just a great place to sweat in."
The sweat is certainly not in short supply for anyone working out at the South Central Gym. All of the members work hard and constantly cheer each other on, providing an ideal environment for getting fit and reaching aspirations.
"I don't want to say this place changed lives," Rosenstein said. "But it definitely changed some lifestyles."
In this story: Downtown Phoenix, fitness, health, Health & Beauty, Phoenix warehouse district, South Central Gym, Steve Rosenstein, The Duce
Categories: Districts, Fitness, Health & Beauty, Service businesses, Sports & Rec, Warehouse
March 17, 2016 Counter Culture | The Duce
September 11, 2012 Phoenix Skin Care Line Ranks Among Fastest-Growing Companies
August 21, 2012 Stick It to Stress at Acupuncture Happy Hour
August 20, 2012 Beckett's Table and Arizona Science Center Feed Dreams and Bellies


Each template is a single HTML email built using Ink (Quickly create responsive HTML emails that work on any device & client). You can preview them and inspect the code to see how they were implemented, or download them and try making some changes. Each template already has Ink included in a style tag at the top of the file.
There are 4 different email layouts to download (e.g. Basic, Hero and Sidebar), you can see screenshots on Zurb's website how each template looks on different email clients by viewing its tests. Note that if you are going to send or test them yourself, you need to run them through the Ink Inliner first.


text:
Q: Why is the algorithm complexity O(N*log(N+M))? Consider the following code (Github link)
The variable min is is at most M and the variable max is at most M*N
We run a binary search on the interval [min, max]. Each iteration we call to divisionSolvable which is O(N) so IMHO the overall complexity time is O(N*log(NM)).
Can you please explain why it isn't so?

A: Not looking at the link, note that O(log(NM)) = O(log(N+M)).
Indeed, for N>=2 and M>=2, we have:
log (N+M) < log(NM) = log(N) + log(M) < log(N+M) + log(N+M) = 2 log(N+M).
Complete that with the definition of O() which drops the constant.

redpajama_set_name: RedPajamaStackExchange


text:
\section{Introduction}

\begin{figure}[ht!]
\begin{center}
   \includegraphics[width=0.49\linewidth]{image6.png}
\includegraphics[width=0.49\linewidth]{image24.png}
\includegraphics[width=0.49\linewidth]{image5.png}
\includegraphics[width=0.49\linewidth]{image12.png}
\includegraphics[width=0.49\linewidth]{image45.png}
\includegraphics[width=0.49\linewidth]{image35.png}
\includegraphics[width=0.49\linewidth]{kitti1rgb.png}
\includegraphics[width=0.49\linewidth]{kitti1d.png}

\end{center}
   \caption{\small Qualitative results of our approach for learning depth from videos of unknown sources, which is enabled by simultaneously learning the camera extrinsic \emph{and intrinsic} parameters. Since our method does not require knowing the camera parameters, it can be applied to any set of videos. All depth maps (visualized on the right, as disparity) were learned from raw videos without using the any camera intrinsics groundtruth.
   From top to bottom: frames from YouTube8M \cite{YouTube8M}, from EuRoC MAV dataset \cite{Burri2016Euroc}, from Cityscapes \cite{Cordts2016Cityscapes} and from KITTI. \vspace{-1mm}}
\label{fig:intro}
\end{figure}

Estimating 3D structure and camera motion from video is a key problem in computer vision. Traditional approaches to this problem rely on identifying the same points in the scene in multiple consecutive frames and solving for a 3D structure and camera motion that is maximally consistent across those frames \cite{sift}. But such correspondences between frames can only be established for a subsets of all pixels, which leaves the problem of estimating depth underdetermined. As commonly done with inverse problems, the gaps are filled with assumptions such as continuity and planarity.

Rather than specifying these assumptions manually, deep learning is able to obtain them from data.
Wherever information is insufficient to resolve ambiguities, deep networks can produce depth maps and flow fields by generalizing from prior examples they have seen. Unsupervised approaches allow learning from raw videos alone, using similar consistency losses as traditional methods but optimizing them during training. At inference, the trained networks are able to predict depth from a single image and egomotion from pairs or longer sequences of images.

As research in this direction got traction \cite{zhou2017unsupervised,garg2016unsupervised,godard2017monodepth,ummenhofer2017demon,mahjourian2018unsupervised,vijayanarasimhan2017sfmnet}, it became clear that object motion is a major obstacle because it violates the assumption that scene is static. Several directions have been proposed to address the issue \cite{yin2018geonet,yang2018every}, including leveraging semantic understanding of the scene through instance segmentation \cite{casser2019struct2depth}. Occlusions have been another limiting factor, and lastly, in all prior work in this direction, the intrinsic parameters of the camera had to be given.

This work addresses these problems and, as a result, reduces supervision and improves the quality of depth and motion prediction from unlabeled videos. First, we show that a deep network can be trained to predict the \emph{intrinsic} parameters of the camera, including lens distortion, in an \emph{unsupervised} manner, from the video itself (see Fig.~\ref{fig:intro}). Second, we are the first in this context to address occlusions directly, in a geometric way, from the predicted depth as it is. Lastly, we substantially reduce the amount of semantic understanding needed to address moving elements in the scene: Instead of segmenting every instance of a moving object and tracking it across frames \cite{casser2019struct2depth}, we need a single mask that covers pixels that \emph{could} belong to a moving object. This mask can be very rough, and in fact can be a union of rectangular bounding boxes. Obtaining such a rough mask is a much simpler problem and can be solved more reliably with existing models than instance segmentation.

In addition to these qualitative advances, we conduct an extensive quantitative evaluation of our method and find that it establishes a new state of the art on multiple widely used benchmark datasets. Pooling datasets together, a capability which is greatly advanced by our method, proves to enhance quality. Finally, we demonstrate for the first time that depth and camera intrinsics prediction can be learned on YouTube videos, which were captured with multiple different cameras, each with unknown and generally different intrinsics.

\section{Related work}
Estimating scene depth is an important task for robot navigation and manipulation and historically much research has been devoted to it including large body of research on stereo, multi-view geometry, active sensing and so on
~\cite{Saxena2007depth,liu2015single,eigen2014depth}.
More recently learning-based approaches for depth prediction have taken center stage based on learning of dense prediction~\cite{eigen2014depth,liu2015learning,laina2016deeper,cao2016estimating}. In these, scene depth is predicted from input RGB images and the depth estimation function is learned using supervision provided by a sensor, such as a LiDAR. Similar approach is used for other dense predictions e.g. surface normals~\cite{eigen2015normals,Wang2015Designing}.

\paragraph{Unsupervised depth learning.}
Unsupervised learning of depth, where the only supervision is obtained from the monocular video itself and no depth sensors are needed, has also been popularized recently~\cite{zhou2017unsupervised,garg2016unsupervised,godard2017monodepth,ummenhofer2017demon,mahjourian2018unsupervised,vijayanarasimhan2017sfmnet,yin2018geonet}.
Garg et al.~\cite{garg2016unsupervised} introduced joint learning of depth and ego-motion. Zhou et al.~\cite{zhou2017unsupervised} demonstrated a fully differentiable such approach where depth and ego-motion are predicted jointly by deep neural networks. Techniques were developed for the monocular~\cite{ummenhofer2017demon,Yang2017unsupervised,mahjourian2018unsupervised,yang2018lego,yin2018geonet,wang2018learning,casser2019struct2depth} and binocular~\cite{godard2017monodepth,ummenhofer2017demon,yang2018every,zhan2018unsupervised,wang2018learning,zhan2018unsupervised} settings. It was shown that depth quality at inference is improved when stereo inputs are only used during training, unlike methods that relied on stereo disparity at inference too~\cite{kendall2017end,khamis2018stereonet,yao2018mvsnet}.
Other novel techniques include the use of motion~\cite{yang2018lego,wang2018learning,yin2018geonet,casser2019struct2depth,yang2018every}

\paragraph{Learning from images or videos in the wild.} Learning depth from images in the wild is also an active research field, mostly focusing on single or multi-view images~\cite{agarwal2009building,Schonberger2016sfm,li2018megadepth}. It is especially hard as shown by Li et al for internet photos, due to the diversity of input sources and no knowledge of the camera parameters~\cite{li2018megadepth}. Our work makes a step in addressing this challenge by learning intrinsics for videos in the wild.

\paragraph{Occlusion aware learning.}
Multiple approaches have been proposed for handling occlusions in the context of optical flow~\cite{wang2018occlusion,janai2018multi,neoral2018continual}.
These approaches are disconnected from geometry.
Differentiable mesh rendering, has recently been attracting increasing attention~\cite{nguyen2018rendernet, kato2018renderer}, begins to adopt a geometric approach to occlusions. In the context of learning to predict depth and egmotion, occlusions were addressed via a learned explainability mask~\cite{zhou2017unsupervised}, by penalizing the minimum reprojection loss between the previous frame or the next frame
into the middle one, and through optical flow \cite{yang2018every}. In the context of unsupervised learning of depth from video, we are the first to propose a direct geometric approach to occlusions via a differentiable loss.

\paragraph{Learning of intrinsics.}
Learning to predict the camera intrinsics has mostly been limited to strongly supervised approaches. The sources of groundtruth varies: Workman et al.~\cite{workman2015deepfocal} use focal lengths estimated employing classical 1D structure from motion. Yan et al. \cite{FocalLens} obtain the focal length based on EXIF. Bogdan et al.~\cite{Bogdan_2018} synthesize images from panoramas using virtual cameras with known intrinsics, including distortion. To our knowledge, our approach is the only one that learns the camera intrinsics in an unsupervised manner, directly from video, jointly with depth, ego-motion and object motion.

\section{Preliminaries}
\label{sec:prelim}
Our method extends prior techniques in the domain of simultaneous learning of depth and motion \cite{Zhou2017,godard2017monodepth,yin2018geonet,tulsiani2017multiview}.
Similarly to prior work, the backbone of our method is the equation that ties together two adjacent video frames using a depth map and the camera matrix:
\begin{equation}\label{warp_expand}
z'p' = KRK^{-1}zp +  K t
\end{equation}
where K is the intrinsic matrix, namely
\begin{equation}\label{K}
     K = \begin{pmatrix}
     f_x & 0 & x_0 \\ 0 & f_y & y_0 \\ 0 & 0 & 1
     \end{pmatrix},
\end{equation}
and $p$ and $p'$ are pixel coordinates in homogeneous form before and after the transformation represented by the rotation matrix $R$ and the translation vector $t$. $z$ and $z'$ are the respective depths, and $f_x, f_y, x_0, y_0$ are the camera intrinsics.

Using $z$, $R$ and $t$ as predicted by deep networks, Eq.~\ref{warp_expand} is used to warp one video frame onto the other. The result is then compared to the actual other frame, and the differences constitute the main component of the training loss. The premise is that through penalizing the differences, the networks will learn to correctly predict $z$, $R$ and $t$.

\section{Method}
In this work we propose simultaneous learning of depth, egomotion, object motion, and camera intrinsics from monocular videos.
To accomplish that, we design a motion-prediction network which predicts camera motion, motion of every pixel with respect to the background, and the camera intrinsics: focal lengths, offsets and distortion.
A second network predicts depth maps. Through imposing consistency across neighboring frames as a loss, the networks simultaneously learn to predict depth maps, motion fields and the camera intrinsics. We introduce a loss that demands consistency only for pixels that are unoccluded in both frames, where occlusion estimation is done geometrically, based on the depth maps themselves as they are learned. The motion fields are regularized with the help of a mask that indicates pixels that might belong to moving objects, obtained from a pretrained segmentation or an object detection network.

\subsection{Learning the intrinsics}
During training, the supervision signal of inter-frame consistency propagates back through $p'$ to the learned quantities $K$, $R$, $z$ and $t$. Since Eq.~\ref{warp_expand} only depends on $K$ via $Kt$ and $K^{-1}RK$, the training loss will drive these two quantities to the correct values, but $Kt$, for example, can be perfectly correct even if $K$ and $t$ are incorrect. In fact, if the network predicted an incorrect intrinsic matrix $\tilde K$, and an incorrect translation vector $\tilde t=\tilde K^{-1}K t$, $\tilde K \tilde t$ still equals $Kt$, so the training loss is not affected.

While translations provide no supervision signal for $K$, fortunately rotations do. The derivation showing that no $\tilde K$ and $\tilde R$ exist such that $\tilde K \tilde R \tilde K^{-1}= K R K^{-1}$ is done in the Appendix. Eq.~\ref{fcond}, derived therein too, ties the tolerance with which the focal lengths can be determined ($\delta f_x$ and $\delta f_y$, denominated in pixels) from two frames, to the amount of camera rotation that occurs between the two:
\begin{equation}\label{fcond}
\delta f_x < \frac{2f_x^2}{w^2 r_y}; \quad \delta f_y < \frac{2f_y^2}{h^2 r_x}.
\end{equation}
$r_y$ and $r_x$ are the rotation angles along the respective axes in radians and $w$ and $h$ are the image width and height respectively.

\subsection{Learning object motion}
\label{sec:objmo}
Eq.~\ref{warp_expand} can propagate frame inconsistency losses to $z$, $R$ and $t$ at every pixel. However without further regularization, the latter trio remain greatly underdetermined. While continuity of $z$, $R$ and $t$ is a powerful regularizer, we found that further regularization helps significantly. In particular, we impose constancy of $R$ throughout the image, and allow $t$ to deviate from a constant value only at pixels that are designated as ``possibly mobile". This mask can be obtained from a pretrained segmentation model. Unlike in prior work \cite{casser2019struct2depth}, instance segmentation and tracking are not required, as we need a single ``possibly mobile" mask. In fact, we show that a union of bounding boxes is sufficient (see Fig.~\ref{fig:boxify}). In addition, an $L1$ smoothing operator is applied on $t$.
\begin{figure}[ht]
\begin{center}
   \includegraphics[width=0.96\linewidth]{masked2.png}
\includegraphics[width=0.96\linewidth]{motion2.png}
\end{center}
   \caption{\small Use of a ``possibly mobile" mask to regularize the translation field. An object detection network identifies all instances of objects that are capable of motion, such as pedestrians, cyclists and cars. The union of the bounding boxes comprises the ``possibly mobile" mask, within which the translation field is allowed to vary. The top picture, from Cityscapes, illustrates the mask, and the bottom one is the translation field predicted by the network ($x$, $y$, $z$ coded as RGB). The \textbf{\textcolor{gold}{golden background}} corresponds to motion in the negative $z$ direction, as the entire scene is moving towards the camera. The \textbf{\textcolor{greenish}{greenish silhouette}} is the cyclist moving slightly to the left and slightly towards the camera. Note that the network carves the silhouette out of rough mask.}
\label{fig:boxify}
\end{figure}

\subsection{Occlusion-aware consistency}
\label{sec:occlusion}
When the camera moves relatively to a scene, and / or objects  move, points in the scene that were visible in one frame may become occluded in another, and vice versa. In pixels that correspond to these points, cross-frame consistency cannot be enforced by a loss. Given a depth map and a motion field in one frame, one could actually detect where occlusion is about to occur, and exclude the occluded areas from the consistency loss.

While detecting occluded pixels is doable, it requires some sort of reasoning about the connectivity of the surface represented by the depth map, and z-buffering. Keeping the mechanism differentiable and efficient, to be suitable for a training loop, may pose a challenge.

We therefore take a different approach, as illustrated in Fig.~\ref{fig:occdiag}. For each pixel $(i, j)$ in the source frame, the predicted depth $z_{ij}$ and the camera intrinsic matrix are used to obtain the respective point in space, $(x_{ij}, y_{ij}, z_{ij})$. The point is moved in space according to the predicted motion field. In particular, the depth changes to $z'$. The new spatial location is reprojected back onto the camera frame, and falls at some generally-different location ($i', j'$) on the target frame. $i'$ and $j'$ are generally non-integer. Therefore obtaining the depth on the target frame at ($i', j'$), $z^t_{i', j'}$, requires interpolation.

Occlusions happen at ($i', j'$) where $z'$ becomes multivalued. At such points, color and depth consistency should be applied only to the visible branch of $z'$, that is, the branch where $z'$ is smaller. If the source and target frames are nearly consistent, the visible branch will be close to target depth at ($i', j'$), $z^t_{i', j'}$. The way we propose to detect that is to include in the losses only points $(i', j')$ where $z'_{i', j'} \leq z^t_{i', j'}$. In other words, only if a transformed pixel on the source frame lands in front of the depth map in the target frame, do we include that pixel in the loss. This scheme is not symmetrical with respect to interchanging the source and target frames, which is why we always apply it in a symmetrized way: We transform the source onto the tagret, calculate the losses, and then switch the roles of source and target. Fig.~\ref{fig:occdiag} illustrates the method. This way of applying losses can be invoked for many types of loss, and we shall refer to it in this paper as ``occlusion-aware" loss or penalty.
\begin{figure}[ht]
\begin{center}
  \includegraphics[width=0.95\linewidth]{Occlusion.pdf}

\end{center}
  \caption{\small An illustration of our proposed method for handling occlusions. At the top we show a two-dimensional ``scene", consisting of two straight surfaces, one partially occluding the other. Two cameras, left (``$L$") and right (``$R$"), are observing the scene. Our method is \emph{monocular}, so these represent two locations of the same camera that moved, and ``left" and ``right" are used for convenience. At the bottom, the depth map observed by each camera is illustrated in as a solid line on the respective side ($\mathbf z _L$ and $\mathbf z _R$). A dashed line shows the depth map obtained from warping one view onto the other ($z'_R$ and $z'_L$). The warped depth map can become a multivalued function, which indicates occlusions (see green shaded rectangle). To handle that, we apply photometric and geometric losses only at pixels where $z'_R\leq\mathbf z _R$ and $z'_L\leq\mathbf z _L$. When the depth maps and motion estimation are correct, the loss in this scheme would indeed evaluate to zero.}
  \label{fig:occdiag}
\end{figure}

\subsection{Networks, losses and regularizations}\label{nets_and_losses}
\paragraph{Networks}
We rely on two convolutional networks, one predicting depth from a single image, and the other predicting egomotion, object motion field relative to the scene, and camera intrinsics from two images. The depth prediction network is a UNet architecture with a ResNet 18 base and a softplus activation ($z=\log(1+\mathrm e^\ell)$) to convert the logits ($\ell$) to depth ($z$).

The motion estimation network is a UNet architecture inspired by FlowNet \cite{flownet}. A stack of convolutions with stride 2 (the``encoder"), with average pooling in the last one, forms a bottleneck of 1024 channels with a 1x1 spatial resolution. Two 1x1 convolutions with 3 output channels each predict the global rotation angles ($r_0$) and the global translation vector ($t_0$). The latter two represent the movement of the entire scene with respect to the camera, due to camera motion. Each of the intrinsic parameters is predicted by a 1x1 convolution stemming from the bottleneck, with softplus activations for the focal lengths and distortions. The next layers progressively refine (that is, increase the spatial resolution of) the translation, from a single vector to a residual translation vector field $\delta t(x, y)$, by a factor of 2 in the height and width dimension each time.

It is here where we utilize the foreground mask $m(x, y)$ described in Sec.~\ref{sec:objmo}: The translation field is expressed as the sum of the global translation vector plus the masked residual translation:
\begin{equation}
t(x, y) = t_0 + m(x, y)\delta t(x, y).
\end{equation}
$m(x, y)$ equals one at pixels that could belong to mobile objects and zero otherwise.

\paragraph{Losses}
Given a pair of frames, we apply an occlusion-aware L1 penalty for each of the RGB color channels and the depths. For the motion fields, we demand cycle consistency: The rotation and translation at pixel $(i, j)$ of the source frame must form the \emph{opposite} transform of the ones at $(i', j')$ of the target frame, and vice versa. Occlusion awareness is invoked here too.

Structural similarity (SSIM) is a crucial component of the training loss, and occlusion awareness as defined above is harder to enforce here, because SSIM involves the neighborhood of each pixel. It is possible that $z' \leq z^t$ holds for only part of the pixels in the neighborhood. The solution we found here is to weigh the structural similarity loss by a function that falls off where the depth discrepancy between the frames is large compared to the RMS of depth discrepancy.

\paragraph{Randomized layer normalization}
Initially our depth prediction network had batch normalization. However we repeatedly observed it leading to anomalous behavior:

\begin{itemize}
\item Eval accuracy was consistently better when running inference at the ``training mode" of batch normalization. That is, instead of long-term averaged means and variances, the ones obtained from the image itself during inference were used\footnote{Even at batch size 1, there would still be means and variances over the spatial dimensions.}, rendering batch normalization more similar to layer normalization \cite{ba2016layer}.
\item As we increased the batch size at training, the eval accuracy was consistently worse and worse, no matter how we scaled the learning rate.
\end{itemize}

These two observations led us to try replacing batch normalization by layer normalization, but the eval quality degraded. Our next postulate was that while batch normalization is actually acting like layer normalization, the other other items in the batch serve as a source of noise on top of that. To test this theory we replaced batch normalization by layer normalization with Gaussian noise applied on the layer means and variances.

Indeed all eval metrics exhibited significant improvements compared to batch normalization. Moreover, now the eval metrics started to slightly improve when the batch size at training increased (accompanied with a linear increase of the learning rate \cite{goyal2017accurate}), rather than significantly degrading. The best results were obtained with multiplicative noise. While it has been observed in the past that noise can act as a regularizer, for example with dropout \cite{dropout} or when applied to the gradients \cite{neelakantan2015adding}, we are not aware of prior work where it is applied with layer normalization.

\section{Experiments}

In this section, we evaluate our method on depth prediction, odometry estimation, and the recovery of camera intrinsics across a range of diverse datasets, which will be described next.
\subsection{Datasets}
\label{sec:datasets}
\paragraph{KITTI}
The KITTI dataset is collected in urban environments and
is the main benchmark for depth and ego-motion estimation.
 It is accompanied with a LIDAR sensor which is used for

\paragraph{Cityscapes}
The Cityscapes dataset  is a more recent
urban driving dataset, which we use for both training and evaluation.
It is a more challenging dataset with many dynamic scenes. With a few exceptions~\cite{pilzer2018unsupervised,casser2019struct2depth} it has not been used for depth estimation evaluation.
We use depth from the disparity data for evaluation on a standard evaluation set of  1250~\cite{pilzer2018unsupervised,casser2019struct2depth}.

\paragraph{EuRoC Micro Aerial Vehicle Dataset}
The EuRoC Micro Aerial Vehicle (MAV) Dataset~\cite{Burri2016Euroc} is a very challenging dataset collected by an aerial vehicle indoors.
While the data contains a comprehensive suite of sensor measurements, including stereo pairs, IMU, accurate Leica laser tracker ground truth, Vicon scene 3d scans, and camera calibration, we only used the monocular videos for training. Since the camera has significant lens distortion, this is an opportunity to test our method for learning lens distortions (see later sections).

\paragraph{YouTube8M videos}
To demonstrate that depth can be learned on videos in the wild from unknown cameras, we collected videos from the YouTube8M dataset \cite{YouTube8M}. From the 3079 videos in YouTube8M that have the label ``quadcopter", human raters selected videos that contain significant amount of footage from a quadcopter. Naturally, the videos were taken with different unknown cameras, with varying fields of view and varying degrees of lens distortion. The YouTube8M IDs will be made public.

\subsection{Depth}
\paragraph{KITTI}
Table \ref{tab:kitti_eigen} summarizes the evaluation results on the KITTI Eigen partition of a model trained on KITTI. The metrics are the ones defined in Zhou et al. \cite{zhou2017unsupervised}. Only the best methods and the first three metrics are displayed in Table \ref{tab:kitti_eigen}, the rest are given in the Appendix.
As seen in the results, we obtain best state-of-the-art result. More importantly, we observed that learned intrinsics, rather than given ones consistently help performance, as seen too in later experiments.

\begin{table} [h!]
\small
  \centering
  {
  \begin{tabular}{|l|c|c|c|c|}
  \hline
  Method & M & Abs Rel & Sq Rel & RMSE  \\
  \hline
  Zhou \cite{zhou2017unsupervised}&  & 0.208 & 1.768 & 6.856   \\
  Yang \cite{Yang2017unsupervised} &  &0.182 &1.481 &6.501  \\
  Mahjourian \cite{mahjourian2018unsupervised}&  & 0.163 & 1.240 & 6.220 \\
  LEGO \cite{yang2018lego} &\checkmark &0.162 &1.352 &6.276  \\
  GeoNet \cite{yin2018geonet}  &\checkmark  &0.155 &1.296 &5.857  \\
  DDVO \cite{wang2018learning} & &0.151 &1.257 &5.583  \\
  Godard \cite{godard2018digging}  &  &0.133 &1.158 &5.370 \\
  Struct2Depth \cite{casser2019struct2depth}  & \checkmark & 0.141  & 1.026  &5.291 \\
  Yang \cite{yang2018every} &  &0.137 &1.326 &6.232  \\
  Yang \cite{yang2018every}  &\checkmark  &0.131 &1.254 &6.117 \\

    \hline

  Ours: & & & & \\
  Given intrinsics &\checkmark & 0.129 & 0.982 & 5.23\\
  Learned intrinsics &\checkmark& \textbf{0.128} & \textbf{0.959} & \textbf{5.23} \\

  \hline
  \end{tabular}
  }
  \vspace{1mm}
  \caption{\small Evaluation of depth estimation of our method, with given and learned camera intrinsics, for models trained and evaluated on KITTI, compared to other monocular methods. The depth cutoff is always 80m. The ``M" column is checked for all models where object motion is taken into account.}
    \label{tab:kitti_eigen}
\end{table}

\begin{figure*}[h!]
\begin{center}
\includegraphics[width=0.23\linewidth]{image92.png}
\includegraphics[width=0.23\linewidth]{image75.png}
\includegraphics[width=0.257\linewidth]{image54.png}
\includegraphics[width=0.257\linewidth]{image33.png}

\includegraphics[width=0.23\linewidth]{image99.png}
\includegraphics[width=0.23\linewidth]{image59.png}
\includegraphics[width=0.257\linewidth]{image51.png}
\includegraphics[width=0.257\linewidth]{image1.png}

\vspace{5mm}
\includegraphics[width=0.24\linewidth]{image91.png}
\includegraphics[width=0.24\linewidth]{image58.png}
\includegraphics[width=0.24\linewidth]{image23.png}
\includegraphics[width=0.265\linewidth]{image_4.png}

\includegraphics[width=0.24\linewidth]{image122.png}
\includegraphics[width=0.24\linewidth]{image136.png}
\includegraphics[width=0.24\linewidth]{image27.png}
\includegraphics[width=0.265\linewidth]{image74.png}

\vspace{5mm}
\includegraphics[width=0.2453\linewidth]{image922.png}
\includegraphics[width=0.2453\linewidth]{image85.png}
\includegraphics[width=0.2453\linewidth]{image46.png}
\includegraphics[width=0.2453\linewidth]{image84_.png}

\includegraphics[width=0.2453\linewidth]{image31.png}
\includegraphics[width=0.2453\linewidth]{image104.png}
\includegraphics[width=0.2453\linewidth]{image98.png}
\includegraphics[width=0.2453\linewidth]{image118.png}

\end{center}
  \caption{\small Images and learned disparity maps from the set collected from YouTube8M.}
\label{ytimages}
\end{figure*}

\paragraph{Cityscapes}
Table \ref{tab:city} summarizes the evaluation metrics of models trained and tested on Cityscapes. We follow the established protocol by previous work, using the disparity for evaluation~\cite{casser2019struct2depth,pilzer2018unsupervised}. Since this is a very challenging benchmark with many dynamic objects, very few approaches have evaluated on it. As seen in Table \ref{tab:city}, our approach outperforms previous ones and benefits from learned intrinsics.

\begin{table} [h]
\small
  \centering
  {
  \begin{tabular}{|l|c|c|c|c|}
  \hline
  Method & M & Abs Rel & Sq Rel & RMSE  \\
  \hline
  Pilzer \cite{Pilzer}& & 0.440& 5.713 & 5.443\\
  Struct2Depth \cite{casser2019struct2depth} & \checkmark  & 0.145 &1.736 &7.279\\
  \hline
  Ours: & & & & \\
  Given intrinsics &\checkmark &0.129 &1.35 & 6.96\\
  Learned intrsinsics &\checkmark &\bf 0.127 & \bf1.33 & \bf 6.96 \\
  \hline
\end{tabular}
  }
\vspace{1mm}
  \caption{\small Evaluation of depth estimation of models trained on Cityscapes on the cityscapes test set, with a depth cutoff of 80m, and comparison to prior art.}
    \label{tab:city}
\end{table}

\paragraph{Cityscapes + KITTI} Being able to learn depth without the need for intrinsics opens up the opportunity for pooling videos from any data sources together. Figure~\ref{fig:depth_all} shows the results of pooling Cityscapes and KITTI datasets and evaluating on either one, in this experiment the intrinsincs are assumed unknown and are learned. As seen jointly training improves the depth results even further than the best depth models on each dataset. This is a key result which demonstrates the impact of our proposed method to leverage  data sources of potentially unlimited size.

\begin{figure}
\begin{center}
   \includegraphics[width=1\linewidth]{convergence.pdf}
\end{center}
   \caption{\small Depth prediction on Kitti and Cityscapes when training on each dataset and on both. Joining the two datasets improves the results on both. Learning intrinsics allows to similarly pool many datasets, even if they are from unknown cameras.}
\label{fig:depth_all}\end{figure}

\paragraph{Cityscapes + KITTI: ablation experiments}
Table \ref{tab:ablation} summarizes the results of ablation experiments we ran in order to study the impact of each of the techniques described in this paper on the end results. In order to reduce the number of combinations of results, in all experiments the training set was Cityscapes and KITTI mixed together. Each model was evaluated on both Cityscapes and KITTI separately.

\begin{table} [ht]
\small
  \centering
  {
  \begin{tabular}{|l|c|c|}
  \hline
    & \multicolumn{2}{c|}{Abs Rel depth}  \\
   Main Method & CS & KITTI \\
  \hline
  Our algorithm & 0.121& \textbf{0.124}\\
  \hline
  Boxes instead of masks & \textbf{0.120} & 0.125 \\
  w/o occlusion-aware loss & 0.127 & 0.126 \\
  w/o object motion & 0.172 &  0.130 \\
  w/o randomized layer normalization & 0.124 & 0.127\\
  \hline
  \end{tabular}
  }
\vspace{1mm}
  \caption{\small Ablation experiments on depth estimation. In all experiments the training set was Cityscapes (CS) and KITTI combined, and we tested the model on Cityscapes (CS) and KITTI (Eigen partition) separately. Each row represents an experiment where one change was made compared to the main method, as described in the ``Experiment" row. Smaller numbers are better.}
    \label{tab:ablation}
\end{table}

Using a union of bounding boxes as a ``possibly-mobile" mask, as depicted in Fig.~\ref{fig:boxify} is found to be as good as using segmentation masks, which makes our technique more broadly applicable. Object motion estimation is shown to play a crucial role, especially on Cityscapes, which is characterized by more complex scenes with more pedestrians and cars. Randomized layer noralizarion is shown to be superior to standard batch normalization, and at last -- accounting for occlusions significantly improves the quality of depth estimation, especially on Cityscapes, which has richer scenes with more occlusions. Figure~\ref{occlusion_ablation} visualizes the type of artifacts that occlusion-aware losses reduce.

\begin{figure}[ht]
\begin{center}
   \includegraphics[width=0.8\linewidth]{munich_000238_000020_leftImg8bit.png}
\includegraphics[width=0.8\linewidth]{disp_nooc_munich_000238_000020_leftImg8bit.png}
\includegraphics[width=0.8\linewidth]{disp_oc_munich_000238_000020_leftImg8bit.png}

\end{center}
   \caption{\small Illustration of the effect of occlusion aware losses. The center and bottom images are inferred disparity maps obtained from the image at the top. In the center image, the model was trained without occlusion-aware losses. At areas that become disoccluded, under cars, occlusion aware loss is shown to reduce artifacts. The top image belongs to the Cityscapes test set and is one of images that whose depth prediction was hurt the most upon removing occlusion aware losses.}
\label{vicondepth}
\end{figure}

\paragraph{EuRoC MAV Dataset}
We further use the EuRoC MAV Dataset to evaluate depth.
We selected also a very challenging out-of-sample evaluation protocol in which we trained on the ``Machine room" sequences and tested on the ``Vicon Room 2 01, which has 3D groundtruth. Table~\ref{tab:euroc} reports the results. The Appendix details how depth ground truth was generated from the provided Vicon 3D scans.

\begin{figure}[ht]
\begin{center}\label{ytdepth}
   \includegraphics[width=1.0\linewidth]{euroc.pdf}
\end{center}
  \caption{\small Frames from EuRoC~\cite{Burri2016Euroc} and the corresponding learned disparity maps. The camera intrinsics are learned.}
  \label{fig:euroc_im}
\end{figure}

\begin{table} [h]
\small
  \centering
  {
  \begin{tabular}{|c|c|c|c||c|c|c|}
  \hline
   Abs R  & Sq R & RMS & logRMS &$a_1$ &$a_2$ &$a_3$ \\
  \hline
   0.332    &0.389    &0.971    &0.396    &0.420    &0.743  &  0.913\\

  \hline

\end{tabular}
  }
  \vspace{1mm}
  \caption{\small Evaluation of depth estimation for EuRoC dataset, no prior art is available for this dataset. $a_i = \delta <1.25^i$.}
    \label{tab:euroc}
\end{table}

Figure~\ref{fig:euroc_im} visualizes some of the learned depth. The EuRoC results were obtained from a network trained on the entire EuRoC dataset. Intrinsics are learned, and as seen later are very close to the real ones. No other information is used as input.

\subsection{YouTube Videos}
To demonstrate that depth can be learned on collections of videos in the wild for which the camera parameters are not known, and differ across videos, traained our model on the YouTube8M videos described in Sec.~\ref{sec:datasets}. Figure~\ref{fig:yt} visualizes the results. We note that this dataset is very challenging as it features objects at large ranges of depth.

\subsection{Camera intrinsics evaluation}
In order to evaluate our method with respect to learning camera intrinsics, two separate questions can be asked. First, how good is the supervision signal that cross-frame consistency provides for the camera intrinsics. Second is how good a deep network is in learning them and generalizing to test data.

\paragraph{Quality of the supervision signal.}
To estimate the supervision signal for the intrinsics, we represented each intrinsic parameter as a separate learned variable. The model was trained on the EuRoc dataset, since it was captured with the same camera throughout. Each of the 11 subsets of EuRoC was trained in a separate experiment, until the convergence of the intrinsics variables, yielding 11 independent results. The resulting sample mean and standard deviation for each intrinsic parameter are summarized in Table \ref{tab:EuRocIntrinsics}. All parameters agree with groundtruth within a few pixels. Since the groundtruth values were not accompanied by tolerances, it is hard to tell if the differences are within tolerance or not.
\begin{table} [h]
\small
  \centering
  {
  \begin{tabular}{|l|c|c|}
  \hline
  Quantity & Learned & GT \\
  \hline
  Horizontal focal length ($f_x$)& $253.7 \pm 1.1$ & $250.2$\\
  Vertical focal length ($f_y$) & $265.4 \pm 1.3$ & $261.3$\\
  Horizontal center ($x_0$) & 189.0 $\pm$ 0.9  & 187.2 \\
  Vertical center ($y_0$) & 132.2 $\pm$ 1.1  & 132.8 \\
  Quadratic radial distortion& $-0.267 \pm 0.003$ & $-0.283\phantom0$ \\
  Quartic radial distortion& $\phantom-0.064 \pm 0.002$ & $0.074$ \\
  \hline
  \end{tabular}
  }
\vspace{1mm}
  \caption{\small Camera intrinsics learned on the EuRoC datasets. Learning of depth, egomotion and intrinsics was done separately on each of the 11 datasets, using monocular images (``cam0") only. Constancy of the intrinsics throughout each dataset separately was imposed, and statistics (mean and standard deviation) for each intrinsic parameter were collected across the results. The groundtruth (GT) was adjusted to cropping and resizing used in our training, to a size of 256$\times$384.

}
    \label{tab:EuRocIntrinsics}
\end{table}

\begin{figure} [ht]
\begin{center}\label{ytdepth}
    \includegraphics[width=1.0\linewidth]{youtube.pdf}
\end{center}
  \caption{\small Frames from YouTube and learned disparity maps. The camera intrinsics are learned.
  }
  \label{fig:yt}
\end{figure}

\paragraph{Learning and generalization} Prior work \cite{workman2015deepfocal,FocalLens,Bogdan_2018} has shown that deep networks can learn and generalize camera intrinsics in a strongly supervised setting. In our setting, the camera intrinsics and motion are predicted by the same network and are thus correlated. In other words, the losses imposed on the motion / intrinsics network only impose correctness of the intrinsics within the limits of Eq.~\ref{fcond}. This is the downside of having the same network predict both quantities, the advantage of which is reduced computational cost.

 We evaluated our model's predictions of the intrinsic parameters on the KITTI odometry series. The model was trained on the union of the Cityscapes and KITTI training sets. Figure \ref{fxfig} shows the scatter plot of the predicted $f_x$ as function of the predicted $r_y$. The predictions fall within the limits imposed by Eq.~\ref{fcond}.
 While Table~\ref{tab:EuRocIntrinsics} indicates a high-quality supervision signal for the intrinsics, Fig.~\ref{fxfig} shows that in the setting where the intrinsics and motion are predicted by the same network, the latter learns them ``in aggregate", only to the extent needed for the depth-prediciton network to learn depth.

\begin{figure}[ht]
\begin{center}
   \includegraphics[width=0.9\linewidth]{kitti0910_fx.pdf}
\end{center}
   \caption{\small Predicted $f_x$ as function of the predicted $r_y$ for all images in the KITTI odometry sequences 09 and 10. The dashed line is groundtruth; red curves show tolerance limits imposed by Eq.~\ref{fcond}.}
\label{fxfig}\end{figure}

\subsection{Odometry}
We evaluated our egomotion prediction on the KITTI sequences 09 and 10. The common 5-point Absolute Trajectory Error (ATE) metric \cite{zhou2017unsupervised, casser2019struct2depth, yin2018geonet, godard2018digging} measures local agreement between the the estimated trajectories and the respective groundtruth. However assessing the usefulness for a method for localization requires evaluating its accuracy in predicting location. A common metric for that is average relative translational drift $t_{rel}$ \cite{ShamwellOdometry, zhan2018unsupervised} - the distance between the predicted location and the groundtruth location divided by distance traveled and averaged over the trajectory. Table \ref{tab:odoboth} summarizes both metrics, demonstrating the improvements our method achieves on both.

When evaluating for odometry, the most naive way is to calculate the inference of egomotion for every pair of adjacent frame. That leads to the red ``learned intrinsics" curve in Fig.~\ref{odofig}. However it is also possible to make an inference-time correction if we know the intrinsics of the camera at inference time. In that case, one can leverage the fact that for small errors in the rotation angles and focal lengths, $r_x f_y$ and $r_y f_x$ are approximately constant. Therefore if the network predicted $r'_y$ and $f'_x$ for a given pair of images, and we know the true focal length $f_x$, we can correct our estimate of $r_y$ to $r'_y f'_x / f_x$. This is the procedure invoked in generating the ``Learned and corrected intrinsics" curve in Fig.~\ref{odofig}, and the respective entry in Table~\ref{tab:odoboth}. The trajectories and metrics obtained with learned itrinsics with inference time correction and with given intrinsics are similar. Both notably improve prior art, which is especially prominent for localization, as the $t_{rel}$ metric indicates.

\begin{table} [h!]
  \centering
  \small
  {
  \begin{tabular}{|l||c|c||c|c|}
  \hline
    &\multicolumn{2}{c||}{\underline{Seq.~09}} & \multicolumn{2}{c|}{\underline{Seq.~10}} \\
   Metric & ATE & $t_{rel}$ & ATE & $t_{rel}$ \\
  \hline
  Zhou \cite{zhou2017unsupervised} & 0.021 & 17.84\%& 0.020 & 37.91\%\\
  GeoNet \cite{yin2018geonet} &  0.012 & / & 0.012 & /  \\

  Zhan \cite{zhan2018unsupervised} & / & 11.92\%& /  &12.45\%\\
  Mahjourian \cite{mahjourian2018unsupervised} & 0.013 & / & 0.012 & / \\
  Struct2depth \cite{casser2019struct2depth} & 0.011 & 10.2\%&0.011& 28.9\%\\
  \hline
  Ours, with intrinsics: &&&&\\
  Learned  & 0.012  &7.5\%& 0.010 & 13.2\%\\
  Learned \& corrected & 0.010  &\textbf{2.7\%}& \textbf{0.007} & 6.8\%\\
  Given & \textbf{0.009} & 3.1\%& 0.008 & \textbf{5.4\%}\\
  \hline
  \end{tabular}
  }
  \vspace{1mm}
  \caption{\small Absolute Trajectory Error (ATE) \cite{zhou2017unsupervised} and average relative translational drift ($t_{rel}$) \cite{ShamwellOdometry} on the 09 and 10 KITTI odometry sequences. Our method with both learned and given intrinsics is compared to prior work.
  }
    \label{tab:odoboth}
\end{table}
\begin{figure}[ht]
\begin{center}
      \includegraphics[width=0.9\linewidth]{kitti09.pdf}
\end{center}
   \caption{\small Predicted location on the KITTI odometry sequence 09, generated by models trained on KITTI, with given intrinsics and with learned intrinsics (with and without inference time correction), compared to groundtruth and to struct2depth results.}
\label{odofig}
\end{figure}
\section{Conclusions}
This work addresses important challenges for unsupervised learning of depth and visual odometry through geometric handling of occlusions, a simple way of accounting for object motion, and a novel form of regularization. Most importantly, it takes a major step towards leveraging the vast amounts existing unlabeled videos for learning depth estimation: Through unsupervised learning camera intrinsic parameters, including lens distortion, it enables for, the first time, learning depth from raw videos captured by unknown cameras.

\section{Acknowledgements}
We Thank Roland Siegwart for the permission to use EuRoC dataset, Sergey Ioffe for fruitful discussions, and Kurt Konolige for consultation and critical reading of the manuscript.

{\small
\bibliographystyle{ieee}

redpajama_set_name: RedPajamaArXiv


In 2013 we were living in Aberdeenshire and had visited our new grandson in Glasgow three or four times when we took the decision to move nearer as the travelling was becoming tedious. From May onwards, we visited several websites and had over 20 actual house viewings before settling on our ideal place in Strathaven in early August.
The day after agreeing to buy, we set off back home and that was when I first became aware of a back pain that i hadn't experienced before. A visit to my doctor three days later provided a diagnosis of Diverticulitis, which the symptoms seemed to indicate, and I was prescribed antibiotics for two weeks. They made no difference. A further visit to my GP led him to suggest me going into Aberdeen Royal Infirmary for a scan to which I readilly agreed but also advised him that we were moving home to Lanarkshire in two weeks.
I had a scan early on Friday 13th September and at 4pm the registrar pulled the curtains round my bed and told me that I had a very large tumour located between my spine and my stomach. And this is when he said the words that carried me through the next five months, " If it's what I think it is, we can cure it, not just treat it but CURE it"
The radiologist at ARI was on holiday and a request for a replacement to carry out the necessary biopsy was not forthcoming so the following two weeks were a bit fraught with me taking powerful painkillers to stem the pain. We moved to Strathaven on 1st October and I visited my new GP surgery at Avondale for the first time. Everyone there seemed to know all about me and an appointment was made for that afternoon with my new GP Dr Houston. The registrar at ARI had forwarded full details to her and she had arranged for me to see a haemotologist at Hairmyres hospitalon 3rd October. He arranged for a biopsy the following week and the resulting diagnosis of Non Hodgkins Lymphoma came on my wife's birthday the 18th October. What a present to get!
My chemotherapy started on the 30th October and ended on 14th February 2014. A wonderful St Valentine's present. I have regular three monthly checks which have just recently been extended to five months so things must be moving in the right direction. I am so grateful to the NHS and the seamless transition from Aberdeenshire to Lanarkshire whilst we were in the depths of despair. Nothing more could have been done for us at the time. Thank you so much!


text:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="net.project_ivan.popularmovies.MainActivityFragment"
    tools:showIn="@layout/activity_main">

    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/gridview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="2"
        android:verticalSpacing="5dp"
        android:horizontalSpacing="5dp"
        android:stretchMode="columnWidth"
        android:gravity="center"
        android:scrollbarStyle="outsideOverlay"
        />

</RelativeLayout>

redpajama_set_name: RedPajamaGithub


text:
Q: how to run a command as Administrator mode I have batch file i.e test.bat . I need to run a command of postgresql  as Administrator mode.
Basically the command is for to set password for postgres.
I tried
C:/Users/pathfinder> runas /user:Administrator net user postgres postgres
But its not working out.

A: I tried this code. Its working if i directly run the batch file i.e test.exe but if i configure this file into Advanced installer and run through .exe file its going into indefinite loop of terminals opening.
Just add these codes at the starting of your batch file:

@ECHO OFF

:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"

    CD /D "%~dp0"

And write your batch file script just below of the above code.
It will help you to execute a command as Administrator.


CUPERTINO, Calif., March 30 (UPI) — Apple CEO Tim Cook wrote an op-ed Sunday speaking out against the religious freedom laws passed in several states that are considered discriminatory against the LGBT community.
Cook, the first openly gay CEO of a Fortune 500 company, came out in an op-ed last year supporting equality. Now he is asking others to join him in publicly condemning the laws in several states — most recently Indiana — that would allow businesses to deny services to LGBT if they consider it against their religious beliefs.
"These bills rationalize injustice by pretending to defend something many of us hold dear. They go against the very principles our nation was founded on, and they have the potential to undo decades of progress toward greater equality," he wrote in the Washington Post.


text:
package com.emuneee.nctrafficcams.tasks;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;

import javax.net.ssl.HttpsURLConnection;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.Context;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.preference.PreferenceManager;
import android.util.Log;
import android.widget.Toast;

import com.emuneee.nctrafficcams.R;
import com.emuneee.nctrafficcams.api.Camera;
import com.emuneee.nctrafficcams.api.CameraDBHelper;
import com.emuneee.nctrafficcams.common.ConversionUtils;
import com.emuneee.nctrafficcams.common.HttpUtils;
import com.emuneee.nctrafficcams.ui.Constants;

/**
 * @author evan
 *
 */
public class GetLatestCameras extends AsyncTask<Void, Void, Boolean> {
	private final String TAG = "GetLatestCameras";
	private static final String sCamerasPath = "/cameras";
	private static final String sUpdatePath =  "/latest";
	// used in the traffic camera update lottery
	private static final int sMagicNumber = 3;
	private static final int sMaxNumber = 5;
	private String mBaseUrl = "https://[hostname]:[port]/v1";
	private String mLocalCameras = "cameras_2014_05_08.json";
	private Context mContext;
	private CameraDBHelper mDBHelper;
	private List<String> mCities;
	private OnFinishListener mListener;

	public GetLatestCameras(Context context, CameraDBHelper helper, OnFinishListener listener) {
		mContext = context;
		mDBHelper = helper;
		mListener = listener;
		mBaseUrl = mBaseUrl.replace("[hostname]", context.getString(R.string.hostname));
		mBaseUrl = mBaseUrl.replace("[port]", context.getString(R.string.port));
	}

	public List<String> getCities() {
		return mCities;
	}

	private String filterStrings(String input) {
		String output = input;
		output = output.replace("&", "&");
		output = output.trim();
		return output;
	}

	private Map<String, Camera> jsonToCamera(String cameraJson) throws JSONException {
		JSONArray cameraJsonArray = new JSONArray(cameraJson);
		Map<String, Camera> cameraSet = new HashMap<String, Camera>();

		for(int i = 0; i < cameraJsonArray.length(); i++) {
			JSONObject cameraJsonObj = cameraJsonArray.getJSONObject(i);
			Camera camera = new Camera();
			camera.setId(filterStrings(cameraJsonObj.getString("_id")));
			camera.setTitle(filterStrings(cameraJsonObj.getString("title")));
			camera.setUrl(filterStrings(cameraJsonObj.getString("url")));
			camera.setLatitude(cameraJsonObj.getDouble("latitude"));
			camera.setLongitude(cameraJsonObj.getDouble("longitude"));
			camera.setCity(filterStrings(cameraJsonObj.getString("city")));
			camera.setZipCode(filterStrings(cameraJsonObj.getString("zipcode")));
			cameraSet.put(camera.getId(), camera);
		}
		return cameraSet;
	}

	private Boolean isUpdateNeeded(String updateDatetime) throws ParseException {
		Boolean updateNeeded = null;
		String storedUpdateDatetime = PreferenceManager
				.getDefaultSharedPreferences(mContext).getString(
						Constants.PREF_LAST_UPDATE_DATETIME, null);

		if(storedUpdateDatetime == null) {
			updateNeeded = null;
		} else {
			Date storedUpdate = ConversionUtils.parseDate(storedUpdateDatetime,
					ConversionUtils.ISO_DATE_FORMAT);
			Date update = ConversionUtils.parseDate(updateDatetime,
					ConversionUtils.ISO_DATE_FORMAT);
			Log.d(TAG, "Stored update datetime: " + storedUpdate);
			Log.d(TAG, "Server Update datetime: " + update);
			updateNeeded = update.after(storedUpdate);
		}
		return updateNeeded;
	}

	private boolean isCheckNeeded() {
		boolean checkNeeded = false;
		boolean hasCheckedBefore = PreferenceManager.getDefaultSharedPreferences(mContext)
				.getBoolean(Constants.PREF_HAS_CHECKED, false);

		if(!hasCheckedBefore) {
			Log.d(TAG, "Has Checked Before: " + hasCheckedBefore);
			checkNeeded = true;
		} else {
			Random random = new Random();
			int randomNum = random.nextInt(sMaxNumber);
			checkNeeded = randomNum == sMagicNumber;
			Log.d(TAG, "Magic Number: " + sMagicNumber + ", The Number: " + randomNum);
		}
		Log.d(TAG, "Is Check Needed: " + checkNeeded);
		return checkNeeded;
	}

	@Override
	protected void onProgressUpdate(Void... values) {
		Toast.makeText(mContext, R.string.updating_cameras_message, Toast.LENGTH_LONG).show();
	}

	private String getLatestUpdateTime() {
		HttpsURLConnection connection = null;
		BufferedReader reader = null;
		String updateDatetime = null;

		try {
			StringBuilder updateStr = new StringBuilder();
			connection = HttpUtils.getAuthUrlConnection(mBaseUrl + sUpdatePath, mContext);
			reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
			String line = null;

			while((line = reader.readLine()) != null) {
				updateStr.append(line);
			}
			Log.d(TAG, "Content Size: " + updateStr.length());
			Log.d(TAG, "Response Code: " + connection.getResponseCode());
			JSONObject updateObj = new JSONObject(updateStr.toString());
			updateDatetime = updateObj.getString("updated");
		} catch (Exception e) {
			Log.e(TAG, "Error getting latest update time");
			Log.e(TAG, e.getMessage());
		} finally {
			if(connection != null) {
				connection.disconnect();
			}
			if(reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					Log.w(TAG, "Error retrieving latest update time");
					Log.w(TAG, e.getMessage());
				}
			}
		}

		return updateDatetime;
	}

	@Override
	protected Boolean doInBackground(Void... params) {
		Map<String, Camera> cameras = null;
		HttpURLConnection connection = null;
		BufferedReader reader = null;
		InputStream inputStream = null;
		boolean updateSuccessful = false;

		if(isCheckNeeded()) {

			try {
				// check for the last update date
				String updateDatetime = getLatestUpdateTime();
				Boolean updateNeeded = isUpdateNeeded(updateDatetime);

				if(updateNeeded == null || updateNeeded) {
					StringBuilder cameraStr = new StringBuilder();

					if(updateNeeded == null) {
						Log.d(TAG, "First time starting up, let's get the camera json from local storage");
						inputStream = mContext.getAssets().open(mLocalCameras);
					} else {
						connection = HttpUtils.getAuthUrlConnection(mBaseUrl + sCamerasPath, mContext);
						inputStream = connection.getInputStream();
						Log.d(TAG, "Response Code: " + connection.getResponseCode());
					}
					reader = new BufferedReader(new InputStreamReader(inputStream));
					publishProgress();
					Log.d(TAG, "Update needed!");
					String line = null;

					while((line = reader.readLine()) != null) {
						cameraStr.append(line);
					}
					Log.d(TAG, "Content Size: " + cameraStr.length());
			        cameras = jsonToCamera(cameraStr.toString());
			        mDBHelper.updateCameras(cameras);

			        // save the last modified date
					Editor edit = PreferenceManager
							.getDefaultSharedPreferences(mContext).edit();
					edit.putString(Constants.PREF_LAST_UPDATE_DATETIME, updateDatetime);
					edit.putBoolean(Constants.PREF_HAS_CHECKED, true);
					edit.commit();
					updateSuccessful = true;
				}
			} catch (IOException e) {
				Log.w(TAG, "Error retrieving cameras");
				Log.w(TAG, e.getMessage());
			} catch (JSONException e) {
				Log.w(TAG, "Error retrieving cameras");
				Log.w(TAG, e.getMessage());
			}  catch (Exception e) {
				Log.w(TAG, "Error retrieving cameras");
				Log.w(TAG, e.getMessage());
			} finally {
				if(connection != null) {
					connection.disconnect();
				}
				if(reader != null) {
					try {
						reader.close();
					} catch (IOException e) {
						Log.w(TAG, "Error retrieving cameras");
						Log.w(TAG, e.getMessage());
					}
				}
				if(inputStream != null) {
					try {
						inputStream.close();
					} catch (IOException e) {
						Log.w(TAG, "Error retrieving cameras");
						Log.w(TAG, e.getMessage());
					}
				}
			}
		} else {
			updateSuccessful = true;
		}

		// is the update was unsuccessful, lets see if we've updated once,
		// if we have, lets override the failed updated
		if(updateSuccessful == false) {
			updateSuccessful = PreferenceManager
					.getDefaultSharedPreferences(mContext).getString(
							Constants.PREF_LAST_UPDATE_DATETIME, null) != null;
		}

		if(updateSuccessful) {
			mCities = mDBHelper.getCities();
		}

		return updateSuccessful;
	}

	protected void onPostExecute(Boolean result) {

		if(result) {
			mListener.onSuccessFinish();
		} else {
			mListener.onErrorFinish();
		}
	}

	public interface OnFinishListener {

		public void onSuccessFinish();
		public void onErrorFinish();

	}
}


text:
Paralyzed champion of the USSR begging in the city center
The story of Elena, Slipchenko caused a storm of discussions. The woman who was once considered one of the best beginner athletes at the time, decided to retire. Now she is forced to beg on the Nevsky Prospekt.
Last week a photograph of the paralyzed champion of the USSR on jumps on a trampoline Helena Slipchenko (in marriage Ivanova) spread through social networks. A casual passer-by Sergey Gordeev, walking along the Nevsky prospect, drew the attention of the followers to the plight in which a woman. A man was outraged by the fact that the athlete, who became disabled, forced to beg.
"Every day, to go out, she pays neighbors for two hundred rubles, which would have lowered! Her pension is only enough to pay for housing," wrote Sergei.
The information that appeared on the website of the Sergei, caused heated discussions on the Internet and attracted the attention of journalists. Correspondent met with Yelena Slipchenko to learn its history firsthand. As it turned out, back in 1980, the athlete took part in the opening ceremony of the Olympics. It was considered very honorable, because battchikova were selected from all over the Soviet Union.
A year later, Elena Slipchenko became the champion of the Soviet Union jumping on the trampoline. The performance of the athletes consisted of ten items, she managed to show the highest degree of difficulty and quality of execution. The achievement of girls has significantly improved the financial situation of her family.
"I was put on so-called "second charge" athletes are paid the same money. Then it was 160 rubles per month. You have to understand, my mom is 90 rubles received…," he told Elena.
However, after the resounding triumph of Slipchenko decided to leave big-time sports. Her coach, who helped achieve outstanding results, made teaching. And parents champion asked her to do something else, more reliable. As a result, Slipchenko went to study at the bartender. "Kind of like a pepper, but was considered prestigious," she explains. Then Elena began a normal life – she married, bore a son, worked in the trade.
Ten years ago, the life of Slipchenko began to turn into hell. The woman began to refuse his feet. The athlete went to the doctors, but they could not understand what was happening to her. At different times Elena suspected cancer, and kidney disease. As long as one medical officer insisted on pay-procedure MRI. It turned out that Slipchenko compression fracture of the vertebrae, leading to paralysis. She needed emergency surgery. Life champion managed to save, but after that she was left confined to a wheelchair. Now Elena is only moving the arms, neck and head.
"As I said, this process could cause received a blow or fall. Perhaps it was during the last trampoline. That's what happens when an old injury suddenly makes itself felt, and in the bones begins zagnoenie. If I had had an MRI now, possibly could go. But no doctor – over the three years of surveys, I went to a lot of them – not to me on the right track…" – she said.
Because of illness, Slipchenko had to leave work. The parents of a woman who at first she helped, died. With her husband, Slipchenko divorced in 1997. When Helen did, her ex-boyfriend served time in prison fifteen-year period. The son visits his mother from time to time.
"Working in pubs and clubs, living separately: come – garbage bear, the tea is poured. Plow Papa Carlo, so that I have no time. And how does it help?" – the sportswoman speaks.
Paralyzed woman communicating with social services employee Tatyana. Every six months, Elena comes to visit father Alexander. Mostly leisure champion favorite dog brightens up the Face that for fifteen years. Dilapidated "kopeck piece" in the center of St. Petersburg with Elena also shared by the tenants – they let her older brother. According to Slipchenko, the "pressed" half space and the cottage. Sometimes neighbors help the athlete.
To go outside, Elena pays the worker a hundred rubles for the descent and ascent. More the man who came to the cultural capital to work, is not necessary. "I call and then fifteen minutes later comes", the champion said. Familiar Slipchenko refused to help her, citing lack of time and effort.
The woman's pension is only 12 300 rubles. It includes subsidies for apartment and disability benefits. For housing, Slipchenko pays about three thousand a month, and in winter the amount of payments increased more than two times.
"The heating works, apartment I have a big set in it, and the brother and son – but I pay one. The rest goes to food and medicine. Starting in 2016, I was deprived of subsidies on medicines. (…) Even the services of a social worker who comes to me, because I am not lying, and did pay," shared Elena.
But the world not without kind people. Last year battist from Moscow sent to Elena twenty thousand – the money she underwent a course of therapy. And recently, on Nevsky prospect, to the paralyzed champion an elderly woman came up and offered her massage services. Bystanders paid to Elena ten sessions. She was shocked by the sign of attention from a complete stranger. Now, Slipchenko again saving up on treatment.
"No I did not have: I'm not a sports injury. And on Nevsky – at least some money. And at least some communication," she said.
In preparing the article used materials of "Moskovsky Komsomolets" and "Komsomolskaya Pravda".
Shoe fashion trends spring-summer 2017
TV presenter Olga Ushakova got married in Cyprus


Among other activities, the Maryland chapter of the Council for American Private Education (CAPE) acts as a legislative coalition for the voting families, teachers and administrators for Maryland's 120,000-plus nonpublic school students. For the 2018 elections, Maryland CAPE gave all candidates for the Maryland Senate and House of Delegates, the opportunity to state their positions on a number of Maryland-specific issues important to our state's nonpublic schools. The candidates were asked whether they "Support" or "Oppose" four separate issue statements. A blank response means that the candidate chose not to assert a position on that particular issue. Candidates were also given the opportunity to comment on any specific issue, in order to explain their position. A separate link to all comments offered by candidates is found below.
Please remember that there are TWO OPPORTUNITIES TO VOTE!
In many Maryland legislative districts, the June primary election is the most outcome-determinative.
In others, the general election is most important. You votes can be influential in both elections.
What legislative district do I live in?
If you're not sure what number MARYLAND state legislative district you're in, please click here to enter in your address and find out!
Want to find a polling place for Early Voting?
Please visit http://www.elections.state.md.us/voting to locate your polling place.


Piggy Nation Comic – We found some irresistible deals!
Piggy Nation Comic – I Said the Lake ROAD!
Piggy Nation Comic – Careful, somebody spilled syrup!
Piggy Nation Comic – Looks like some piggies had a fun weekend!
Piggy Nation Comic – Oh No, My Battery is Dead!
Piggy Nation Comic – You forgot to assign homework!


Despite the common trope of "Ash mains just run in and die etc etc," there is much more to being a successful Ash than meets the eye. My goal in this guide is to familiarize the reader with all of the different playstyles possible with Ash, and how to pick which one works best for you.
As a 3 speed 1 armor, ash is perfect at taking quick engagements and escaping before the enemy can return fire. Picking the right weapon and gear is essential to allow you to catch the enemy by surprise.
R4-C: The fastest time to kill of any Ash weapon. This gun trades higher damage and a faster fire-rate than the G36C for more recoil. This is a good choice if you can control recoil well, as even landing body shots with this weapon is brutally effective.
G36C: The tamer counterpart of the R4, the G36C is useful for people who like to take it a bit slower, carefully aiming for the head and using the lower recoil and slower firerate of this gun to land consistent headshots. This is a good choice for players who are planning to take longer range engagements.
Similar to her primaries, ash's secondaries come in faster and slower varieties. The faster pistol has less damage than it's counterpart, but boasts 13 more bullets in the mag to compensate.
5.7 USG: This first pistol comes with 20 bullets in the mag and 1 in the chamber. This is one of the highest out of any pistol in the game, and helps compensate for its low damage is you like spam-clicking for headshots. I personally use this exclusively since I only pull out my pistol in tight situations when I can't reload my primary, so I don't want to run out of bullets in my secondary as well before the job is done.
M45 Meusoc: The slower and more powerful counterpart to the 5.7 boasts a higher damage, but that comes at a cost. This pistol has 7 bullets in the mag with 1 in the chamber, and is a good choice for players who like to carefully aim for center of mass and make sure they're lined up perfectly before taking a shot. If you can make those 8 bullets count, they can be devastating to an enemy.
This is one of the most debated parts of Ash's loadout. With the recent additions of flashbangs to her arsenal, however, I believe that the debate should now be able to end with a clear winner.
Flashbangs: One of the most underrated gadgets in this game. Flashbangs, while being sometimes inconsistent, can most certainly put an enemy out of commission for a couple seconds. This gives a 3 speed ash time to rush in and headshot them while they can't even see where you're coming from. If used properly to cover a doorway or explode in front of an angle you think someone is holding, these can allow an Ash to win gunfights almost every time.
Breaching Charges: The other option in terms of gadgets are Ash's breaching charges. Some people find them useful if they want to hot-breach or open multiple walls/doors, but since her special ability already allows for 2 walls to be opened from any range I find the breaching charges redundant, with better options being available. If you really want to open more than the 2 walls her ability provides, a friendly sledge or buck might be just what you need. If you really want to go solo and blast your way through the map however, breach charges get the job done better than most.
These are by no means what you should take without experimentation just because I used them. They are only here if you are curious or want to try what I recommend (call it the chef's special).
Don't be afraid to make plays. You think a roamer is in meeting hall, go around to the back door, flash yourself in and push. More often than not they won't expect that.
Always use every gadget if the opportunity presents itself. Better to use it when you might need it then die with it still on your body. That applies to drones, flashbangs, ash charges, or anything else you might have at your disposal. Learning to anticipate when a tool might be useful is part of being a good Ash.
Above all, still be a team player. Just because you have a good character for going solo or roam clearing doesn't mean you should ignore your team. Keep an eye on what they're doing and communicate with them, if they call out where someone might be think "could I use the tools I have to help them clear out that person without anyone dying?" When you see your team pushing, make sure you aren't on the other side of the map droning for yourself. Inversely, try not to be the first to die before your team has already entered the building. There's a balance, and that balance might take some time to reach. It's a real sweet spot that you'll realize you're in when you're there.