Hey all you 30- and 20-somethings, listen up, 'cause grumpy old Gen X Man has something to say to you: You did not invent the world.
I know, I know – exactly the kind of thing you'd expect from a curmudgeon who was born before the internet, the cellphone, Facebook, Netflix, PVRs, blah, blah, blah.
But pay attention because this might actually interest you once you've had a chance to tear your attention away from your disappearing text messages and your next potential Tinder conquest.
Lately, I've seen a few examples of so-called new tech that frankly, is anything but new.
Let's take a the crowd-sourced project known as "Vocca" as an example. You'll like it. It's a gadget that turns any lightbulb in your home into a — wait for it — voice-sensitive light bulb that will turn on (AND OFF!!!) at the sound of the right voice command shouted in its direction.
Is that a collective "ooooh" I hear? Thought so. And with good reason too. It *is* a neat idea. After all, what could be handier than lights that can be switched on and off from the comfort of your bed instead of requiring the old-fashioned process of getting up, walking across the room, flicking a switch and then reversing yourself?
But guess what? Someone invented the Vocca decades ago. It was called The Clapper, and they're still on sale today. The Clapper is superior to the Vocca in three important ways. One, it's cheap. One Clapper costs only $18 at Walmart — compare that to the $39 + for the Vocca. Two, it controls more than just lights; it can control any electrical appliance you can plug into it. Three, it doesn't require any special phrases. Just clap your hands to turn it on, and then clap again to turn it off. This also means that the Clapper provides support for an unlimited number of languages. Et tu, Vocca?
What's most surprising is that of all the write-ups I've read on the Vocca, only one author has pointed out that the gadget is an over-priced, over-designed, and far less versatile Clapper. Not one. Why?
I can only guess that most of the people who have written about the Vocca, much like the creators of the Vocca themselves, must be too young to remember the onslaught of "Clap-on, Clap-off, Clap-on, Clap-off" commercials us 40-somethings were exposed to for most of our formative years.
And though you didn't miss a lot (the commercials were really dreadful), you did miss the fact that we already have a Vocca. It's called the Clapper. Though it's as useful as it sounds, it sure isn't cool. And if you think clapping at your lights sounds silly, wait till you have to shout at them. Repeatedly.
Every Thanksgiving, our family does what thousands of other families do – gather in large numbers and sit down to a dinner that challenges even the most alert and caffeinated person to stay conscious. We also take a moment and express the gratitude we feel for the people in our lives. It's a good thing to do. Especially for people living in such an amazing country as Canada, with all of the privileges that we enjoy, taking the time to appreciate them is something we should do daily.
One of those privileges is access to some of the most advanced technology in the world.
Here then, is a list of the top tech that we're thankful to have – in no particular order – submitted by your Sync Bloggers: Andrew, Jeremy, Marc, Rhonda and me, Simon.
Whether you're a member of the Apple tribe or a fan of the many worthy iPod alternatives, the ability to take your entire music (or photo or video) collection with you wherever you go, might just be the biggest thing to happen to the tech landscape since the Internet itself.
What good is gazillion tunes in your pocket if you can't listen to them while on the road? Now granted, most FM Transmitters perform poorly in urban areas, and they pale in comparison to built-in auxiliary jacks or iPod-ready car stereos, but for masses of people who own cars that aren't so equipped, these devices are the only way to go.
When we think of companies that have had a profound effect on the way we use the computers, the list is remarkably short. You know the biggies: Microsoft, Apple, Google, AOL, Yahoo!. If Facebook wasn't on this list earlier, there's no question it should be there now. Remarkably, despite ongoing issues of privacy, security and in some cases banality, Facebook marches on and has become a central tool in the lives of millions.
Pioneered by the Canadians at RIM and then reinvented by Apple and Google, smartphones have become the ultimate digital companions. By combining the best features of cellphones, MP3 players, PDAs, portable game consoles and laptops, smartphones are already replacing the many devices they emulate. As the web continues to churn out more tools to help keep us connected, be it Facebook, Twitter, FourSquare or YouTube, our smartphones play an increasingly important part of our digital lives.
Whether you are on cable or satellite, High-Def or Standard Def, the personal video recorder (PVR, DVR, TiVo) has revolutionized the way we watch TV. Gone are the days when we had to be at home in front of our sets to enjoy our favourite shows. Gone are the days when we had to program our VCRs – assuming you could ever get the clock to stop blinking "12:00". Add to this the ability to skip commercials and being able to record up to two shows while watching a 3rd, and it's nearly impossible to remember what life was like before the PVR.
Email, instant messaging, tweeting – they're all valuable tools when it comes to online communication. But sometimes there's just no substituting a genuine phone call, and Skype has transformed the voice-to-voice business by offering free device-to-device calling for millions of people. Layer on top of this the ability to do video calls via webcams and you can "see" why Skype has become indispensible for everyone from business people to those simply wanting to keep in touch with family and friends. Being able to video chat with your kids from 30,000 feet in the air is the kind of thing we could only dream about a few years ago.
I still remember my first Wi-Fi experience at home. It was about 6 years ago and I had just installed a Wi-Fi gateway. That evening I sat in bed with my laptop and giggled to myself in the way that only cool tech can make me do. When my wife asked what was so funny, I simply said "I'm surfing the web". Five minutes later she was hooked. We've never looked back. Back then, Wi-Fi was still a novelty. Now it has permeated almost every nook and cranny of our homes, offices and schools. While some argue that this technology may pose health risks, and that we need more studies to determine "safe" levels of exposure, the benefits – for now – far outweigh any drawbacks. Wi-Fi is no longer just a convenience; it's an essential ingredient of our digital lives.
There seems to be two kinds of people: Those who like to take photos and those who don't. You know who you are. For those that like to take 'em, digital photography has been nothing short of a revolution, simultaneously increasing creative options while driving down the cost per photo to practically zero. The switch from film to digital has meant no longer needing to ask the question "Should I take that photo?" replaced instead by the more pertinent question "Should I keep that photo?" And even though going digital has meant that we print fewer images, it has also meant that we now share them far more often and with way more people. If the value of a photo can be measured by how many people get to enjoy it, digital photography (combined with the web) has increased the value of our photos immeasurably.
Other than the computer itself, and perhaps the telephone, it's hard to imagine an invention that has had such a profound effect on the lives of so many in such a short period of time. The Internet has evolved from being U.S. Defence research project in the 60's to become the thread that unites (and sometimes separates) billions of people around the world. What started out as a way to let individual computers talk to one another in the event of a global catastrophe, has since become the birthplace of hundreds of new companies and technologies and the means by which organizations of all sizes can establish and pursue their goals and ambitions. For better or worse, The Internet has changed the world forever.
Buggy, resource hog, annoying – these are all words that have been used to describe RealPlayer, a multimedia player that has been around for nearly as long as the web itself. Though the software arguably proved that the Internet could be used for streaming content rather than just downloading it, the team at RealMedia also infuriated users by loading material that was akin to adware and in one case actually violated users' privacy. What was once the heir to the iTunes throne has since become irrelevant.
These are the phone calls that make one wish we could reach through the phone and do very very bad things to the person at the other end. You know the ones – your phone rings (usually with that long-distancy ring that sounds so much more important than a regular ring), you pick up and say "Hello?" and are rewarded with… silence. Sometimes the silence persists for more than 10 seconds while you repeatedly and with an increasing amount of irritation say "HELLO??" into the receiver.
Ok gang, there you have it. So, which tech are you most thankful for? What did we miss? And since it's human nature to do so, why don't you share a few tech pet peeves too.
A U.K. neuroscientist says that the use of Twitter, Facebook and video games is forcing children's brains to go back to an "infant-like state".
Like it or not, cell phones at work have become a fact of life. But just because your little portable pal is ringing, doesn't mean you need to answer.
A recent poll indicates that office workers have plenty of gripes, and most of them are about the behaviour of their co-workers. The list has plenty of tech complaints, but the biggest annoyance is also one of the oldest.


After a year in the planning, my dear friends, Erin-Lee and Darren Skilton, have finally pulled off their first pop up dinner, Alta Cocina! Erin, a successful casting agent/producer and Darren, a well-known off-road racer (think Dakar), together they are the talent behind Aventura! a concept travel company providing international off road adventure and cuisine tours.
Their love of Mexico has allowed them to befriend many of the culinary talent the Valle de Guadalupe has to offer. The biggest wine growing region in Mexico is home to many organic farm to table restaurants, dairies and craft breweries. One of the most notable is Chef Roberto Alcocer's restaurant Malva, nominated 2014 Best New Restaurant in Mexico by Travel and Leisure Magazine.
Hosted in Long Beach for two nights only, Chef Alcocer provided a seven course tasting menu paired with Valle de Guadalupe wines set in the intimate backyard of a beautifully restored Carroll Park craftsman bungalow.
Guests were welcomed with handcrafted snow cone cocktails, an amuse bouche, agua fresca and craft brews from Mexico.
Nothing makes a dinner party like fantastic friends!
Chef Alcocer and a guest.
Alta Cocina's Darren and Erin-Lee Skilton with Chef Alcocer.
Given the success of the evening, there are already follow up evenings planned for the holidays with new chefs and culinary delights. Special thanks to Alta Cocina and Sandoval Photography for additional photos.
All photos ©JaneneDunbar except where noted.


Melon Lush Salt E-Liquid by Air Factory Salts is a delicious rendition of your favorite taffy candy with a burst of sweet, mouth-watering, juicy watermelon.
Taste Test: Melon Lush Salt E-Liquid by Air Factory Salts is a delicious rendition of your favorite taffy candy with a burst of sweet, mouth-watering, juicy watermelon.
Air Factory Salts introduces a selection of your favorite Air Factory flavors for Mouth-to-Lung, Low Wattage, and Pod System vapers.
As a regular juice, i thought the flavor was a bit muted. As a salt nic, its a delicious melon candy like vape. Easilly an adv. Nice throat hit too.
This has great flavor for a low wattage nic salt. I'm a nic salt rookie but I know good flavor. It's so good I give myself a headache regularly, taking too many rips off my device too quickly lol I highly recommend it and I can't wait to try the regular version.


Houston-based BMC Software introduced several new virtualization management products today, including nine new integrated offerings designed to eliminate the risk and operational expenses associated with management of virtualized data centers.
BMC's new virtualization management products are fully integrated with virtualization products from Microsoft, Sun Microsystems, Inc. and VMware Inc. The new BMC software is based on an automated set of closed-loop change and configuration management (CLCCM) process workflows that reduce the latency, cost and risk associated with change management. All of the new offerings support both virtual and physical infrastructures.
The nine new offerings support goals for performance, compliance and enterprise visibility by addressing the challenges created by virtualization.
*Planning a virtualization/consolidation initiative: BMC Virtualization Capacity Management and Planning Service is a packaged services offering that helps customers accelerate their virtualization efforts.
*Simplifying management: BMC Performance Management does complete performance monitoring across virtual infrastructure and applications with enhanced VMware Infrastructure 3 and VMotion support.
*Ensuring availability: BMC Application Performance and Analytics helps IT actively manage service levels in virtual infrastructures.
*Performance: BMC Capacity Management replaces educated guesses with automatic assessment, prioritization of server workloads, and ongoing capacity monitoring. The result is high performance while reducing capital and operational expenses and maximizing server consolidation.
*Server sprawl: Virtualization allows new servers to be created very rapidly, leading to virtual machine (VM) sprawl. BMC Discovery Solution helps customers keep virtualized environments under control by keeping tabs on virtual servers. Support for VMware, Solaris 9/10 containers and zones, AIX LPARS as well as z/VM dependencies on mainframe (z/OS) mean that all types of virtual servers can be discovered and added to BMC Atrium CMDB.
*VM security: BMC BladeLogic Virtualization Module for Servers adds security and strengthens licensing and regulatory compliance. It includes automatic provisioning and configuration of the entire software stack, including virtual infrastructure, guest VMs and applications, and enforces security best practices, including built-in virtual server hardening rules.
*Compliance: BMC BladeLogic Operations Management Suite establishes automated, closed-loop change and configuration governance over entire virtualized environments. BMC's policy-driven configuration control prohibits noncompliant servers from being deployed or existing beyond the next audit scan. Automated compliance and remediation capabilities detect and correct any compliance violations.
*Administration costs: BMC Run Book Automation Platform and BMC Run Book Automation VMware Adapter exploit BMC's CLCCM workflows to automate routine change management tasks.
Of course, BMC isn't the only game in town when it comes to virtual infrastructure management. There are a number of vendors offering management products for various purposes, including Portsmouth, N.H.-based vKernel and San Francisco-based Hyperic, Inc.
In addition, Austin, Texas-based Surgient announced today its Virtual Automation Platform 6.0, which is designed with physical provisioning and Microsoft Windows Server 2008 Hyper-V support to manage virtual resources and eliminate physical server and virtual machine (VM) sprawl.
In addition to third-party VM management products, virtualization providers offer their own; VMware sells a proprietary management and automation suite, as does Microsoft for Hyper-V.


Every successful scan produces results in terms of vulnerabilities. The results can be viewed from Scan->Scan Results menu.
This interface includes all vulnerability scan results from all scan configurations. One can easily narrow down the related scan result by using the search criteria at the right hand-size Filters.
Once a specific scan result is fixed, clicking the Scan Findings and Operations icon will reveal the vulnerabilities found by as well as graphs and details about that specific scan.


text:
Culture Briefs
No fantasy
"This has been the hardest year of my life, as well as the best year of my life. The period after the wedding was extremely intense, for a lot of reasons … .
Marriage brings up all the things I pushed to the back burner the fears, the mistrust, the doubts, the insecurities. It's like opening Pandora's box. Every question comes out it's like, Here's the key, have at it… .
"I didn't have a fantasy of what marriage would be like. I had no idea. I didn't grow up surrounded by any form of marriage… .
"I just knew I wanted it to be based in love not money, not security. Just finding somebody who was your best friend, who you could grow with and enjoy the passage of time and that's what I found… .
"The only reason people should be together is to grow and to learn and to keep discovering and become better humans. And then God forbid you fall short of those dreams, and you're a failure."
Jennifer Aniston, talking about her marriage to Brad Pitt, interviewed by Leslie Bennetts in the May issue of Vanity Fair
Star proletariat
"Everywhere you turn in Hollywood, from the grubbiest soundstage to the most posh executive suite, there's a pervading sense of gloom… .
"In anticipation of a possible work stoppage by writers and actors, major talent agency UTA recently asked senior agents to defer 20 percent of their salaries into a fund that would help with overhead… .
"The Writers Guild of America (WGA), whose contract expires May 1, hasn't been at the table with the Alliance of Motion Picture and Television Producers (AMPTP) since March 1… .
"Meanwhile, the Screen Actors Guild (SAG) and the American Federation of Television and Radio Artists (AFTRA), whose contracts expire June 30, haven't even formulated their demands, strengthening the Sunset Boulevard consensus that SAG lacks direction… .
"For Hollywood, a strike would be as financially devastating as a war. In Los Angeles County alone, approximately 467,000 people including limo drivers, stylists, florists, waiters, caterers, and bartenders base their livelihood on the entertainment industry… . That's roughly the population of the state of Wyoming."
Daniel Fierman, writing on "Striking Distance," in the April 13 issue of Entertainment Weekly
Big star, no talent
"When Jennifer Lopez was recently asked what she got on her SATs, she replied, 'Nail polish.' Now that's a star. A strange case, this J-Lo: She can't sing, she can't rap, she can't write songs, but she's smeared her nail polish all over the American psyche, and we love her for it, even if inhaling the fumes has gotten us loopy enough to actually spend money on her records… .
"She's an icon, a Gorgon, the supermodel dominatrix beauty queen of a nation's liquid dreams… . How can such a fabulous movie star moonlight as such a useless disco singer? It's just one of those mysteries the radio never runs out of. The beautiful ones, they hurt you every time.
"There's certainly nothing wrong with Hollywood starlets who can't sing they can make as worthy pop trash as anybody else… . But the really weird thing about Jennifer's hits is that no matter how much talent and money get flushed er, invested in them, they always sound like her: You can identify that voice inside a couple of notes.
"She not-sings in her own way, positively painful when she's pronouncing vowels, especially the long e and the long o. You don't hear voices this raw and unpolishable on the radio anymore, not with all the new studio fix-it technology, but Jennifer's movie-star allure is potent enough to turn even her most awful records into hits."
Rob Sheffield, writing on "Hurts So Good: J-Lo Arrives," in the April 26 issue of Rolling Stone

redpajama_set_name: RedPajamaCommonCrawl


text:
Invest in Saxony-Anhalt>News>Report INVEST>A dog ear for scientists
A dog ear for scientists
"An outstanding tool." "Extremely useful software." "I wish I had known about it earlier." Those who write scientific texts invariably have to cope with a mountain of source material – and hit the jackpot if they have installed the Docear program on their computer. Because Docear, developed by three start-up entrepreneurs in Saxony-Anhalt, makes the juggling with literature and citations, with references and one's own notes, as easy as pie. This is already appreciated by tens of thousands of students and scientists all over the world.
"Indeed: it even makes plagiarising easier. " Jöran Beel has to laugh when he thinks about this. "This possibility hasn't occurred to us yet." Together with his two partners, Stefan Langer and Marcel Genzmehr, the 33-year-old has developed software, which makes writing scientific works spectacularly simple. Today, students and academics from China via Europe through to the USA sit in their offices writing their texts using Docear. This is attested to not only by the tens of thousands of downloads of the program, but also by all the comments on the docear.com website.
The name in the title has less to do with the literal translation "document ear", but rather with how the word Docear is pronounced. It sounds similar to "dog ear" (i.e. bookmark) – a reference to the fact that when working with Docear it's easy to keep track of where you are.
This free program consists of several modules. The central unit is the Mindmap, a document that arranges all the contents in an clear overview and visualises the mutual relationship of the parts – rather like an octopus, whose tentacles are continually dividing. While the users are working their way through sources, i.e. text documents or PDFs, Docear transfers all the citations marked as relevant into the Mindmap. Even notes written by the user in the sources can be imported. The same applies to photos and graphics.
The contents collected in such a way in the Mindmap can then be sorted, moved relative to each other as well as supplemented by individual text modules and categorised. "We also make a database available to the users, which now contains two million scientific documents", explained Beel. And it's still growing, because a search engine is permanently combing the network for new, public sources. "This combination is unparalleled."
This idea was literally born of necessity. "I desperately wanted a catchy historical source", said Beel, "but in actual fact it was the tedious work with the sources for my thesis that resulted in the idea of Docear." Both the computer scientists Langer and Genzmehr together with the business IT specialist Beel have been working full-time on the development of the software since 2011. This was made possible by an EXIST grant from the German Government and the subsequent ego.START grant from the State of Saxony-Anhalt.
The founders also find a strong partner in the Otto-von-Guericke University in Magdeburg. "Our rent-free offices are directly in the university – this is of course great for us." Beel's doctoral supervisor from the Faculty of Informatics, Prof. Dr. Andreas Nürnberger, advises the three founders in all content-related issues. The Impuls-Gründer-Netzwerk (Impulse Founders Network) and the University's Interaction Centre help them with the business plan and the development of a business model, while also supporting the entrepreneurs in founding the Docear GmbH Company.
But in Beel's words, it's now a question of everything or nothing. "We need a private investor to finance the development of the premium services." This is the basis for the business model, which is intended to turn Docear GmbH into a highly profitable company. This is a strongly growing market, and the native Hildesheimer does not fear the competition. "There is no comparable product in the market, which can intelligent and successfully manage notes, documents and literature. Docear will either be an enormous success – or a huge flop. There's no middle path."
The founders intend to take on up to four workers in the first year of operations, and assuming everything goes to plan, after five years there should be up to 30 Docear experts in Magdeburg.
These three rising stars are well aware that this is an ambitious target, but they express their conviction in the ability of their product to succeed in the market. And they are not alone in this opinion. The jury of the regional business plan competition ego.BUSINESS also sees a great potential in Docear. Its founders were awarded second place in the final round.
Provided that the – hopefully soon found – investor plays along, the three founders intend to remain in Magdeburg. The proximity to the university, in particular, is of priceless value. "It's not only the advice and the rent-free offices that are important to us, but also the possibility to remain in contact with the students and what they need when writing scientific texts. This is the only way to tailor Docear precisely to our target group. And in this "war of talents", it will enable us to take on committed and specialist graduates as employees."
Author: regio.M
Contakt:
Jöran Beel
Edithawinkel 3
E-Mail: beel.ignore@docear.org
Stefan Langer
E-Mail: langer.ignore@docear.org


kitchen island and bar medium size of island bar table kitchen design pictures industrial kitchen island shaker kitchen island bar stool space.
20x20 patio chair cushions outdoor seat cushions outdoor seat cushions outdoor seat cushions patio cushions cream with green 20 x 20 patio seat cushions.
painting lights battery operated battery operated wall lamps good wall picture lights battery operated for battery operated wall light fixtures indoor and outdoor wireless battery operated battery ope.
stand alone jetted tub stand alone soaking tub stunning deep soaking tub home decor bathroom freestanding jetted tubs bathtub stand alone whirlpool tubs.
i love you i know mug template i love you i know love actually cast.
light blue blackout curtains baby blue curtains magnificent by blue curtains and blue blackout curtains best curtains baby blue curtains baby blue curtains baby blue blackout curtains for nursery.
small trash can with wheels e trash can wheels lid with lids small size of gallon recycling container shown e trash can wheels small outdoor trash can with wheels.
primitive bedding sets vintage star navy primitive quilt set bedding from primitive star bedding sets.
simple pot decoration designs simple pot decoration ideas.
luggage duffel bags men travel bag leather bag vintage brown designer travel overnight tote large capacity luggage bag shoulder travel bag in travel bags from luggage laundry by shelli segal rain jack.


At the Kansas City law firm of Troppito Miller Griffin, LLC, we have successfully handled numerous construction-related disputes on behalf of contractors, developers, material suppliers and other clients. These disputes have ranged in value from less than a thousand dollars to a million dollars or more. In every case, our mission is to limit the financial impact on our clients while promptly resolving the conflict.
Construction defect defense: We have significant experience defending our clients in these matters as well as working with — or against — insurance companies in defect claim disputes. From water infiltration incidents to electrical installation issues, we will diligently advocate for you.
Delay, disruption and acceleration claims: It is very important that you are able to properly document a delay, a disruption or an acceleration request in order make a proper claim to the owner or general contractor to make sure that you are compensated. At the end of the day, our goal is to ensure that you collect an adequate amount of money to make the project worthwhile for you.
OSHA violations: Our law firm is familiar with the complex requirements of the Occupational Safety and Health Administration (OSHA), and we are skilled at negotiating with the administration to resolve alleged violations.
Mediation and arbitration: These forms of alternative dispute resolution are common in the construction industry and tend to be more cost-effective than litigation. Our lawyers have extensive experience protecting clients' rights in both mediation and arbitration.
Based in the River Market in downtown Kansas City, our lawyers serve clients in both Missouri and Kansas. Call Troppito Miller Griffin, LLC at 866-578-5199 or contact us online to arrange an initial consultation with one of our construction litigation attorneys.


text:
package org.apache.hadoop.mapred;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.apache.hadoop.fs.RemoteIterator;
import org.apache.hadoop.mapreduce.security.TokenCache;
import org.apache.hadoop.net.NetworkTopology;
import org.apache.hadoop.net.Node;
import org.apache.hadoop.net.NodeBase;
import org.apache.hadoop.util.ReflectionUtils;
import org.apache.hadoop.util.StringUtils;

import com.google.common.base.Stopwatch;
import com.google.common.collect.Iterables;

/**
 * A base class for file-based {@link InputFormat}.
 *
 *
FileInputFormat is the base class for all file-based
 * InputFormats. This provides a generic implementation of
 * {@link #getSplits(JobConf, int)}.
 * Subclasses of FileInputFormat can also override the
 * {@link #isSplitable(FileSystem, Path)} method to ensure input-files are
 * not split-up and are processed as a whole by {@link Mapper}s.
 */
@InterfaceAudience.Public
@InterfaceStability.Stable
public abstract class FileInputFormat<K, V> implements InputFormat<K, V> {

  public static final Log LOG =
    LogFactory.getLog(FileInputFormat.class);

  @Deprecated
  public static enum Counter {
    BYTES_READ
  }

  public static final String NUM_INPUT_FILES =
    org.apache.hadoop.mapreduce.lib.input.FileInputFormat.NUM_INPUT_FILES;

  public static final String INPUT_DIR_RECURSIVE =
    org.apache.hadoop.mapreduce.lib.input.FileInputFormat.INPUT_DIR_RECURSIVE;

  private static final double SPLIT_SLOP = 1.1;   // 10% slop

  private long minSplitSize = 1;
  private static final PathFilter hiddenFileFilter = new PathFilter(){
      public boolean accept(Path p){
        String name = p.getName();
        return !name.startsWith("_") && !name.startsWith(".");
      }
    };
  protected void setMinSplitSize(long minSplitSize) {
    this.minSplitSize = minSplitSize;
  }

  /**
   * Proxy PathFilter that accepts a path only if all filters given in the
   * constructor do. Used by the listPaths() to apply the built-in
   * hiddenFileFilter together with a user provided one (if any).
   */
  private static class MultiPathFilter implements PathFilter {
    private List<PathFilter> filters;

    public MultiPathFilter(List<PathFilter> filters) {
      this.filters = filters;
    }

    public boolean accept(Path path) {
      for (PathFilter filter : filters) {
        if (!filter.accept(path)) {
          return false;
        }
      }
      return true;
    }
  }

  /**
   * Is the given filename splitable? Usually, true, but if the file is
   * stream compressed, it will not be.
   *
   * FileInputFormat implementations can override this and return
   * false to ensure that individual input files are never split-up
   * so that {@link Mapper}s process entire files.
   *
   * @param fs the file system that the file is on
   * @param filename the file name to check
   * @return is this file splitable?
   */
  protected boolean isSplitable(FileSystem fs, Path filename) {
    return true;
  }

  public abstract RecordReader<K, V> getRecordReader(InputSplit split,
                                               JobConf job,
                                               Reporter reporter)
    throws IOException;

  /**
   * Set a PathFilter to be applied to the input paths for the map-reduce job.
   *
   * @param filter the PathFilter class use for filtering the input paths.
   */
  public static void setInputPathFilter(JobConf conf,
                                        Class<? extends PathFilter> filter) {
    conf.setClass(org.apache.hadoop.mapreduce.lib.input.
      FileInputFormat.PATHFILTER_CLASS, filter, PathFilter.class);
  }

  /**
   * Get a PathFilter instance of the filter set for the input paths.
   *
   * @return the PathFilter instance set for the job, NULL if none has been set.
   */
  public static PathFilter getInputPathFilter(JobConf conf) {
    Class<? extends PathFilter> filterClass = conf.getClass(
	  org.apache.hadoop.mapreduce.lib.input.FileInputFormat.PATHFILTER_CLASS,
	  null, PathFilter.class);
    return (filterClass != null) ?
        ReflectionUtils.newInstance(filterClass, conf) : null;
  }

  /**
   * Add files in the input path recursively into the results.
   * @param result
   *          The List to store all files.
   * @param fs
   *          The FileSystem.
   * @param path
   *          The input path.
   * @param inputFilter
   *          The input filter that can be used to filter files/dirs.
   * @throws IOException
   */
  protected void addInputPathRecursively(List<FileStatus> result,
      FileSystem fs, Path path, PathFilter inputFilter)
      throws IOException {
    RemoteIterator<LocatedFileStatus> iter = fs.listLocatedStatus(path);
    while (iter.hasNext()) {
      LocatedFileStatus stat = iter.next();
      if (inputFilter.accept(stat.getPath())) {
        if (stat.isDirectory()) {
          addInputPathRecursively(result, fs, stat.getPath(), inputFilter);
        } else {
          result.add(stat);
        }
      }
    }
  }

  /** List input directories.
   * Subclasses may override to, e.g., select only files matching a regular
   * expression.
   *
   * @param job the job to list input paths for
   * @return array of FileStatus objects
   * @throws IOException if zero items.
   */
  protected FileStatus[] listStatus(JobConf job) throws IOException {
    Path[] dirs = getInputPaths(job);
    if (dirs.length == 0) {
      throw new IOException("No input paths specified in job");
    }

    // get tokens for all the required FileSystems..
    TokenCache.obtainTokensForNamenodes(job.getCredentials(), dirs, job);

    // Whether we need to recursive look into the directory structure
    boolean recursive = job.getBoolean(INPUT_DIR_RECURSIVE, false);

    // creates a MultiPathFilter with the hiddenFileFilter and the
    // user provided one (if any).
    List<PathFilter> filters = new ArrayList<PathFilter>();
    filters.add(hiddenFileFilter);
    PathFilter jobFilter = getInputPathFilter(job);
    if (jobFilter != null) {
      filters.add(jobFilter);
    }
    PathFilter inputFilter = new MultiPathFilter(filters);

    FileStatus[] result;
    int numThreads = job
        .getInt(
            org.apache.hadoop.mapreduce.lib.input.FileInputFormat.LIST_STATUS_NUM_THREADS,
            org.apache.hadoop.mapreduce.lib.input.FileInputFormat.DEFAULT_LIST_STATUS_NUM_THREADS);

    Stopwatch sw = new Stopwatch().start();
    if (numThreads == 1) {
      List<FileStatus> locatedFiles = singleThreadedListStatus(job, dirs, inputFilter, recursive);
      result = locatedFiles.toArray(new FileStatus[locatedFiles.size()]);
    } else {
      Iterable<FileStatus> locatedFiles = null;
      try {

        LocatedFileStatusFetcher locatedFileStatusFetcher = new LocatedFileStatusFetcher(
            job, dirs, recursive, inputFilter, false);
        locatedFiles = locatedFileStatusFetcher.getFileStatuses();
      } catch (InterruptedException e) {
        throw new IOException("Interrupted while getting file statuses");
      }
      result = Iterables.toArray(locatedFiles, FileStatus.class);
    }

    sw.stop();
    if (LOG.isDebugEnabled()) {
      LOG.debug("Time taken to get FileStatuses: " + sw.elapsedMillis());
    }
    LOG.info("Total input paths to process : " + result.length);
    return result;
  }

  private List<FileStatus> singleThreadedListStatus(JobConf job, Path[] dirs,
      PathFilter inputFilter, boolean recursive) throws IOException {
    List<FileStatus> result = new ArrayList<FileStatus>();
    List<IOException> errors = new ArrayList<IOException>();
    for (Path p: dirs) {
      FileSystem fs = p.getFileSystem(job);
      FileStatus[] matches = fs.globStatus(p, inputFilter);
      if (matches == null) {
        errors.add(new IOException("Input path does not exist: " + p));
      } else if (matches.length == 0) {
        errors.add(new IOException("Input Pattern " + p + " matches 0 files"));
      } else {
        for (FileStatus globStat: matches) {
          if (globStat.isDirectory()) {
            RemoteIterator<LocatedFileStatus> iter =
                fs.listLocatedStatus(globStat.getPath());
            while (iter.hasNext()) {
              LocatedFileStatus stat = iter.next();
              if (inputFilter.accept(stat.getPath())) {
                if (recursive && stat.isDirectory()) {
                  addInputPathRecursively(result, fs, stat.getPath(),
                      inputFilter);
                } else {
                  result.add(stat);
                }
              }
            }
          } else {
            result.add(globStat);
          }
        }
      }
    }
    if (!errors.isEmpty()) {
      throw new InvalidInputException(errors);
    }
    return result;
  }

  /**
   * A factory that makes the split for this class. It can be overridden
   * by sub-classes to make sub-types
   */
  protected FileSplit makeSplit(Path file, long start, long length,
                                String[] hosts) {
    return new FileSplit(file, start, length, hosts);
  }

  /** Splits files returned by {@link #listStatus(JobConf)} when
   * they're too big.*/
  public InputSplit[] getSplits(JobConf job, int numSplits)
    throws IOException {
    Stopwatch sw = new Stopwatch().start();
    FileStatus[] files = listStatus(job);

    // Save the number of input files for metrics/loadgen
    job.setLong(NUM_INPUT_FILES, files.length);
    long totalSize = 0;                           // compute total size
    for (FileStatus file: files) {                // check we have valid files
      if (file.isDirectory()) {
        throw new IOException("Not a file: "+ file.getPath());
      }
      totalSize += file.getLen();
    }

    long goalSize = totalSize / (numSplits == 0 ? 1 : numSplits);
    long minSize = Math.max(job.getLong(org.apache.hadoop.mapreduce.lib.input.
      FileInputFormat.SPLIT_MINSIZE, 1), minSplitSize);

    // generate splits
    ArrayList<FileSplit> splits = new ArrayList<FileSplit>(numSplits);
    NetworkTopology clusterMap = new NetworkTopology();
    for (FileStatus file: files) {
      Path path = file.getPath();
      long length = file.getLen();
      if (length != 0) {
        FileSystem fs = path.getFileSystem(job);
        BlockLocation[] blkLocations;
        if (file instanceof LocatedFileStatus) {
          blkLocations = ((LocatedFileStatus) file).getBlockLocations();
        } else {
          blkLocations = fs.getFileBlockLocations(file, 0, length);
        }
        if (isSplitable(fs, path)) {
          long blockSize = file.getBlockSize();
          long splitSize = computeSplitSize(goalSize, minSize, blockSize);

          long bytesRemaining = length;
          while (((double) bytesRemaining)/splitSize > SPLIT_SLOP) {
            String[] splitHosts = getSplitHosts(blkLocations,
                length-bytesRemaining, splitSize, clusterMap);
            splits.add(makeSplit(path, length-bytesRemaining, splitSize,
                splitHosts));
            bytesRemaining -= splitSize;
          }

          if (bytesRemaining != 0) {
            String[] splitHosts = getSplitHosts(blkLocations, length
                - bytesRemaining, bytesRemaining, clusterMap);
            splits.add(makeSplit(path, length - bytesRemaining, bytesRemaining,
                splitHosts));
          }
        } else {
          String[] splitHosts = getSplitHosts(blkLocations,0,length,clusterMap);
          splits.add(makeSplit(path, 0, length, splitHosts));
        }
      } else {
        //Create empty hosts array for zero length files
        splits.add(makeSplit(path, 0, length, new String[0]));
      }
    }
    sw.stop();
    if (LOG.isDebugEnabled()) {
      LOG.debug("Total # of splits generated by getSplits: " + splits.size()
          + ", TimeTaken: " + sw.elapsedMillis());
    }
    return splits.toArray(new FileSplit[splits.size()]);
  }

  protected long computeSplitSize(long goalSize, long minSize,
                                       long blockSize) {
    return Math.max(minSize, Math.min(goalSize, blockSize));
  }

  protected int getBlockIndex(BlockLocation[] blkLocations,
                              long offset) {
    for (int i = 0 ; i < blkLocations.length; i++) {
      // is the offset inside this block?
      if ((blkLocations[i].getOffset() <= offset) &&
          (offset < blkLocations[i].getOffset() + blkLocations[i].getLength())){
        return i;
      }
    }
    BlockLocation last = blkLocations[blkLocations.length -1];
    long fileLength = last.getOffset() + last.getLength() -1;
    throw new IllegalArgumentException("Offset " + offset +
                                       " is outside of file (0.." +
                                       fileLength + ")");
  }

  /**
   * Sets the given comma separated paths as the list of inputs
   * for the map-reduce job.
   *
   * @param conf Configuration of the job
   * @param commaSeparatedPaths Comma separated paths to be set as
   *        the list of inputs for the map-reduce job.
   */
  public static void setInputPaths(JobConf conf, String commaSeparatedPaths) {
    setInputPaths(conf, StringUtils.stringToPath(
                        getPathStrings(commaSeparatedPaths)));
  }

  /**
   * Add the given comma separated paths to the list of inputs for
   *  the map-reduce job.
   *
   * @param conf The configuration of the job
   * @param commaSeparatedPaths Comma separated paths to be added to
   *        the list of inputs for the map-reduce job.
   */
  public static void addInputPaths(JobConf conf, String commaSeparatedPaths) {
    for (String str : getPathStrings(commaSeparatedPaths)) {
      addInputPath(conf, new Path(str));
    }
  }

  /**
   * Set the array of {@link Path}s as the list of inputs
   * for the map-reduce job.
   *
   * @param conf Configuration of the job.
   * @param inputPaths the {@link Path}s of the input directories/files
   * for the map-reduce job.
   */
  public static void setInputPaths(JobConf conf, Path... inputPaths) {
    Path path = new Path(conf.getWorkingDirectory(), inputPaths[0]);
    StringBuffer str = new StringBuffer(StringUtils.escapeString(path.toString()));
    for(int i = 1; i < inputPaths.length;i++) {
      str.append(StringUtils.COMMA_STR);
      path = new Path(conf.getWorkingDirectory(), inputPaths[i]);
      str.append(StringUtils.escapeString(path.toString()));
    }
    conf.set(org.apache.hadoop.mapreduce.lib.input.
      FileInputFormat.INPUT_DIR, str.toString());
  }

  /**
   * Add a {@link Path} to the list of inputs for the map-reduce job.
   *
   * @param conf The configuration of the job
   * @param path {@link Path} to be added to the list of inputs for
   *            the map-reduce job.
   */
  public static void addInputPath(JobConf conf, Path path ) {
    path = new Path(conf.getWorkingDirectory(), path);
    String dirStr = StringUtils.escapeString(path.toString());
    String dirs = conf.get(org.apache.hadoop.mapreduce.lib.input.
      FileInputFormat.INPUT_DIR);
    conf.set(org.apache.hadoop.mapreduce.lib.input.
      FileInputFormat.INPUT_DIR, dirs == null ? dirStr :
      dirs + StringUtils.COMMA_STR + dirStr);
  }

  // This method escapes commas in the glob pattern of the given paths.
  private static String[] getPathStrings(String commaSeparatedPaths) {
    int length = commaSeparatedPaths.length();
    int curlyOpen = 0;
    int pathStart = 0;
    boolean globPattern = false;
    List<String> pathStrings = new ArrayList<String>();

    for (int i=0; i<length; i++) {
      char ch = commaSeparatedPaths.charAt(i);
      switch(ch) {
        case '{' : {
          curlyOpen++;
          if (!globPattern) {
            globPattern = true;
          }
          break;
        }
        case '}' : {
          curlyOpen--;
          if (curlyOpen == 0 && globPattern) {
            globPattern = false;
          }
          break;
        }
        case ',' : {
          if (!globPattern) {
            pathStrings.add(commaSeparatedPaths.substring(pathStart, i));
            pathStart = i + 1 ;
          }
          break;
        }
        default:
          continue; // nothing special to do for this character
      }
    }
    pathStrings.add(commaSeparatedPaths.substring(pathStart, length));

    return pathStrings.toArray(new String[0]);
  }

  /**
   * Get the list of input {@link Path}s for the map-reduce job.
   *
   * @param conf The configuration of the job
   * @return the list of input {@link Path}s for the map-reduce job.
   */
  public static Path[] getInputPaths(JobConf conf) {
    String dirs = conf.get(org.apache.hadoop.mapreduce.lib.input.
      FileInputFormat.INPUT_DIR, "");
    String [] list = StringUtils.split(dirs);
    Path[] result = new Path[list.length];
    for (int i = 0; i < list.length; i++) {
      result[i] = new Path(StringUtils.unEscapeString(list[i]));
    }
    return result;
  }

  private void sortInDescendingOrder(List<NodeInfo> mylist) {
    Collections.sort(mylist, new Comparator<NodeInfo> () {
      public int compare(NodeInfo obj1, NodeInfo obj2) {

        if (obj1 == null || obj2 == null)
          return -1;

        if (obj1.getValue() == obj2.getValue()) {
          return 0;
        }
        else {
          return ((obj1.getValue() < obj2.getValue()) ? 1 : -1);
        }
      }
    }
    );
  }

  /**
   * This function identifies and returns the hosts that contribute
   * most for a given split. For calculating the contribution, rack
   * locality is treated on par with host locality, so hosts from racks
   * that contribute the most are preferred over hosts on racks that
   * contribute less
   * @param blkLocations The list of block locations
   * @param offset
   * @param splitSize
   * @return array of hosts that contribute most to this split
   * @throws IOException
   */
  protected String[] getSplitHosts(BlockLocation[] blkLocations,
      long offset, long splitSize, NetworkTopology clusterMap)
  throws IOException {

    int startIndex = getBlockIndex(blkLocations, offset);

    long bytesInThisBlock = blkLocations[startIndex].getOffset() +
                          blkLocations[startIndex].getLength() - offset;

    //If this is the only block, just return
    if (bytesInThisBlock >= splitSize) {
      return blkLocations[startIndex].getHosts();
    }

    long bytesInFirstBlock = bytesInThisBlock;
    int index = startIndex + 1;
    splitSize -= bytesInThisBlock;

    while (splitSize > 0) {
      bytesInThisBlock =
        Math.min(splitSize, blkLocations[index++].getLength());
      splitSize -= bytesInThisBlock;
    }

    long bytesInLastBlock = bytesInThisBlock;
    int endIndex = index - 1;

    Map <Node,NodeInfo> hostsMap = new IdentityHashMap<Node,NodeInfo>();
    Map <Node,NodeInfo> racksMap = new IdentityHashMap<Node,NodeInfo>();
    String [] allTopos = new String[0];

    // Build the hierarchy and aggregate the contribution of
    // bytes at each level. See TestGetSplitHosts.java

    for (index = startIndex; index <= endIndex; index++) {

      // Establish the bytes in this block
      if (index == startIndex) {
        bytesInThisBlock = bytesInFirstBlock;
      }
      else if (index == endIndex) {
        bytesInThisBlock = bytesInLastBlock;
      }
      else {
        bytesInThisBlock = blkLocations[index].getLength();
      }

      allTopos = blkLocations[index].getTopologyPaths();

      // If no topology information is available, just
      // prefix a fakeRack
      if (allTopos.length == 0) {
        allTopos = fakeRacks(blkLocations, index);
      }

      // NOTE: This code currently works only for one level of
      // hierarchy (rack/host). However, it is relatively easy
      // to extend this to support aggregation at different
      // levels

      for (String topo: allTopos) {

        Node node, parentNode;
        NodeInfo nodeInfo, parentNodeInfo;

        node = clusterMap.getNode(topo);

        if (node == null) {
          node = new NodeBase(topo);
          clusterMap.add(node);
        }

        nodeInfo = hostsMap.get(node);

        if (nodeInfo == null) {
          nodeInfo = new NodeInfo(node);
          hostsMap.put(node,nodeInfo);
          parentNode = node.getParent();
          parentNodeInfo = racksMap.get(parentNode);
          if (parentNodeInfo == null) {
            parentNodeInfo = new NodeInfo(parentNode);
            racksMap.put(parentNode,parentNodeInfo);
          }
          parentNodeInfo.addLeaf(nodeInfo);
        }
        else {
          nodeInfo = hostsMap.get(node);
          parentNode = node.getParent();
          parentNodeInfo = racksMap.get(parentNode);
        }

        nodeInfo.addValue(index, bytesInThisBlock);
        parentNodeInfo.addValue(index, bytesInThisBlock);

      } // for all topos

    } // for all indices

    return identifyHosts(allTopos.length, racksMap);
  }

  private String[] identifyHosts(int replicationFactor,
                                 Map<Node,NodeInfo> racksMap) {

    String [] retVal = new String[replicationFactor];

    List <NodeInfo> rackList = new LinkedList<NodeInfo>();

    rackList.addAll(racksMap.values());

    // Sort the racks based on their contribution to this split
    sortInDescendingOrder(rackList);

    boolean done = false;
    int index = 0;

    // Get the host list for all our aggregated items, sort
    // them and return the top entries
    for (NodeInfo ni: rackList) {

      Set<NodeInfo> hostSet = ni.getLeaves();

      List<NodeInfo>hostList = new LinkedList<NodeInfo>();
      hostList.addAll(hostSet);

      // Sort the hosts in this rack based on their contribution
      sortInDescendingOrder(hostList);

      for (NodeInfo host: hostList) {
        // Strip out the port number from the host name
        retVal[index++] = host.node.getName().split(":")[0];
        if (index == replicationFactor) {
          done = true;
          break;
        }
      }

      if (done == true) {
        break;
      }
    }
    return retVal;
  }

  private String[] fakeRacks(BlockLocation[] blkLocations, int index)
  throws IOException {
    String[] allHosts = blkLocations[index].getHosts();
    String[] allTopos = new String[allHosts.length];
    for (int i = 0; i < allHosts.length; i++) {
      allTopos[i] = NetworkTopology.DEFAULT_RACK + "/" + allHosts[i];
    }
    return allTopos;
  }

  private static class NodeInfo {
    final Node node;
    final Set<Integer> blockIds;
    final Set<NodeInfo> leaves;

    private long value;

    NodeInfo(Node node) {
      this.node = node;
      blockIds = new HashSet<Integer>();
      leaves = new HashSet<NodeInfo>();
    }

    long getValue() {return value;}

    void addValue(int blockIndex, long value) {
      if (blockIds.add(blockIndex) == true) {
        this.value += value;
      }
    }

    Set<NodeInfo> getLeaves() { return leaves;}

    void addLeaf(NodeInfo nodeInfo) {
      leaves.add(nodeInfo);
    }
  }
}

redpajama_set_name: RedPajamaGithub


Your safety is important to us. As a responsible employer, we want to make sure you are not exposed to any unnecessary health and safety risks. We all have a personal responsibility to take reasonable care for our own and our colleagues' health and safety. If we all work on this, accidents can be prevented.
This booklet tells you what you need to know about working safely, including fire safety, first aid, display screen use and work related stress. Please familiarise yourself with the content, and sign and return page 20 to your Line Manager as soon as possible.


Quickly find the best Accounting News Sites & Blogs via our continuous curation process.
Staying up to date with the latest accounting developments can be a real challenge. As we all know, the internet is an invaluable resource for knowledge these days. The only problem is that there are tons of resources for learning and staying up to date with the latest accounting developments.
That's why we have we have listed the Best Accounting News Sites & Blogs for you in a curated and structured way. How we do that you can learn here.
Items covered by below accounting resources include latest news & developments, industry news, in-depth analyses, trends, how to articles, coaching articles, best practices, business cases, industry rankings, and much more.
Newly found Accounting News Sites or Blogs that are great looking are included in the list below. So if you know other great looking Accounting News Sites or Blogs we should know of, just complete this online survey in less than a minute or leave a comment at the bottom section, and we might include it in this list if we also like it a lot.
Via our Latest Sector News Briefing Rooms, you can stay up to date with the latest and most shared content of the best accounting resources on the internet. The Accounting Briefing Room follows the top accounting resources on the web, which includes the best sources as suggested by our users and visitors. Only the most shared content is shown, and you can filter all the content for the last 24 hours, 3 days, 1 week, 1 month, 3 months, etc. so you can easily find and stay up to date with the latest accounting developments by just following our aggregated Briefing Rooms.
When you have a great tip or suggestion, just keep in mind the following. It should be relevant for this particular list, and it should certainly add value to our visitors and users. We like websites that are up to date and structured in a clear and clean way. We do not like advertising heavy websites.
Keep Up the Good Work & We Love to See Your Suggestions!


text:
Teignbridge District Council
Here is what new Dawlish housing development will look like
It is part of a 1,000 homes plan for the area
Artist impression of the Dawlish housing plan
Detailed plans for 74 new homes in Dawlish as part of a parcel of land that could deliver up to 1,000 homes have been revealed.
As part of the DA2 framework plan for Dawlish, which has been adopted as a planning document by Teignbridge District Council, the council hopes to deliver the building of up to 1,000 houses around the north of the town.
Plans for 409 houses at Gatehouse Farm on Secmaton Lane were approved in July 2016, which followed on from the approval granted in April for Waddeton Park Ltd's plans for up to 200 homes, a 64-bed care home and three hectares of employment land on a 16-acre plot of land in the grounds of Langdon Hospital
Housing developments of 96 and 35 new homes have also been approved, while plans for 201 new homes at land at Secmaton Farm in Dawlish have also been submitted to Teignbridge Council.
Man left screaming in pain and fearing he would die after chemical sprayed into his eyes
Outline plans for 74 new homes at Gatehouse Farm had previously been approved by the council, and now, the detail of those plans have been submitted and revealed.
Context of the Dawlish housing plan
The application site is located directly opposite two recently approved residential developments and forms part of the proposed extension of Dawlish in the Local Plan.
Historic Dawlish beach kiosk demolished
Although planning permission for 75 homes has been approved, developers Cavanna Homes are only seeking permission to build 74 homes, of which, 30 per cent will be affordable housing. A public open space will also be provided.
A statement submitted with the application says: "The reserved matters application complies with the principles of design in the outline planning permission and seeks to provide a development that is conscious of its surrounding, responds to the various constraints and the opportunities identified throughout the design process."
Here's how major works to Teignbridge Council's reception will affect opening hours
Teignbridge Council will decide the fate of the application.


Extra: to make the Group-journeys smooth and avoid losing time when all guests handle the tipping individually, our guide will propose to the guest to handle this for them. It includes services like tips to local boat staff, bus assistants, temple donations, local trekking guide, elephant mahout, etc. The Guide will explain this in detail in the Briefing and collect an amount per guest and keep administration which one of the guests will check and confirm at the end. We would suggest your Group-guests to prepare around Baht 70,- per tour- day/per person for this.
Set in the mountain of the northern Thailand, Chiang Mai offers cool weather and natural beauty. Chiang Mai is surrounded by 13 national parks with diverse flora and fauna. Dozens of waterfalls, mysterious caves and old-growth forests draw nature lovers from around the world. Thailand's "Rose of the North" is a cultural and natural wonderland with ethnic diversity, a multitude of attractions and welcoming hospitality.
The Yi Peng Loy Krathong Lantern is another famous cultural event in Chiang Mai. On a full moon night in November, thousands of lanterns are released into the sky. They resemble thousands of twinkling stars. People also place lanterns on the river to wish for luck and happiness at the festival. Chiang Mai is the only city in Thailand where people are allowed to light sky lanterns, thanks to its large open spaces and lack of tall buildings.
An old city with a long history, Chiang Mai is home to many fascinating sites. Thailand is known as the country of Wat Traimit (Golden Buddha). Visitors of all religions tour the city's famous temples and pagodas to admire their architecture and sculptures. The first place to visit is Phrathat Doi Suthep pagoda, known for its unique architectural design. This 600 year old pagoda is located on the top of Mount Doi Suthep at 1,676 meters above the sea level. Phrathat Doi Suthep has housed a sacred relic of Lord Buddha in a gilded temple since the 14th century. Many sophisticated Buddha statues carved from green stone are covered in glittering gold.
Visitors write their names on the tiny golden bells and hang them around the temple to wish for good luck. Every time the wind blows, the bells ring. Thai people believe that the Buddha hears this ringing and helps the wishes come true. The best time to visit Doi Suthep pagoda is at sunrise or sunset when the site offers a scenic view of the whole city below.
There are many beauty spots and festivals waiting to be discovered in Chiang Mai. This is a wonderful place to experience the traditional culture of the land of the Golden Buddha. I would not mind coming back here again. It's one of my favorite destination.
Sipping a cup of coffee while listening to the church bells: Just wandering around and stop at a cozy coffee shop around the church for a cup of hot coffee. The church bells ring at regular hours so reading a book or leisurely watching the streets in rain while listening to that peaceful sound is also a not to miss.
Eating sea snail: Hot boiled snails is one of the most attractive dishes in Hanoi on cold days. Hanoians often boil sea snails together with lime leaves, lemon grass and serve with dipping sauce. If you are wondering what to eat on Hanoi freezing cold days, go and try sea snails in the Old Quarter, you will definitely like it!
Hope that above suggestions will make your days in Hanoi warmer even when it is cold or raining outside.
Whenever you want to try the new food, taste the authentic dishes and eat like a local? Let's join a cookery class! In Hanoi, there are several options worthy consideration.
As a social enterprise, KOTO has trained over 600 students in two training centres in Hanoi and Saigon, with 200 concurrently enrolled. In addition to its Foundation arm that focuses on raising funds to support its cause through charitable activities and initiatives, KOTO also operates an Enterprise arm, serving as a platform for real life hospitality training as well as a source of income to support the welfare and training of the students. KOTO Enterprise currently includes two Training Restaurants, an online bakery, a cooking class, and a catering service.
Going to Koto, you can join 4 different classes: Spring Class, Strictly vegetarian, The Art of Pho (a popular Vietnamese noddles) and Traditional street food. Each course has 5 main dishes.
The classes open in the morning and afternoon everyday. At first, you will have a walking tour at the local market nearby, learn all about the ingredients and the indigenous herbals.
A cooking lesson follows in the kitchen cook with the Vietnamese chef and everyone has the opportunity to practise right away.
At the end of the course, you gain a heap of knowledge about Vietnamese culinary art.; then happily enjoy the food prepared by yourselves.
It's a popular place for both Vietnamese and foreigners to learn about Hanoi culture as well as explore the secret of authentic Hanoi food.
The restaurant is one of the well reserved ancient house in Hanoi old quarter. Going there also provides the chance to watch the traditional Vietnam architecture style and cook the delicious food.
The class is taught by Ms. Anh Tuyet and her daughter Ms. Trang.
"Ms Tuyet's restaurant and her delicate dishes are part of Viet Nam's cultural heritage. The old quarter, ancient homes, traditional dishes and a friendly atmosphere all make Ms Tuyet's a place that cannot be found anywhere else,"Anthony Bourdan – a well-known cook in Manhattan said.
The restaurant and cooing center was set up by Australian Tracey Lister. She used to be the main chef trainer at Koto and is co-author of the book Koto – A Culinary Journey through Vietnam and the upcoming Vietnamese Street Food published in the UK and Australia.
It now is one of the cultural spot in Hanoi, with the next-door bookstore named Bookworm and many interesting activities on Tet holiday.


text:
Dominic Simmons Takes on Fashion
By Grace Lee, Social Media Editor
Photo By Grace Lee
 Dominic Simmons is an 11th grader here at Vaca High, he is responsible for an online clothing co. called Classic Garden and has been since 8th grade. "There are two simple factors why I started my clothing brand, I wanted money and I was bored," he stated. Dominic gets most of his inspiration from Kanye West, Tyler The Creator, and Trendy Outfits in L.A: "I would like to think of my brand as edgy, yet trendy." One fun fact about his brand is the choice of animal that's printed on a majority of his clothing items - an Octopus. "I have a very creative mind. Since my brand is called Classic Garden, I chose an octopus to be in the garden," Dominic said.
Dominic's hopes for the future is to one day do pop up shops like Nike and Zumiez. A pop up shop is where small clothing brands are allowed to come into larger corporations and sell their clothes for a certain amount of time. If you would like to access his amazing, totally radical online website head to tictail.com/s/bbash and instagram is bankingbash.store.


text:
Glasgow-Fortner House
24, Burgar Street, Welland, Ontario, Canada
Rinderlins Dining Rooms
The City of Welland website
Located at 24 Burgar Street, the Glasgow-Fortner House is a three-storey residence constructed around 1859 in the area now known as downtown Welland. Built in the Queen Anne Revival style, it features an asymmetrical form, round turret and whimsical detailing around the windows, porch and balconies. This property was designated by the City of Welland for its historical value under By-law 8205.
The building's historical value is expressed through its connection to many of Welland's prominent residents, including the Burgars, Glasgows and the Fortner sisters. Thomas Burgar, the first postmaster for the Village of Welland, was an early owner of the subject property and it is presumed that Burgar Street was named after his family name. The original house on the property was built by Thomas' son, George H. Burgar, who succeeded his father as postmaster in 1874. George played a significant role in the political development of Welland, serving as Alderman from 1871 to 1912, and Mayor in 1893 and 1894. The property was used by Dr. William E. Burgar to begin his medical practice in 1878, and it is believed that a major addition to the house took place in 1884 under Dr. Burgar's direction. The property was purchased in 1889 by Nancy Glasgow, whose husband, Dr. Sinclair H. Glasgow, served the political community as both an Alderman and Mayor of the Town of Welland, and was also the medical officer of health for Crowland. Aside from a residence and site for medical practice, this house has more recently been used as a fine dining restaurant, retaining the historical charm of this riveting design.
The three storey frame structure is valued for its architectural significance as an excellent example of the Queen Anne Revival Style, characterized by its asymmetrical composition and whimsical detail which is evident in its turret, window gables, dormer, porches and balconies. This period also delighted in exploiting fine materials in a creative offbeat manner, quite obvious in the original interior finishes of fine wood, unusual mouldings, panels and the handsome stairway. At one time, the carved glass window and mirror at the front entrance allowed a clear southern view down Burgar Street. The unusual half-circle motif of the stair balustrades, which appears to be a fine cherry or mahogany, would be typical of this period.
The contextual value of the Glasgow-Fortner House lies in its location in a historically-rich area of Welland. It sits within short walking distance from many other heritage sites, including Court House, Farmer's Market Building, Central Fire Hall and Lawrence-Singer House. This network of historic buildings contributes to the overall heritage character of downtown Welland.
Sources: Report on Glasgow-Fortner House, Nora Reid, Heritage Welland Committee, 2006; "A Stroll into Yesterday" Robert J. Foley, Regional Shopping, March 14, 1990; City of Welland By-law 8205.
Character defining elements that reflect the historical value of the Glasgow-Fortner House include:
-connection to the Burgar family, including Thomas and George H. Burgar, postmasters for the Village of Welland and the latter an Alderman and Mayor, and William E. Burgar, medical practitioner
-association with Nancy Glasgow, wife of well-known Dr. Sinclair Glasgow, who served as Alderman and Mayor of the Town of Welland and was the medical officer of health for Crowland
Character defining elements that reflect the architectural value of the house, particularly its Queen Anne style, include:
-assymetrical composition
-whimsical detail evident in its turret, window gables, dormer, porches and balconies
-use of fine materials in a creative offbeat manner, obvious in the original interior finishes of fine wood, unusual mouldings, panels and the handsome stairway
-carved glass window and mirror at the front entrance
-unusual half-circle motif of the stair balustrades, which appears to be a fine cherry or mahogany
Character defining elements that contribute to the contextual value of the Glasgow-Fortner House include:
-location in Welland's downtown
-proximity to numerous other heritage sites, including the Court House, Farmer's Market Building, Central Fire Hall and the Lawrence-Singer House
Local Governments (ON)
Ontario Heritage Act
Municipal Heritage Designation (Part IV)
Peopling the Land
Commerce / Commercial Services
Eating or Drinking Establishment
Single Dwelling
Welland City Hall 60 East Main Street Welland, ON L3B 3X4
HPON08-0051
Central United Church (Welland)
88, King Street, Welland, Ontario
The Central United Church is located at 88 King Street, near Welland's downtown core. This…
Main Street Bridge
0, Main Street East, Welland, Ontario
Towering over the Welland Canal and constructed in 1927 is the City of Welland's most recognizable…
Gordon-Marshall House
155, Hellems Ave., Welland, Ontario
The Gordon-Marshall House is a red brick 'T'-shaped dwelling situated in downtown Welland, at 155…


Well, everyone, today's the day you can start going out and getting your Civil War HeroClix action on. ... Uh, that's Marvel's Civil War, that is. There's no Sherman or Lee or Grant in this set (though, now that I think about it, that'd be pretty cool). WizKids has always been really good about having special prizes for their organized play kits for the new sets. This one's no different. This time around we get a look at Coldblood and Bullseye from that OP kit.
As you can expect from these two, they're all about ranged combat. Coldblood has his cybernetic eye, while Bullseye never misses (ok, unless you roll terribly, that is). So whether you're pro-registration or anti-registration, you can get yourself a figure to reach out and touch the enemy.


This gorgeous white calla lily wedding set includes themed accessories for the reception including a pair of toasting glasses, a guestbook with matching pen set, and a cake knife and server set. The 10" tall calla lily toasting glasses arrive in their own gift box as a set. The stainless steel cake knife and server set arrive in their own box as well. They feature resin handles with a calla lily design. The knife is 12.5" long while the server is 10.5" in length. The beautiful calla lily guest book measures 8" x 10" and finally, the pen and calla lily design stand measure about 8" tall.


text:
Ĉefministro de Vjetnamio
Wikipedia's Prime Minister of Vietnam as translated by GramTrans
La ĉi-suba teksto estas aŭtomata traduko de la artikolo Prime Minister of Vietnam article en la angla Vikipedio, farita per la sistemo GramTrans on 2017-12-29 21:20:43. Eventualaj ŝanĝoj en la angla originalo estos kaptitaj per regulaj retradukoj. Se vi volas enigi tiun artikolon en la originalan Esperanto-Vikipedion, vi povas uzi nian specialan redakt-interfacon. Rigardu la artikolon pri WikiTrans por trovi klarigojn pri kiel fari tion. Ankaŭ ekzistas speciala vortaro-interfaco por proponi aŭ kontroli terminojn.
Prime Minister of the Socialist Republic of Vietnam
Thủ tướng Chính phủ nước Cộng hòa Xã hội chủ nghĩa Việt Nam
Emblemo de Vjetnamio
ekde 7 aprilo 2016
Oficejo de la ĉefministro
(en internacia korespondado)
Nacia Asembleo de Vjetnamio
Centra Armea Komisiono
Centra Police partikomisiono
Raportoj al
National Assembly of Vietnam
renewable once
Inaugural holder
primeminister.chinhphu.vn
The Prime Minister of Vietnam (Vietnamese: Thủ tướng Việt Nam), officially styled Prime Minister of the Government of the Socialist Republic (Vietnamese: Thủ tướng Chính phủ nước Cộng hòa Xã hội chủ nghĩa), is the head of government of Vietnam who presides over the meetings of the Central Government (formerly the Council of Ministers). The prime minister directs the work of government members, and may propose deputy prime ministers to the National Assembly.
The head of government is responsible to the National Assembly and serves as the Deputy Chairman of the Council for Defence and Security. Moreover, prime minister is also Chairman of the Council for National Education, Standing Member of the Central Military Commission and the Central Police Party Committee. The tenure of a prime minister is five years, and the term is renewable once. The current prime minister Nguyễn Xuân Phúc has served since 2016. In case of incapacity, a deputy prime minister assumes the office of acting prime minister until the prime minister resumes duty, or until the appointment of a new prime minister.
The powers and prestige of the prime minister have varied through the years. Pham Van Dong, Vietnam's second prime minister, often lamented that in practice he had little power. Since the death of Pham Hung in 1988, the prime minister has been ranked 3rd in the order of precedence of the Communist Party's Politburo, the highest decision-making body in Vietnam.
2 Duties, powers and responsibilities
3 Living former prime ministers
Main article: List of Prime Ministers of Vietnam
Ho Chi Minh, who also served as the country's President, was appointed Vietnam's first prime minister in 1946 by the National Assembly, after having served months as Acting Chairman of the Provisional Government and foreign minister in the aftermath of the 1945 August Revolution.[1] Both the 1946 and 1959 Constitutions state that the National Assembly had the power to appoint and relieve the prime minister of his duties.[2] The prime minister presided over the Council of Ministers, the highest executive body of state, from 1981 until it was renamed to Government in the 1992 constitution. The office of prime minister was renamed in the 1980 constitution to that of Chairman of the Council of Ministers.[3]
Pham Van Dong, the second Prime Minister of Vietnam, served as North Vietnamese Prime Minister from 1955 until 1976, when he became prime minister of a unified Vietnam, and then until 1987, when he resigned. At his resignation, he was the longest-serving prime minister in Vietnamese history, and the oldest serving prime minister in the world. He often lamented that he was one of the world's weakest prime ministers, on one occasion saying; "I can do nothing. When I say something, nobody listens. If I propose changing a deputy minister, it turns out to be impossible. I cannot even choose my own ministers."[4] Since the death of Pham Hung in 1988, the prime minister has been ranked Number 3 in the order of precedence of the Communist Party's Politburo.[5]
Duties, powers and responsibilities
This article is part of a series on the
politics and government of
Marxism-Leninism
Central Propaganda Department
Central Theoretical Council
National Congress (12th)
Central Committee (12th)
General Secretary: Nguyễn Phú Trọng
Politburo (12th)
Executive Secretary: Đinh Thế Huynh
Central Military Commission
Secretary: Nguyễn Phú Trọng
Director: Nguyễn Văn Nên
Central Inspection Commission
Chairman: Trần Quốc Vượng
Chairwoman: Nguyễn Thị Kim Ngân
President (list)
Trần Đại Quang
Đặng Thị Ngọc Thịnh
Prime Minister (list):
Deputy Prime Ministers:
Vương Đình Huệ
Trương Hòa Bình
Phạm Bình Minh
Vũ Đức Đam
Trịnh Đình Dũng
Governor of the State Bank
Committee on Ethnic Minority Affairs
Fatherland Front
Central Committee
Chairman: Nguyễn Thiện Nhân
Gen. Secretary: Trần Thanh Mẫn
Ho Chi Minh Communist Youth Union
First Secretary
Lê Quốc Phong
Vietnam General Confederation of Labour
Viet Nam Farmer's Union
Vietnam Women's Union
People's Army
People's Public Security
People's Security
People's Police
Council for National Defense and Security
Chairman: President
Vice-chairman: Prime Minister
Justice Committee
Steering Committee of the Central Judicial Reform
Director: Trần Đại Quang
Supreme People's Court
Chief Justice: Nguyễn Hòa Bình
Supreme People's Procuracy
Procurator-General: Lê Minh Trí
The National Assembly by a proposal of the President of Vietnam elects the prime minister. The prime minister is responsible to the National Assembly, and the Assembly elects all ministers to government. Activity reports by the prime minister must be given to the National Assembly, while the Standing Committee of the National Assembly supervises the activities of the Central Government and the prime minister. Finally, the deputies of the National Assembly have the right to question the prime minister and other members of government.[6]
The prime minister is the only member of government who must be a member of the National Assembly. This is because the prime minister is accountable to the National Assembly, and he reports to it, or to its Standing Committee, and to the president. The prime minister issues directives and supervises the implementation of formal orders given by the president, the National Assembly or the Standing Committee.[7] Cabinet members and members of the Central Government in general are responsible to the prime minister and the National Assembly for the fields they specialise in.[8] According to the Constitution of Vietnam, the following are the duties, powers and responsibilities of the prime minister:[9]
To head the Central Government, and direct the works of members of the Central Government, the People's Councils at all levels and to chair the meetings of the Cabinet;[9]
To propose to the National Assembly that ministries, or organs with ministerial rank, be established or dissolved; to present to the National Assembly or, when the latter is not in session, to its Standing Committee, for approval, proposals on the appointment, release from duty, or dismissal of deputy prime ministers, cabinet ministers and other members of the Government;[9]
To appoint, release from duty, or dismiss deputy ministers and officials of equal rank; to approve the election, release from duty, secondment and dismissal of chairmen and deputy chairmen of People's Committees of provinces and cities under direct central rule;[9]
To suspend or annul decisions, directives and circulars of cabinet ministers and other Government members, decisions and directives of People's Councils and chairmen of People's Committees of provinces and cities under direct central rule that contravene the Constitution, the law, or other formal written documents of superior State organs;[9]
To suspend the execution of resolutions of People's Councils of provinces and cities under direct central rule that contravene the Constitution, the law, or the formal written orders of superior State organs; at the same time to propose to the Standing Committee of the National Assembly to annul them;[9]
To make regular reports to the people through the mass media on major issues to be settled by the Government.[9]
When the prime minister is absent, he must choose one of his deputy prime ministers to direct the work of the government.[10]
The prime minister serves concurrently as the secretary of the CPV Government Caucus Commission. The National Assembly chairman serves as the commission's deputy. Currently there are ten members of the Commission, all of whom hold government posts.[11] Commission members are appointed by the Politburo, and the Commission itself is responsible to the Politburo and the Secretariat. The decision-making process within the Commission is based on the principles of collective leadership.[12]
Living former prime ministers
Wikimedia Commons has media related to Prime Ministers of Vietnam.
Đỗ Mười,
served 1988-1991 (1917-02-02) February 2, 1917 (age 100)
Phan Văn Khải,
served 1997-2006 (1933-12-25) December 25, 1933 (age 84)
Nguyễn Tấn Dũng,
served 2006-2016 (1949-11-17) November 17, 1949 (age 68)
^ Staff writer. "CAC THU TUONG CHINH PHU TIEN NHIEM" [Former Prime Ministers] (in Vietnamese). Office of the Prime Minister. Retrieved 3 May 2012.
^ "Article 50 of the 1946/1959 Constitution of the Socialist Republic of Vietnam". the 1946/1959 Constitution of the Socialist Republic of Vietnam. Government of the Socialist Republic of Vietnam. |access-date=requires|url=(help)
^ This article incorporates public domain material from the Library of Congress document: Ronald J. Cima (December 1987). Ronald J. Cima, ed. "Vietnam: A country study". Federal Research Division. Constitutional Evolution.
^ Menétrey-Monchau 2006, p. 79.
^ Staff writer. "Ban chấp hanh Trung ương, Bo Chinh trị, Ban Bi thư" [Central Committee, Politburo, Secretariat] (in Vietnamese). Communist Party of Vietnam. pp. I-X. Retrieved 23 April 2012.
^ "Political system". Government of the Socialist Republic of Vietnam. Retrieved 20 April 2012.
^ "Article 115 of the Constitution of the Socialist Republic of Vietnam". the 1992 Constitution of the Socialist Republic of Vietnam. Government of the Socialist Republic of Vietnam. |access-date=requires|url=(help)
^ "Article 117 of the Constitution of the Socialist Republic of Vietnam". the 1992 of the Constitution of the Socialist Republic of Vietnam. Government of the Socialist Republic of Vietnam. |access-date=requires|url=(help)
^ a b c d e f g "Article 114 of the Constitution of the Socialist Republic of Vietnam". Article 114 of the Constitution of the Socialist Republic of Vietnam. Government of the Socialist Republic of Vietnam. |access-date=requires|url=(help)
^ "Article 110 of the Constitution of the Socialist Republic of Vietnam". Article 110 of the Constitution of the Socialist Republic of Vietnam. Government of the Socialist Republic of Vietnam. |access-date=requires|url=(help)
^ Staff writer (1 August 2006). "Ban Can su đang Chinh phu" [Government Caucus Commission of the Party] (in Vietnamese). Communist Party of Vietnam. Retrieved 8 May 2012.
^ Staff writer (3 April 2006). "Quyết định của Ban Bi thu so 48-QĐ/TW: Ve viec lap Ban Can sự đang o cac bo va co quan ngang bo, ngay 14 thang 12 nam 1992" [The decision of the Secretariat of 48-QD/TW: Commission for Elaboration of the party in government ministries and ministerial-level agencies, December 14, 1992] (in Vietnamese). Communist Party of Vietnam. Archived from the original on 12 September 2014. Retrieved 8 May 2012.
Menétrey-Monchau, Cécile (2006). American-Vietnamese relations in the Wake of War: Diplomacy after the Capture of Saigon, 1975-1979. McFarland. ISBN 9780786423989.
Vietnam articles
Early dynastic epoch
Chinese millennium
Late dynastic epoch
Republican period
North Central Coast (Bắc Trung Bộ)
Northeast ((Đông Bắc)
Southeast (Đông Nam Bộ)
South Central Coast (Nam Trung Bộ)
Northwest (Tây Bắc)
Central Highlands (Tây Nguyên)
History of central officeholders
National Congress
Executive and
Deputy Prime Ministers
Provincial Municipal Courts
Local Courts
Ground Force
Border Guard
Security forces (police)
Doi Moi ("Renovation")
Đồng (currency)
Jetstar Pacific
VietJet Air
Noi Bai
Tan Son Nhat
Vietnamese studies
Prime Ministers of Vietnam
Empire of Vietnam
Trần Trọng Kim
Republic of Cochinchina
Nguyễn Văn Thinh
Lê Văn Hoạch
Nguyễn Văn Xuân
Trần Văn Hữu
Provisional Central Government of Vietnam
State of Vietnam
Bảo Đại
Nguyễn Phan Long
Nguyễn Văn Tâm
Bửu Lộc
Phan Huy Quát
Ngô Đình Diệm
Republic of Vietnam
Nguyễn Ngọc Thơ2
Nguyễn Khánh2
Nguyễn Xuân Oánh1, 2
Trần Văn Hương2
Phan Huy Quát2
Nguyễn Cao Kỳ2
Nguyễn Văn Lộc
Trần Văn Hương
Trần Thiện Khiêm
Vũ Văn Mẫu
Democratic Republic of Vietnam
Republic of South Vietnam
Huỳnh Tấn Phát
Phạm Hùng
Võ Văn Kiệt1
Đỗ Mười
Võ Văn Kiệt
Phan Văn Khải
Nguyễn Tấn Dũng
1acting
2head of a military government
Leaders of present-day Southeast Asian countries
Brunei (Monarch)
Cambodia (Monarch)
East Timor (President)
Indonesia (President) (list)
Laos (President)
Malaysia (Monarch)
Myanmar (President) (list)
Philippines (President) (list)
Singapore (President)
Thailand (Monarch) (list)
Vietnam (President) (list)
Heads of government
Cambodia (list)
Indonesia (list)
Philippines (list)
Singapore (list)
Thailand (list)
Vietnam (list)
Defunct heads of state
and government
Burma (Monarch)
Dutch East Indies (Governor-General)
Indonesia (Prime Minister)
Laos (Monarch)
Myanmar (Prime Minister)
Philippines (Consorts) Philippines (Governor-General)
Philippines (Prime Minister)
Vietnam (Monarch)
South Vietnam (leaders)
Taiwan (Republic of China)


text:
Here be dragons: Analysis reveals new species in Smaug lizard group
Credit: Edward Stanley
GAINESVILLE, Fla. — Smaug, the deadly dragon in J.R.R Tolkien's "The Hobbit," has a few living relatives. With dense, alligator-like armor, these small, real-life dragon lizards are rock-crevice recluses mostly confined to mountaintops in southern Africa.
Now, herpetologists Michael Bates, a curator at South Africa's National Museum in Bloemfontein, and Edward Stanley of the Florida Museum of Natural History have discovered a ninth species of dragon lizard in the genus Smaug, previously mistaken for a similar-looking species, S. barbertonensis.
The new species, a heavily plated dark brown lizard with pale yellow bands, has been named Smaug swazicus, or the Swazi dragon lizard, in honor of the country of Eswatini, where most of the species' range is located. Up to 13 inches from snout to tail tip, S. swazicus is an unusually big lizard for the region.
"In terms of bulk and actual recorded total length, Smaug swazicus may be the largest southern African lizard species described since the western giant plated lizard, Matobosaurus maltzahni, 82 years ago," Bates said.
While species in the Smaug genus, also known as girdled lizards, may have scaled-down versions of their fearsome namesake's shield-like scales and sword-like teeth, they have gentle dispositions, Stanley said.
"They're just little tanks," said Stanley, who is also the director of the Florida Museum's Digital Discovery and Dissemination Laboratory. "They hide in rock cracks and put a lot of their energy and effort into simply being spiky and inedible, so they don't have to put up a big fight."
Stanley led a group of scientists that named the Smaug genus in 2011, and he has been instrumental in parsing out its species. "Smaug," he explained, comes from the German word "smugan," which means "to squeeze through a hole." These lizards are also found near South Africa's Drakensberg Mountains, Afrikaans for "dragon mountains."
While Africa has an enormous diversity of lizards, girdled lizards are the only family exclusive to mainland Africa and, because of their crevice-dwelling lifestyle, are often restricted to specific habitats. As a result, Stanley said more stringent conservation strategies may be needed for certain Smaug species.
"S. barbertonensis already had a relatively restricted range, but that's obviously before it was split in half when S. swazicus was discovered," Stanley said. "So, although barbertonensis wasn't of concern before, it now has a range of only around 200 square miles," an area less than the size of Chicago.
Tethered to high-elevation boulder-filled habitats, dragon lizards could already be feeling the effects of a warming climate, Stanley said. Securing rock crevices in which to hide could become challenging as dragon lizards creep to higher elevations in search of lower temperatures.
"These creatures are brilliantly evolved for their environment. If things aren't done to protect them, we could lose 20 million years of evolution in 50 years," he said. "The important thing is that you need to characterize and identify animals before you can protect them. You need to know what you have before you can make a plan to protect it."
But finding lizards in southern Africa can be daunting: Stanley and his fellow researchers had to dodge everything from mambas to undetonated explosives. When team members expanded their search to well-shaded boulders on a military base, they were accused of being gold prospectors, thieves and pet trade dealers.
"We had to spend all morning explaining, 'No, we're not here for any of that – we're really here just to try and find some lizards on your army base,'" Stanley said. "And in fact, because the range was so unpopulated, the lizards we found there were quite friendly. It was a weird experience having spent such a long time looking for them and then going into this sort of garden where they'd run on your lap and jump into your arms."
Stanley's next run-in with the new species wasn't deep in the South African escarpment. He said he recognized the species from his time at the American Museum of Natural History, where there was a jar of unidentified pet trade specimens from the early 1980s in the herpetology collection.
"That's the nice thing about museums, isn't it? It's not like these animals are sitting underground, never before seen. A lot of times they're just hiding in plain sight," he said.
To differentiate similar-looking species, Stanley and Bates relied on traditional approaches based on physical features, CT scanning and DNA analysis, a process he compared to sorting candy.
"Say you have different kinds of candies that you need to sort by type," Stanley said. "You start by visually sorting all your M&M's into one pile and your Mike and Ike's in another."
Then comes the DNA analysis – in other words, the taste test.
"So, you sample your candies, and you find that there are a proportion of M&M's you've sorted that are actually Skittles, and then you notice that instead of an 'M,' they actually have a tiny 'S' on them," Stanley said. "You can now pull these out and say, 'Oh, I actually have three candies.'"
The new species of dragon lizard can be compared to the Skittles, Stanley said – similar in appearance to S. barbertonensis, but with slight genetic differences that show it's more closely related to another species of dragon lizard, S. warreni. The analysis also allowed Stanley and Bates to parse minor physical differences that other researchers originally attributed to individual variation and helped explain why Bates's previous examination of museum specimens had revealed three distinct color patterns in dragon lizards.
Stanley said he can't rule out the possibility that more species in the group await discovery.
"Even now, in this well-worked group in these very populated countries of South Africa and Eswatini, that have had a lot of herpetologists working for hundreds of years, there are still some cool discoveries to be made," he said. "That's the biggest part of the story for me, is that there are some awesome animals out there just undescribed."
Natalie van Hoose
https://www.floridamuseum.ufl.edu/science/smaug-swazicus-new-dragon-lizard/
http://dx.doi.org/10.7717/peerj.8526
Tags: BiodiversityBiologyEvolutionGeneticsPopulation BiologyZoology/Veterinary Science


If yall like the post of Classy Flat Bed Cart Minimalist, remember to help this site to give it to your family on Twitter, Facebook, and Google Plus.
If you all like to understand a lot of articles related to Flat Bed Cart, yall could with ease click JH William Sent and do not forget to subscribe our site because we post articles relating to Flat Bed Cart every day.
The previous picture is Delicate Heavy Duty Folding Platform Hand Truck Foldable Flatbed Hand Dimensions Of Best Flat Bed Cart Pictures, and the next picture is Gorgeous Vestil – Flat Bed Cart Modern Of Best Flat Bed Cart Photos. You may save Elegant Gmx 661K – Flat Bed Cart Kit – Nefco Modern About Best Flat Bed Cart Images if you like.
Disclaimer: The picture of Elegant Gmx 661K – Flat Bed Cart Kit – Nefco Modern About Best Flat Bed Cart Images is not owned by http://jhwilliamsent.com, nor the author, Alvis Von.


text:
Q: Sending a JSON parameter to service I want to use rxjava and retrofit.
this is my retrofit builder:
Retrofit provideRetrofit(OkHttpClient okHttpClient) {
    return new Retrofit.Builder()
            .client(okHttpClient)
            .baseUrl(UrlManager.API_HOST)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build();
}

and okHttpClient:
public OkHttpClient client(HttpLoggingInterceptor loggingInterceptor, Cache cache) {
    return new OkHttpClient.Builder()
            .cache(cache)
            .addInterceptor(loggingInterceptor)
            .connectTimeout(10, TimeUnit.SECONDS)
            .build();
}

In my Login Activity I insert my user and password and when loginButton is clicked this method in called:
public DisposableObserver observeLoginButton() {
        return view.observeLoginBtn()
                .subscribeOn(AndroidSchedulers.mainThread())
                .doOnNext(new Consumer<Object>() {
                    @Override
                    public void accept(Object o) throws Exception {
                        view.loadButtonAnimation(); //load animation
                    }
                })
                .map(new Function<Object, String>() {
                    @Override
                    public String apply(Object o) throws Exception {
                        return view.getUserAndPassword(); // get userName and password as a string from edittext
                    }
                })
                .switchMap(new Function<String, Observable<String>>() {
                    @Override
                    public Observable<String> apply(String s) throws Exception {
                        String[] info = s.split(" "); // split user name and pass
                        return model.getLoginCookie(info[0],info[1]); // send userName and pass to model and call my service
                    }
                })
                .observeOn(Schedulers.io())
           .subscribeWith(view.observer());
    }

For test i have inserted myself login info to sending a service. this is my getLoginCookie method:
public Observable<String> getLoginCookie(String userName, String password) {
    Map<String, Object> obj = new ArrayMap<>();
    obj.put("username", "JuJzWgbsDJ0lUlFYVzoxWg");
    obj.put("password", "DD0vCYmzJuIPff9iKUpfQA");
    obj.put("customCredential", "6298f927-f98a-44eb-a312-780674a76245,Mobile89954324581380882887");
    obj.put("isPersistent", false);

    RequestBody body = RequestBody.create(
            MediaType.parse("application/json; charset=utf-8"),
            (new JSONObject(obj)).toString());
    return service.getAuthentication(body);
}

My service work as a json parametr.So in order to i have used RequestBody to convert my map to json. Then i have called my service :
@POST(UrlManager.AUTHENTICATION+"Login")
Observable<String> getAuthentication(@Body RequestBody params);

When i run my app and click on login button i got this:
D/Payesh: --> POST http://****/Authentication.svc/json/Login (183-byte body)
W/System.err: remove failed: ENOENT (No such file or directory) : /data/data/com.groot.payesh/cache/okhttp_cache/journal.tmp
D/Payesh: <-- HTTP FAILED: android.os.NetworkOnMainThreadException
I/----->: apply: null

1- Why I got android.os.NetworkOnMainThreadException ?
2- How could i trace that my parameter is correct is send to my web service and does connect is established or not? I have just got java.lang.NullPointerException: The supplied value is null on onError(Throwable e) in observer.

A:
Why I got android.os.NetworkOnMainThreadException ?

You are subscribing on AndroidSchedulers.mainThread() and observing on Schedulers.io(). That means you are doing network request on Main Thread. Switch Thread before network request by adding .observeOn(Schedulers.io()) before switchMap. And finally Observe On Main Thread if you are doing any view related task after finish.
        return view.observeLoginBtn()
            .subscribeOn(AndroidSchedulers.mainThread())
            .doOnNext(new Consumer<Object>() {
                @Override
                public void accept(Object o) throws Exception {
                    view.loadButtonAnimation(); //load animation
                }
            })
            .map(new Function<Object, String>() {
                @Override
                public String apply(Object o) throws Exception {
                    return view.getUserAndPassword(); // get userName and password as a string from edittext
                }
            })
            .observeOn(Schedulers.io())
            .switchMap(new Function<String, Observable<String>>() {
                @Override
                public Observable<String> apply(String s) throws Exception {
                    String[] info = s.split(" "); // split user name and pass
                    return model.getLoginCookie(info[0],info[1]); // send userName and pass to model and call my service
                }
            })
            .observeOn(AndroidSchedulers.mainThread())
       .subscribeWith(view.observer());

For
 remove failed: ENOENT (No such file or directory) : /data/data/com.groot.payesh/cache/okhttp_cache/journal.tmp

make sure hoy have successfully created FIle for cache.

How could i trace that my parameter is correct is send to my web
  service and does connect is established or not?

As you have  used HttpLoggingInterceptor this will print all info about your request like Header, Body, Response.

redpajama_set_name: RedPajamaStackExchange