text:
Q: Test class destructor for pointer being allocated? So I am having a problem with my code. I want to pass a value from my array of pointers to a function so the original object is not 'disturbed' (my code works perfectly fine if I pass the reference; I just am just trying to do it a different way as a learning exercise). After the implementation returns, I get an error:
"error for object 0x100105790: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug".
I know this is because as the value goes out of scope upon the function's return, the destructor is called for the object but my destructor assumes a pointer that was allocated, thus the error. I was curious if there was a way to test if the genome was already allocated or not. If not I would do something else for the destructor? Is this even a problem worth bothering about since I already have it working by passing in the reference? The function is not actually destructive; I just have a desire to do some tricks. I don't like taking the easy way out.
//class destructor for int genome[]
Organism::~Organism() {
    //cout << "Deleting this: " << this << endl;
    if (this->genome != NULL) {
         delete [] this->genome;
    }
}

//declare genome pointer
int *genome;
/**
 * Default constructor for class
 */
Organism::Organism() {
    this->fitness = 0;
    this->size = 0;
    this->genome = NULL;
}
//another constructor for if only the size of genome is defined
Organism::Organism(int size) {
    this->fitness = 0;
    this->size = size;
    this->genome = new int[size];
}
//another constructor for when all starting values are defined
Organism::Organism(int size, int *genome) {
    this->fitness = 0;
    this->size = size;
    this->genome = new int[size];

    for (int i = 0; i < size; i++) {
        this->genome[i] = genome[i];
    }
 }

//initialize and populate reproducible from already existing array start_pop     (this has been verified as being properly allocated and values initiated)
vector<Organism*> reproduceable (0);
    for (int i = 0; i < start_pop.size(); i++) {
        if (start_pop[i]->get_fitness() > threshold) {
            reproduceable.push_back(start_pop[i]);
        }
    }

//function definition
Organism* reproduce(Organism, Organism);

//function call in main()
offspring.push_back(reproduce(*reproduceable[i], *reproduceable[i+1]));

//function implementation
Organism* reproduce(Organism a, Organism b) {
    int genome[4];

    //randomly decide on where to split parent genomes
    int split = rand() % 5;
    for (int i = 0; i < a.get_size(); i++) {
        if (i < split) {
            genome[i] = a.get_genome()[i];
        } else {
            genome[i] = b.get_genome()[i];
        }
    }
    //now cause random mutation in 2% of the population
    if ((rand() % 100 + 1) <= 2) {
        int rand_index = rand() % 5;
        int mutation = rand() % 6 + 1;

        genome[rand_index] = mutation;
    }

    Organism *child = new Organism(4, genome); //need to add genome
    return child;
}

Edited to add default constructors and array initialization for reproducible

A: Your problem is in this line:
offspring.push_back(reproduce(*reproduceable[i], *reproduceable[i+1]));

Note that you pass two reproduceables by value into a function. The function's signature is
Organism* reproduce(Organism a, Organism b)

It expects two Organism's by value, which means that for both Organism's a copy constructor will be called. Since you do not define a copy constructor, a default one will be created, that just copies the content of one organism into another, including a pointer go the genome. The issue is that now both Organisms will be freed -- the one that's local to the function, and the one that was passed into it, resulting in double freeing the memory allocated for the genome. There are two ways to solve it:

*

*Make the signature to be

Organism* reproduce(const Organism &a, const Organism &b)

This way your Organism will not be copied, and thus will not be double freed. (based on your question I assume you already tried it, and are interested in the second solution :))

*Implement a custom copy constructor, that creates a new array, like so

Organism::Organism(const Organism& a)
{
     this->fitness = a.fitness;
     this->size = a.size;
     this->genome = new int[this->size];
     for (int i = 0; i < this->size; ++ i)
         this->genome[i] = a.genome[i];
}

This way as you pass an organism into your function, your custom copy constructor will be invoked, and the genome for the organism local to your function will be allocated separately.

A: Rule of three
If a class requires a user-defined destructor, a user-defined copy
constructor, or a user-defined copy assignment operator, it almost
certainly requires all three.
see http://en.cppreference.com/w/cpp/language/rule_of_three
Although a better approach would be rule of zero, i.e. you embrace value semantics.
For this program, it would be as simple as changing the genome member
from int* to  int[4], std::array<int,4> or std::vector<int>
(and remove the destructor)


Whichever color scheme and style you select, you will need the essentials items to harmonize your real wood corner tv stands. Once you've gotten the essentials, you will have to combine smaller ornamental furniture. Find art and candles for the walls or room is perfect concepts. You might also need one or more lamps to supply beautiful ambience in the home.
Before choosing any real wood corner tv stands, you should measure dimensions of the room. Figure out the place you have to place every single item of tv media furniture and the proper measurements for that room. Scale down your stuff and tv media furniture if the interior is narrow, pick real wood corner tv stands that fits.
If you are out getting real wood corner tv stands, even though it could be quick to be persuaded by a salesperson to buy anything aside of your current style. Thus, go shopping with a certain look in mind. You'll have the ability to simply straighten out what good and what doesn't, and produce narrowing down your alternatives not as difficult.
Load your interior in with extra furniture as room can add a great deal to a big interior, but also a number of these pieces can fill up a limited space. When you look for the real wood corner tv stands and begin getting large furniture, observe of several important conditions. Getting new tv media furniture is a fascinating potential that may entirely transform the look of your space.
Establish the design and style you'd like to have. It's will be good if you have an design style for the tv media furniture, such as contemporary or classic, stick with parts that fit together with your theme. You will find several ways to separate up interior to quite a few designs, but the main one is often include modern, contemporary, traditional and rustic.
After deciding the quantity of area you are able to spare for real wood corner tv stands and the place you would like potential parts to go, mark these areas on to the floor to get a good visual. Match your sections of furniture and each tv media furniture in your room should complement the rest. Usually, your space will appear disorderly and messy together.
Go for your tv media furniture theme and color scheme. Having a design style is very important when choosing new real wood corner tv stands that allows you to enjoy your perfect decor. You could also want to consider remodelling the color of current interior to complement your tastes.
Find out the correct way real wood corner tv stands will be put to use. This can help you determine furniture to buy along with what theme to decide. Determine what number people will be utilising the room mostly so that you can buy the proper sized.


text:
The Father's House
About TFH
TFH Worship
TFH App
Are you new TFH? Let us know! We want to meet you and help you find out what's next for you at TFH.
I Have Decided
Are you ready to go public with your faith and be baptized? Find out more about baptism and sign up here.
New Believers Class
Have you made a decision to follow Jesus within the last couple of months? We want to help you get started on your journey with Jesus.
How has God uniquely gifted you? Discover your life at The Father's House. Learn more about the local church and your role in it.
We believe your best life is lived in community! Don't do life alone. Find a small group of people just like you in your area.
Are you ready to start serving? Everyone has a place to serve at TFH! Sign up and help make a difference in people's lives.
Beit Abba
Common Care Counseling
School of Healing
What's a Tithe?
We Our City
Prison Church Network
TFH Kids
"Songs for Champions" was designed as a multi-sensory worship experience for all listeners. This album is comprised of songs produced multiple ways to help with sensory regulation, also known as the Iso-principle by professionals in music therapy. Each of the songs on the album are produced as "High Sensory", "Low Sensory", and "Instrumental" in order to cater to the needs of the listener. We pray that these songs will help the whole family enter into God's presence.
Programs available at every time and location
Nursery - 6mo - 2 yrs
Preschool - 3yrs - 5 yrs
Elementary - Kindergarten - 4th grade
Preteen - 5th & 6th grade
Champions club - For children with Special Needs
Tell us you're new so we can help. Turn your blinkers on when you pull into the parking lot. Our volunteers will direct you to the VIP parking area and direct you to the TFH Kids chek-in. One of our friendly staff will get you checked-in and answer any questions you may have.
Your family is important to us. On your first visit, we will need the following information: Parent/legal guardian names, children's names and birthdates, address, phone number and any special instructions (allergies, special needs) for each child. This information is to help maintain our secure check-in System.
Your child's safety is our top priority. All TFH Kids volunteers pass a background check. Each service has their own security team to ensure your child's safety. We use a security tag system for child check-in and pick-up and a paging system for parents/guardians in case we need to reach you during the service.
See what your child is learning in TFH Kids every week by downloading the free Parent Cue App.
We'd love to talk in person on the weekend, or you can email any time [email protected].
We'd love to have you on our team! Take the next step and complete the volunteer application online!
Office Hours and Contact Information
Vacaville:
Napa:
East Bay:
Roseville:
Find a TFH Group
Discover life at TFH
Year End Report
Careers at TFH
MyTFH Login
© The Father's House 2023 All Rights Reserved - Terms & Conditions
Enjoy the Website? Send Feedback

redpajama_set_name: RedPajamaCommonCrawl


text:
Atrauli è una suddivisione dell'India, classificata come municipal board, di 43.845 abitanti, situata nel distretto di Aligarh, nello stato federato dell'Uttar Pradesh. In base al numero di abitanti la città rientra nella classe III (da 20.000 a 49.999 persone).

Geografia fisica
La città è situata a 28° 03' 16 N e 78° 17' 15 E.

Società

Evoluzione demografica
Al censimento del 2001 la popolazione di Atrauli assommava a 43.845 persone, delle quali 23.215 maschi e 20.630 femmine. I bambini di età inferiore o uguale ai sei anni assommavano a 7.266, dei quali 3.798 maschi e 3.468 femmine. Infine, coloro che erano in grado di saper almeno leggere e scrivere erano 19.948, dei quali 12.307 maschi e 7.641 femmine.

Note

Centri abitati dell'Uttar Pradesh

redpajama_set_name: RedPajamaWikipedia


text:
Home » Lifestyle » Apple drops biggest hint yet that macOS 11 Big Sur is ready for release
Apple drops biggest hint yet that macOS 11 Big Sur is ready for release
We will use your email address only for sending you newsletters. Please see our Privacy Notice for details of your data protection rights.
When it revealed its latest update to macOS, Apple said it would launch "this fall" – a timeline that, given we've just entered November, is fast running out of runway. Thankfully, there's a hefty clue that Apple is getting very close to rolling out its new desktop operating system. Apple has started to roll out an early beta version of macOS Big Sur 11.0.1 to developers.
Given that macOS Big Sur 11.0.0 hasn't rolled out to Mac owners worldwide, it's a good sign that the former is all-but finished now that Apple seems to be turning its attention to macOS Big Sur 11.0.1. The latter likely includes some important fixes to help patch issues caused by the update. Apple employed a similar tactic with its iOS 14 update, rolling out iOS 14.0.0 on September 16, before pushing out a smaller update – iOS 14.0.1 – on October 20, 2020.
iOS 14.0.1 fixed a number of smaller bugs, and macOS 11.0.1 is likely to do the same.
It wouldn't be surprising to see some bugs crop-up in macOS 11 Big Sur as it's a substantial upgrade. Apple has reworked the design of the entire operating system, bringing in new elements from iOS and iPadOS – like the standardised rounded-square app icons, grouped notifications and redesigned widgets – as well as a number of new features specific to the desktop.
In terms of design, Apple has added a truckload of translucency across the operating system. Full-height sidebars have been added to application and Finder windows that allow colours from the windowed app, or desktop background, behind to subtly bleed through. The menu bar at the top of the screen is almost completely transparent in macOS Big Sur so that, according to Apple, "your content is always front and centre".
Apple could launch macOS 11 Big Sur soon, is your Mac compatible?
iPhone and iPad owners will be familiar with the Control Centre – a menu of frequently-used settings that can be accessed by swiping down from the top right-hand corner of their screen. With Big Sur, Apple has added the same feature to the Mac for the first time. Accessed by clicking on an icon in the menu bar, the drop-down includes controls you use most often, like Wi-Fi and Bluetooth toggles, as well as controls to play music and enable Dark Mode for your display. Unlike iOS, the new Control Centre on macOS lets you add controls and drag favourites to the menu bar to access even faster.
Big Sur includes a reworked Messages app with the ability to reply to individual messages in a thread, receive notifications when your name is mentioned in a group chat, react with Memoji, send GIFs and more. Maps has also been upgraded with much greater detail as well as cycling directions, which can be beamed to your iPhone before you set out on a journey.
Music has been redesigned to match the recent updates on iPhone and iPad, including a new Listen Now tab with artist interviews, new releases and updated playlists from the team of editors, to replace the For You section found in previous releases. Apple Photos gains an improved one-tap-and-you're-done Retouch tool powered by machine learning as well as new granular editing controls.
Apple says that work behind-the-scenes ensures that, once you're running macOS Big Sur, future operating system updates will be much faster. The iPhone maker states, "software updates begin in the background and finish faster than before – so it's easier than ever to keep your Mac up to date and secure."
There's no definitive release date for macOS Big Sur on the calendar right now. However, Jon Prosser, who hosts the immensely-popular Front Page Tech channel on YouTube, has sources who claim Apple has another Apple Event scheduled for November 17, 2020. Like its recent predecessors, this slickly-edited presentation from Apple CEO Tim Cook and fellow executives will be streamed online on the Apple website, YouTube channel, Apple TV channel, and iOS app.
With the main focus of this event set to be new Mac hardware powered by Apple's new custom-designed processors (which have been found in iPhones, iPads and AirPods for years, but will make the jump into MacBooks and iMac for the first time this year – replacing the industry-standard silicon from Intel), Apple watchers seem confident that this is when we'll find out the release date of macOS Big Sur.
That seems pretty plausible, not least because whatever new hardware is announced during the event, these machines will ship with macOS 11 Big Sur installed out of the box. So, it makes sense for the operating system to be available to download for the rest of us before these new laptops or desktop computers start to land on store shelves worldwide.
Elton John Calls Out 'Hypocrisy' of the Vatican for Refusing to Bless Gay Marriages
Miley Cyrus Was Either 'Chased Down' By UFO Or Had Too Much 'Weed Wax'
PEOPLE's Food Faves of 2020: Dwayne Johson, Tik Tok Chefs, Celebrity Roses & More!
Inside The Scary Car Accident That Nearly Took Jacques Pépins Life
Queen honours Lovehoney with an award for enterprise
Amazon's latest Prime Video warning could put you off your next TV or movie purchase
Quebec stabbing: Two killed and five seriously injured after knifeman 'in medieval costume' goes on rampage


Dressed up in a dazzling red suit, being his own super-energetic self and grooving to some foot-tapping music. Set up in a drowsy railway station, Ranveer Singh the brand ambassador of Colgate Maxfresh through this film personifies the product's character of being fresh and full of zest.
The film titled Taazgi Express with Ranveer Singh depicts how Singh through his dance moves and the freshness of Colgate Maxfresh changes the lethargic mood of the people around the station into absolute liveliness, pushing them to shake a leg with him.
Let's just say this is Ranveer Singh being himself! What are your thoughts on the campaign? Let us know in the comments below and to read about it in our reviews section let us know on team@socialsamosa.com.


text:
/*
 * AAMAS.java
 *
 * Created on November 18, 2004, 11:19 AM
 */

package com.seekerr.simulator.robot.experiments;

import java.io.BufferedWriter;
import java.io.FileWriter;

import com.seekerr.simulator.robot.env.Environment;
import com.seekerr.simulator.robot.env.Parameters;
import com.seekerr.simulator.robot.graphics.collision.Viewer;
import com.seekerr.simulator.robot.robot.KTRobot;
import com.seekerr.simulator.robot.robot.Robot;

/**
 *
 * @author  Wesley Kerr
 */
public class AvgSpeed {

    private String inputPath = ClassLoader.getSystemClassLoader().getResource("data/").getPath();
    private String outputPath = ClassLoader.getSystemClassLoader().getResource("log/").getPath();

    private float speed = 0.4f;
    private int obstaclePercentage;
    private int numCourses = 1;
    private int numRuns = 5;
    private long seed = 100;

    private StringBuffer speedOutput;

    private Parameters p;

    private Viewer v;

    /** Creates a new instance of AAMAS */
    public AvgSpeed(String controller) {
        p = new Parameters();
        p.robotType = "robot." + controller;
        p.n         = 25;
        p.sepRadius = 40;
        p.width     = 1000;
        p.height    = 5000;
        p.ncell_x   = 50;
        p.ncell_y   = 250;

        //v = new Viewer(p.width, p.height);
    }

    public void runExperiments(String controller) {
        speedOutput = new StringBuffer();

        for (int i = 0; i < 40; i+=10) {
            obstaclePercentage = i;

            for (int j = 0; j < numCourses; ++j) {
                if (i != 0) {
                    p.obstaclePath = inputPath + "course_" + i + "_" + j + ".txt";
                } else {
                    p.obstaclePath = null;
                }

                System.out.println(p.obstaclePath);
                long startTime = System.currentTimeMillis();
                for (int k = 0; k < numRuns; ++k) {
                    System.out.println("Course " + i + " Run " + j + " Seed " + seed);

                    p.seed = seed++;
                    if (controller.equals("KTRobot")) {
                        KTRobot.wall = speed;
                    }

                    String prefix = controller + " WallSpeed " + speed + " Pct " + i + " Course " + j + " Run " + k + " ";
                    runExperiment(prefix);
                }
                long endTime = System.currentTimeMillis();

                double runningTime = endTime - startTime;
                System.out.println("ExperimentTime " + (runningTime / (double) (numCourses*numRuns)));
                writeResults(controller, i);
            }
        }
    }

    private void runExperiment(String prefix) {
        Environment.inst().init(p);

        double totalAvg = 0.0;

        int t;
        for (t = 0; t < 150000; ++t) {
            Environment.inst().timeStep();
            if (!Environment.inst().continueGoing()) {
                break;
            }

            double count = 0;
            double avg   = 0;
            for (int i = 0; i < p.n; ++i) {
                Robot r = Environment.inst().getRobot(i);
                if (!r.isDone()) {
                    avg += r.getDistance();
                    count += 1;
                }
            }
            if (count > 0) {
                avg /= count;
                totalAvg += avg;
            }
        }

        totalAvg /= (double) t;
        speedOutput.append(prefix + " AvgSpeed " + totalAvg + "\n");
    }

    public void writeResults(String controller, int pct) {
        try {
            String prefix = outputPath + controller + "_" + pct;
            BufferedWriter out = new BufferedWriter(new FileWriter(prefix + ".txt"));
            out.write(speedOutput + "\n");
            out.close();
        } catch (Exception e) {
            System.out.println("ERROR - " + e.getMessage());
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        if (args.length != 1) {
            System.out.println("Usage AvgSpeed <controller>");
            System.exit(0);
        }

        String controller = args[0];

        AvgSpeed a = new AvgSpeed(controller);
        a.runExperiments(controller);
        //a.writeResults(controller);

    }
}

redpajama_set_name: RedPajamaGithub


text:
Germán Villalobos Joins Yaskawa Mexico as General Manager
Visit http://www.motoman.com for further information
Germán Villalobos will be responsible for the robotics company's strategic direction and sales growth in Mexico.
05/18/16, 06:57 AM | Industrial Robotics
Dayton, OH (May 2016) — Yaskawa Motoman is pleased to announce that Germán Villalobos has joined the company as General Manager of Yaskawa Mexico. In this position, he will be responsible for the companys strategic direction and sales growth in Mexico. He will also be responsible for the operation of Yaskawas three facilities located in Mexico (Aguascalientes, Apodaca and Queretaro).
Villalobos brings nearly two decades of experience in industrial robotics to Yaskawa Motoman. Most recently, Villalobos was the Head of Robotics for Comau (Mexico City, Mexico) and oversaw sales, marketing and other operations. Comau is the worldwide leader in manufacturing flexible, automatic systems and integrating products, processes and services that increase efficiency while lowering overall costs. Prior to that, he held leadership positions with other automation companies, including Kuka and Nordson.
"Germán brings strong leadership and solid experience in developing and implementing successful strategies for growth," stated Doug Schenher, Corporate Vice President of Yaskawa Motoman. "His vision and customer focus will help to strengthen our efforts in Mexico."
Villalobos earned his Master of Business Administration (MBA) from the EGADE Business School (Monterrey, Mexico) in 2009. Villalobos also holds a Bachelor of Science (BS) degree in Industrial Robotics Engineering from the Instituto Politécnico Nacional (IPN).
About Yaskawa Motoman
Founded in 1989, the Motoman Robotics Division of Yaskawa America, Inc. is a leading robotics company in the Americas. With over 300,000 Motoman® robots installed globally, Yaskawa provides automation products and solutions for virtually every industry and robotic application; including arc welding, assembly, coating, dispensing, material handling, material cutting, material removal, packaging, palletizing and spot welding. For more information please visit www.motoman.com or call 937.847.6200.
Yaskawa Mexico S.A de C.V. is a subsidiary of Yaskawa America, Inc., Motoman Robotics Division with locations in Aguascalientes, Ags., Apodaca, N.L. and Queretaro.
Novotechnik - Vert-X 05E Series of dual angle/speed sensors
Vert-X 05E Series of dual angle/speed sensors. The series features easy mounting in small and narrow spaces with a 5 mm body depth and mounting flanges with metal inserts. The sensors make measurements only 6 mm from edge of product for close-to-wall measurement applications. Vert-X 05E Series sensors measure angles from 0 to 360°, rotational speed and direction with repeatability to 0.1°.


text:
Posted on September 12, 2016 by Jonathan M.
In recent years, Ukraine has often been mentioned in the same breath as Syria, Iraq, or Afghanistan. Unfortunately, it has joined the list of countries ravaged by civil war or internal conflict. After years of social turmoil and even revolution throughout the 1990s and 2000s, Ukraine looked, to outsiders at least, to be heading down the right path. In 2012, in collaboration with Poland, Ukraine hosted the finals of the UEFA European Football Championships. Tens of millions were spent on developing Ukraine's sporting and transport infrastructure.
However, since 2012, Ukraine has made global headlines for all the wrong reasons. Violent protests, separatist insurgencies, and foreign invasion have made Ukraine a country where political and social stability seem to be things of the past. This article will discuss the reasons why Ukraine has struggled to maintain a stable political environment following its independence in the early 1990s. History, geography and demography all help explain just how Ukraine came to find itself in this precarious situation. I will examine these factors as well as considering why Ukraine is such an important country when discussing contemporary Russia and its geopolitical ambitions.
Flag of Ukraine, courtesy of Wikimedia Commons.
Population – 42,539,010
Size – 603,500 sq km (including Crimea)
Capital – Kiev
Official Language – Ukrainian
AKA – Україна
Location of Ukraine, with the disputed region of Crimea highlighted in a lighter shade of green. Courtesy of Wikimedia Commons.
Ukraine is a deceptively large country. Discounting Russia, Ukraine is the second largest European country by landmass. Stretched along the northern coast of the Black Sea in Eastern Europe, Ukraine mostly consists of fertile plains and plateaus. The only mountains of note are the Carpathian mountains in the west, which create a natural barrier between Ukraine, Hungary and Romania.
In the north and east, there are no such natural barriers. These plains stretch from central Ukraine all the way to Russia, Belarus and even Kazakhstan. Historically, these flat lands have been home to many different peoples and tribes. Nomadic groups such as the Huns, Tartars, Turks and Mongols all passed through what is now Ukraine on their way to Europe. A lack of natural barriers in the east has made Ukraine a relatively easy target for invasion and subjugation. This only changed when Ukraine was incorporated into what became the Russian Empire, and subsequently the Soviet Union. This altered Ukraine's position as a peripheral land on the edge of Europe, elevating it to an integral part of a continent-spanning state.
Eurasian Steppe, stretching from from Ukraine into Central Asia. Courtesy of Wikimedia Commons.
The largest river in Ukraine is the Dnieper, which passes from Russia into Belarus, and then into Ukraine and its capital city, Kiev. From there, the Dnieper makes it way south into the Black Sea. The plains of Ukraine are well watered with many rivers beginning in the Carpathian mountains. This, together with rich and fertile soil, makes Ukraine one of the most fertile regions in the world. During the days of the Soviet Union, Ukraine acted as a breadbasket for much of the communist world. Even today, it remains one of the world's largest producers of grain.
Modern Ukraine became an independent country with the end of the Soviet Union. At that moment, Ukraine's many geographical resources were divorced from Moscow's direct sphere of influence. Whether it be as part of the Russian Empire or the Soviet Union, Ukraine had almost always been an absolutely vital geographic resource in Eastern Europe.
Since the early 1990s, Russia has attempted to retain a degree of influence and control over its smaller neighbour, with varying degrees of success. This shared history with Russia has played a large factor in the development of the current crisis and conflict in Ukraine.
The Ukrainian people are members of the East Slavic ethnic group, and are close relations of the Belarusian and Russian peoples. For a long time, the city of Kiev was a centre of East Slavic culture; it was in the lands surrounding Kiev that a Ukrainian identity was first formed. However, for centuries Ukraine was a part of the Russian Empire, which was centred around Moscow and Saint Petersburg, and Ukrainians themselves were often referred to as Little Russians. The first real opportunity for independence came in 1917 following the October Revolution in Russia. But following a four-year war of independence, Ukraine was ultimately defeated and its government sent into exile.
Ukrainian is the state language, and is closely related to the Russian and Belarusian languages. However, Russian is also widely spoken as a second language, and is often the dominant language in the southern and eastern regions of the country. This is largely a legacy of the Imperial and Soviet rule of the country, where Russian was the language of government and many ethnic Russians settled in Ukraine. The role of the Russian language in Ukrainian society is a controversial issue. Many Ukrainian nationalists say that the Russian language has no place in an independent Ukraine. However, those ethnic Russians (as well as Ukrainians) who speak Russian as their mother tongue believe that the Russian language should have some form of legal status and protection.
Language map of Ukraine, 2001 census. Courtesy of Wikimedia Commons.
Like many other parts of the former Soviet Union, Ukraine entered a demographic crisis shortly after the collapse of the communist state. Between the late 1980s and the early 2000s, birth-rates plummeted by nearly 50%, and the death-rate climbed significantly. Unsurprisingly, this has led to a decline in the total population of Ukraine. In 1993, the population peaked at around 52 million, but since then has declined to 42 million. However, this figure excludes the recently annexed region of Crimea. Including Crimea, the population of Ukraine in 2016 is roughly 45 million. This is still a very large decline for just over two decades.
Population of Ukraine, courtesy of Wikimedia Commons.
The decline of the Ukrainian population is and will continue to be a massive challenge for the Ukrainian government. In addition to low-birth rates, there is the issue of brain drain to contend with, as many people look toward other opportunities in Europe. This issue has been exacerbated since the revolution of 2014 and the violence that has continued since then.
Since 2014, Ukraine has made headlines around the world, but usually headlines pertaining to revolution, violence, and economic turmoil. To fully understand the events that began in Kiev in late 2013, one must first consider the roles that Russia and the European Union (EU) have played in Ukraine since the end of the Soviet Union.
Despite Ukraine declaring independence in 1991, Russian influence in the Ukrainian economy and politics remained an issue. To Russia, this seemed a perfectly logical arrangement. For centuries, Ukraine had been an integral part of Russia, so retaining a degree of influence over their smaller neighbour would appear to make geopolitical sense. In the 2000s, some Ukrainian politicians, including former President Yushchenko, attempted to steer Ukraine away from the influence of Moscow, but by 2013, the Presidential Office was occupied by Viktor Yanukovych, who developed friendlier ties with Russia during his term.
In the same year, Ukraine found itself pulled in two separate directions. On one side was the EU, and on the other, Russia. In March 2012, Ukraine and the EU initiated negotiations regarding an agreement between them, known as the Ukraine – European Union Association Agreement. This treaty was designed to set a timeline for closer relations between Ukraine and the rest of the EU. The focus was on two areas: security arrangements and free trade. Ukraine would gain access to the EU market and security apparatus in exchange for internal socio-political and economic reforms. It seemed like a good deal to everyone, except for Russia.
At the time, Russia was Ukraine's largest trading partner, and saw this agreement as a threat to its political and economic influence in Ukraine. Throughout 2013, Russia pressured Ukraine to abandon the agreement. Ukrainian President Yanukovych found himself in a difficult position; he did not wish to undermine his relationship with Moscow, and he did not want to go through with all of the political reforms that the EU had demanded. Yet he knew how much Ukraine could benefit from closer economic integration with the rest of Europe.
In November 2013, the Ukrainian government decided to suspend talks with the EU over the association agreement. Shortly thereafter Ukraine announced a new economic deal with Moscow, which included a cheaper supply of Russian natural gas and closer ties with Russian-backed CIS Free Trade Area. The government in Kiev had, for whatever reason, decided relations with Russia must come before the EU. This decision likely came as a result of direct pressure of Moscow.
2014 Euromaidan pro-EU protests in Kiev. Courtesy of Wikimedia Commons.
As soon as talks between the EU and Ukraine were suspended, pro-EU and anti-Russian protests took place in opposition to this decision. As 2013 became 2014, these protests intensified and became known as Euromaidan (literally 'Euro Square'). By February, the level of violence increased and both police and protesters fired live ammunition on the streets of Kiev. In just a few days, more than 100 people were killed in Kiev alone, mostly civilians. Before the end of February, President Yanukovych fled the country and the government offices were occupied by protesters. The Ukrainian political system had collapsed. A new interim government was formed shortly after this, made up of pro-western politicians and officials, and many political prisoners were released. It seemed as though Ukraine had turned a corner.
Vladimir Putin kept a close eye on Ukraine's 2014 revolution. He and the rest of the Russian government likely failed to foresee the amount of backlash the decision to move away from the EU would cause. Despite the revolution causing significant problems for Russia, it also presented some opportunities.
While the protests that led to the revolution in Kiev were largely united in their anti-Russian and pro-EU sentiment, the same cannot be said for the rest of the country. Certain regions of Ukraine, such as Crimea in the south and the eastern regions bordering Russia, did not see the same levels of unrest following the decision to suspend talks with the EU. In fact, some welcomed closer ties with Russia. A quick look at the above linguistic map of Ukraine helps to explain this difference in opinion. The central and western regions of Ukraine are home to people that overwhelmingly speak Ukrainian as their mother tongue. However, the same is not true in many parts of the east and south, where Russian is widely spoken, and where a large percentage of the population identifies as ethnically Russian.
Map of 2014 pro-Russian unrest in Ukraine. Courtesy of Wikimedia Commons.
As the west largely cheered on the revolutionary movement in Kiev, Putin saw the divide within the Ukrainian population, as well as the disarray the Ukrainian government and armed forces found themselves in. Moscow would not allow to Ukraine to walk away from them without consequences. On February 27th masked Russian troops and separatists took over the Supreme Council of Crimea and captured strategic sites across Crimea. This then led to the installation of a pro-Russian government and the declaration of Crimea's independence. Within two weeks, a referendum was held in Crimea where a vast majority of the population voted in favour of leaving Ukraine and joining Russia. With barely a shot fired, Russia had annexed 27,000 sq km (10,425 sq mi) of Ukrainian territory.
The EU, the United States and NATO condemned this annexation, but were powerless to stop it. Ukraine was not part of the European Union or NATO, so Ukraine could neither look to military allies for support nor invoke any kind of mutual defence pact. Furthermore, a crisis was also developing in the eastern oblasts of Donetsk and Luhansk. In these regions, following the revolution in Kiev, pro-Russian protests had broken out. One month after the annexation of Crimea, these same protesters seized control of local government buildings and demanded a referendum similar to Crimea's. They also demanded amnesty for all protesters and that Russian be declared an official language within Ukraine. If these demands failed to be met, insurgency against the new government and their security forces was threatened by these pro-Russian groups. The new government in Kiev ignored these demands and launched an 'anti-terror' operation against Luhansk and Donetsk. Fighting soon broke out, and has continued since.
To date, it is estimated that over 12,000 people have been killed in the fighting, including 2000 civilians. As a consequence of the violence, nearly one million Ukrainians have fled abroad, mostly to neighbouring Russia and Poland. It is widely believed that the separatist forces have been supplied by Russia and have many Russian volunteers fighting alongside them. As these regions directly border Russia, and there is little in the way of a geographical barrier between Russia and Ukraine, it is a relatively simple matter for Moscow to supply and support these fighters.
As a consequence of the intervention in Crimea and the subsequent violence in the east, the new Ukrainian government sees Russia as an enemy rather than a partner. The relationship between the two has been irreversibly damaged. Amidst all the chaos and confusion, the question must be asked: Why did Vladimir Putin decide to take this course of action?
For Putin, this was a geopolitical manoeuvre. Geographically, Russia has nearly always found itself in a tough position with little in terms of natural defences or decent ports. Since the late-eighteenth century, Crimea has been a vital part of the Russian naval strategy. The port city of Sevastopol provided the Russian Empire and the Soviet Union with a warm water port and direct access to the Black Sea. Since the dissolution of the Soviet Union, the Russian navy has maintained a presence in Sevastopol under an agreement with the Ukrainian government. Since the Ukrainian revolution rode in on a wave of anti-Russian sentiment, Putin and his government must have been concerned about the stability of Russian access to this critical port. Furthermore, Crimea was traditionally under Russian rule, and was only transferred to Ukraine in the 1950s, when the two countries were joined under the collective banner of the Soviet Union. The decision to annex Crimea was well received by the Russian population, and seen as a justified move. Putin's popularity soared in the months following the annexation, despite the international community imposing economic sanctions on Russia.
While the decision to annex Crimea can be viewed as a piece of geopolitical opportunism, the supporting of separatist fighters in the eastern regions of Ukraine is a more long-term bet. Despite this decision pushing Ukraine away from Russia, it also ensures that Ukraine will be unable to join the EU or NATO any time soon. Neither will want to allow a country currently engaged in military conflict join them as a partner or ally. One has to assume that even if the EU suggested that Ukraine become a member, violence in the east would soon flare up. While Ukraine's resources – including its fertile soil, deposits of coal and iron ore, and geopolitical location – cannot now be fully exploited by Russia, Putin has ensured that status of these resources will remain ambiguous. Western investors will be wary so long as fighting continues in the east, and politically speaking, Ukraine will remain a sensitive subject. Furthermore, Putin had repeatedly expressed concerns over the expansion of NATO in Eastern Europe and the Baltic states, and through his actions in Ukraine he has most likely halted further expansion towards the borders of Russia.
The economic sanctions imposed on Russia as a response to its meddling in Ukraine have taken a significant toll on the Russian economy. However, Putin remains relatively popular, and his geopolitical goal of ensuring that Ukraine does not join the European Union or NATO has been successful. Overall, one might suggest that Putin has sacrificed his short term economic security for long-term geopolitical gain. It may take years or decades for us to truly understand the long term consequences of these decisions.
The situation in Ukraine is not a unique one. In many ways, it mirrors several other conflicts which developed following the breakup of the Soviet Union. The breakaway region of Transnistria, the conflict between Armenia and Azerbaijan over the Nagorno-Karabakh region, and the separatist regions of Georgia all reflect the same issues that emerged when the Soviet Union lost power and influence over these areas.
The fact that Putin's actions in Ukraine surprised so many observers is especially interesting when considering what took place in Georgia less than a decade ago. In 2008, Russian forces directly supported the breakaway region of South Ossetia in its efforts to establish its autonomy. This conflict arose after the then President of Georgia expressed a desire to join NATO. Similarities between the Georgian conflict and the current crisis in Ukraine cannot be overlooked. It is clear that Russia attempts to use these disputes to exert influence and control over the former Soviet republics.
Nevertheless, Ukraine finds itself in a precarious situation; finding a solution won't be easy. The government in Kiev must surely be seeking closer ties with Europe, NATO and the United States in order to ensure its own security and economic stability. But with that in mind, Ukraine must not overlook the influence Russia has over the situation. If Kiev takes a step too far towards European integration or NATO, Russia may decide to increase tensions in the east and/or Crimea. It is a balancing act between the different parties involved.
Russia will likely seek to maintain the status-quo for the time being, with Moscow making efforts to limit the effects of economic sanctions, while also hoping to negotiate an end to them. If Russia can convince the international community to recognize its sovereignty over Crimea in a fashion that will resolve its economic woes, it may accept a compromise regarding the breakaway regions in the east. Still, the Ukrainian crisis has taught us that Vladimir Putin is anything but predictable.
Beyond foreign policy, Ukraine must also aim to stabilise its demographic crisis. A declining population and brain drain will severely hamper efforts to improve Ukraine's economic prospects. Reforming the political system and limiting the power of the oligarchs within the economy must be a target of any Ukrainian administration. This will prove a major challenge going forward, with many politicians still having vested interests in the Ukrainian economy.
Surrounding Ukraine are many players, all of whom have their own aims regarding the future of the country. Presently, the Ukrainian government and its people are being pulled in many directions. Let's hope that in the near future, Ukraine's considerable resources will cease to be a source of international conflict and begin benefitting the country's citizens more directly.
Source for statistics and figures: CIA World Factbook
This article was proofread and edited by my good friend Miles Raymer. Please check out his fantastic blog at http://www.words-and-dirt.com/ and his goodreads profile at http://www.goodreads.com/user/show/7208369-miles
Posted in Current Events, ProfileTagged 2014 revolution, civil war, crimea, crisis, eu, euromaidan, geopolitics, nato, putin, russia, ukraine, war in donbass


Description: Level: Product distribution & supply chain management engineers, industrial RFID (Radio Frequency Identification) and Smart Label Printing and Marking engineering system designers, warehouse operations managers, quality control engineers, manufacturing systems engineers, visual factory designers, students & faculty, interested in RFID product labeling machines, methods and technologies. Also excellent for undergraduate / graduate education and research.
Industrial Sponsors/ Contributors include with special thanks to Ed Vileikis, Label Printing Systems Supervisor, Weber Labeling & Coding Solutions, Arlington Heights, Illinois, USA, Randall J. Stake, Manager, Weber Labeling & Coding Solutions, Marketing Communications, USA, CIMware Ltd. UK, CIMware USA, Inc., and others.
System Requirements: DVD-ROM: NTSC standard definition (SD) DVD video player for TV, or computer. Approximate length 12 minutes, in 16:9 widescreen format, also playable on a 4:3 regular screen, or any good computer screen (800 x 600 resolution, or better). Furthermore available in PAL DVD video, in streamed digital, and Apple Video iPod formats. The HD (high-definition NTSC and PAL) formats are also available as soon as the HD DVD standard is finalized and players are available. Please visit on the web www.cimwareukandusa.com for available formats, and further relating titles & available.


Invitation for International Tenders for Re-Powering Project of Ghorasal 3rd Unit.
Tender Document for Repowering Project of Ghorasal 3rd Unit ( Volume 1).
Tender Document for Repowering Project of Ghorasal 3rd Unit ( Volume 2A).
Tender Document for Repowering Project of Ghorasal 3rd Unit ( Volume 2B).
Time Extension Notice for submission of Tender for Re-Powering project of Ghorasal 3rd Unit.
Clarifications & Addendum No. 01 on the Tender Documents for Re-Powering Project of Ghorasal 3r Unit.
2nd Time Extension Notice for submission of Tender for Re-Powering Project of Ghorasal 3rd Unit.
3rd Time Extension Notice for submission of Tender for Re-Powering Project of Ghorasal 3rd Unit.
Clarifications & Addendum No. 02 on the Tender Documents for Re-Powering Project of Ghorasal 3r Unit.
Clarifications & Addendum no. 03 on the Tender Documents for Re-Powering Project of Ghorasal 3rd Unit.
4th Time Extension Notice for submission of Tender for Re-Powering Project of Ghorasal 3rd Unit.
Request for Expression of Interest(EOI) for Rendering Consultancy Services as Owner's Engineer for Repowering Project of Ghorashal 3rd unit.


Expirat is one of Bucharest's most loved clubs and a symbol for urban culture. The club has been around since 2002 and decided they needed an image upgrade. We designed the new logotype using a hand drawn calligraphic style to suggest the link with the underground scene from which it emerged.
Video Credits: Production Umbra Studio, Post-production Hamac Studio.


All about Vampire Bats Alphabet for your smartphone, your iPhone or any phone.vampire bats alphabet letters gif. Free vampire bats letters and animated alphabets. Download animated vampire bats letters.
Animated gifs and animations of Vampire Bats Alphabet to share on social networks, download or send to other phones for Whatsapp, Line or Skype.


text:
View 0 Listings
It's a familiar story; a working class neighborhood experiences an influx of investment, bohemian coffee shops open, public opinion on street art shifts from graffiti to social commentary and, finally, a high end grocery store opens in an industrial looking building. Yes, Fishtown is experiencing symptoms of gentrification. However, this is a self aware process. The city of Philadelphia, along with community development organizations, take steps such as subsidizing new housing to ensure that residents aren't pushed out of this unique neighborhood. Additionally, Philadelphia is no stranger to the 'G' word. Consider the positive transformations of Fairmont, Somerton, Manayunk and Mount Airy. Perhaps gentrification, with its negative connotations, is the wrong word to describe the process taking place in this historic and proud neighborhood. Rather, what's going down in Fishtown is a renaissance–a process of looking forward while valuing the past.
No one has described what's going on in Fishtown better than John Oates. A music venue, the Fillmore recently opened. The opening act? Hall and Oates. The night of the performance, Oates commented, "It's a first tonight for you; it's a first tonight for us. Here in Fishtown — how about that? I used to be scared to come up here." Yes, Fishtown has a past that includes some nitty and gritty–but nitty gritty-ness is what drew people here in the first place. North of the relatively exorbitant Center City, east of collegiate oriented Temple and bordering the Delaware river is Fishtown. Fishtown has a history that predates European colonization. Once home to the Lenni Lenape Native American tribe, the neighborhood developed around the influx of German, Irish and Polish immigrants. The neighborhood served as a commercial fishing hub and center for industry. Even as industrial jobs left, long time residents found new jobs and ways to make ends meet. Bohemian types, musicians, culinary artists have been moving into the neighborhood for years for its relatively affordable housing and old-school city feel.
There are several green spaces/community gardens in Fishtown. The largest and most scenic park is Penn Treaty Park. It has large green spaces dotted with old sycamore, willow and elm trees. It includes a bank of the Delaware river and views of Center City and the Benjamin Franklin Bridge. The space is where William Penn famously signed a peace treaty with a sect of Lenni Lenape in 1683.
Transportation is easy in Fishtown. Hop on the "L" (SEPTA's Market Frankford elevated train) and get to Center City in 20 minutes. Or, for a more nostalgic approach, take the Girard Avenue trolley. Once a horse-car line, the trolley line dates back to 1895.
Due to the combination of new construction, older homes and renovated older homes there is a plethora of choice when purchasing real estate in Fishtown. Renovated homes are very popular and relatively affordable when compared to prices in higher income neighborhoods. With plenty of choice it's easy to find the right home relatively quickly.
Price Ranges Fishtown
Fishtown, Philadelphia
Get notified when a new Fishtown listing comes up
Bodine William W High School
Adaire Alexander School
St Peter The Apostle School
Lasalle Academy
Penn Treaty Middle School
General Philip Kearny
Moffet John School
Walter D Palmer Leadership Learning Partnership Cs
Level: PK-12
Al Aqsa Islamic Academy
Young Scholars Cs
Other Areas in Philadelphia
Art Museum Area
Graduate Hospital
Naval Square
Fitler Square


text:
Estoloderces luederwaldti is a species of beetle in the family Cerambycidae, and the only species in the genus Estoloderces. It was described by Melzer in 1928.

References

Pogonocherini
Beetles described in 1928


Eggciting news from Goldsworthy Class!
Goldsworthy Class received duck eggs on Monday and celebrated the very next day as two had hatched out!
By Wednesday they had five cute ducklings and another two on the way!
They have had lots of cuddles from all the children and staff and had a 'quacking time' when they had their first experience of water!


text:
2021 Volkswagen ID.4 revealed: Electric range, design, price, photos
After a long march toward electrification, Volkswagen finally revealed the 2021 ID.4 crossover, the first long-range EV from the brand. Taking a page from the ID.3 hatchback, the VW ID.4 rides atop the company's MEB platform and arrives to do battle with the Hyundai Kona EV, Nissan Leaf e+ and Kia Niro EV in the electric crossover segment. Launching in the first quarter of 2021, it can't get here soon enough.
This isn't the first EV x VW effort as the e-Golf gave the world a glimpse at Volkswagen's all-electric aspirations, but it only offered a 125-mile range. The ID.4, on the other hand, promises up to 250 miles per charge, as well as available all-wheel drive (each of the aforementioned EV rivals are front-drive only).
EV Range: Big Battery, Middling Distance
The 2021 ID.4 will come standard with an 82-kilowatt-hour battery, outstripping the Niro EV and Kona EV (64 kWh), Mustang Mach-E (75.7 kWh), and not-a-crossover Nissan Leaf e+ (62 kWh). However, the much larger battery pack doesn't come with a longer estimated range. According to Volkswagen, the ID.4 will travel 250 miles before needing a charge, behind the Kona's 258 miles – though still ahead of the Niro's 239 miles, the base Mach-E's 230 miles, and the Leaf's 239 miles.
A rear-mounted electric motor producing 201 bhp (150 kilowatts) and 228 pound-feet (309 newton-metres) is competitive in this class of crossover EV, producing identical power to the Kona and Niro, but much less torque (the Korean cousins offer 291 lb-ft or 395 Nm).
The overtly sporty Mustang outdoes the Niro as well, boasting 255 bhp (190 kW) and 306 lb-ft (415 Nm). Even the Nissan Leaf outdoes the ID.4, at 214 bhp (160 kW) and 250 lb-ft (339 Nm). It asks the question: Where does the ID.4's larger battery capacity end up, if not overall EV range or outright power?
Volkswagen ID.4 Ford Mustang Mach-E Hyundai Kona EV Kia Niro EV Nissan Leaf e+
Battery Capacity 82 kWh 75.7 kWh 64 kWh 64 kWh 62 kWh
Range 250 miles 230 miles 258 miles 239 miles 239 miles
Base Power 201 bhp (150 kW) 255 bhp (190 kW) 201 bhp (150 kW) 201 bhp (150 kW) 214 bhp (160 kW)
Base Torque 228 lb-ft (309 Nm) 306 lb-ft (415 Nm) 291 lb-ft (395 Nm) 291 lb-ft (395 Nm) 250 lb-ft (339 Nm)
All that said, the ID.4 should leave those front-drive competitors gasping once the its available two-motor setup arrives on the market a few months after the single-motor model. Adding a front-mounted electric motor enables EV all-wheel drive and boosts power to a stout 302 bhp (225 kW) – torque is still unconfirmed, but we'd bet on at least 325 lb-ft (441 Nm). It's not clear if all-wheel drive will reduce overall range, but if Volkswagen can counteract the added weight of the additional motor with more efficient power delivery, it might be an even deal.
No European charging programme has been announced yet. However, in the US ID.4 shoppers will be offered three years of unlimited charging at Electrify America stations nationwide. Volkswagen announced the program just a few days before debuting the ID.4, giving original owners or lessees of the car a nearly zero-cost way to juice up. Electrify America will still charge idle fees if the VW isn't disconnected within 10 minutes of finishing charging, and the benefit doesn't extend to commercial customers, including rideshare operators. Still, for the average consumer, three years of free charging are a compelling perk.
Exterior: Smiles And Style
Winning further points for the 2021 Volkswagen ID.4 is its smart, attractive styling. With friendly and approachable curves that bely the rest of VW's somewhat aggressive lineup, the ID.4 looks more in line with the company's historic Beetle, Bus, and Karmann Ghia models. Of course, squinting head- and taillights look appropriately modern, particularly with their attractive LED-ringed accents and full-width front and rear light bars.
With no front grille to speak of save a bumper-mounted cooling intake, the front end is sleek and crisp, avoiding either the pitfalls of a faux radiator opening or a massive, blank-faced stare. The headlight internals are intricately designed, with a glowering projector covered in geometric LED textures. Adding a bit more visual pop to the front end is an illuminated VW logo on models equipped with upgraded trim packages.
The side profile's softly curved shoulder line adds a bit more retro flavour to the VW ID.4, although crossover-chic black plastic rocker panels and wheel arches ruin the clean design somewhat with faux-ruggedness. Adding some charm back are white contrasting roof accents (paired with a blackout-painted roof) that makes the upright SUV look lower and sleeker – and a bit more like a Beetle, if you squint.
The rear view is as neatly styled as the front, the only exception being the fussy black reflector surrounds on the bumper corners – those nacelles would be much prettier in body-colour. The full-width LED taillight panel includes some of the same geometric inlays as the headlights, interrupted in the middle by another illuminated VW logo. From stem to stern, the generally clean design of the ID.4 is attractive, distinctive, and futuristic.
Interior: Modern Furnishings, Maxi Space
The story is much the same inside. A 5.3-inch digital instrument display emerges from the steering column (not unlike a trip computer for a bicycle), and it's much smaller than expected of the same brand that brought us Volkswagen Digital Cockpit – that's a good thing in this minimalist cabin. The simple display features three reconfigurable tiles that show the most important information, with the battery's state of charge and range shown underneath. Touch-sensitive controls on the steering wheel provide inputs for the instrument cluster.
The simple gauges allow the massive infotainment display to take centre stage, literally and figuratively. Measuring 10.0 inches for the base model and 12.0 inches for the upgraded ID.4, the centre stack is angled toward the driver slightly, with sliders for the climate control temperature and audio system volume mounted just underneath the screen. Standard navigation and no-touch gesture control bring some upmarket features to the Volkswagen.
Befitting its minimalist styling, the ID.4 gets an unusual rocker switch in place of a traditional transmission selector. Mounted to the right side of the gauge cluster, the switch opens up plenty of room in the centre console for a wireless-charging smartphone compartment, two USB-C outlets, two cupholders, and a big cubby, with more storage found under the console near the footwell.
The E-VW boasts 543 litres of cargo space behind the second row, expanding to 1,575 litres with the rear seats folded – weirdly, there's no frunk. Still, luggage volume compares favourably to each of the ID.4's electric competition. In fact, the VW has more room with the rear seat in place than the Nissan Leaf does with it folded. The Volkswagen's passenger room is likewise class-leading, something zero-emissions families should keep in mind when shopping for their next vehicle.
Safety: Modern Tech, Standard
No one should be surprised to learn that the 2021 Volkswagen ID.4 boasts a long list of standard active safety features. The company's new IQ.Drive suite of driver-assist technology includes forward collision warning with pedestrian monitoring and automatic emergency braking, blind spot monitoring, lane-keeping assistance, and adaptive cruise control. In addition, the ID.4 features road sign monitoring, parking sensors, and automatic high beams.
In the event of a collision, six airbags – frontal and side-impact torso airbags for the first row and a pair of curtain airbags for both rows – help protect passengers, although we're surprised at the lack of knee airbags for this day and age. Meanwhile, an extruded aluminium frame protects the battery from crash damage, and the ID.4 automatically disconnects the electrical array after a serious accident. A replaceable undertray protects the battery from incidental road debris.
The 2021 Volkswagen ID.4 arrives in the first quarter of next year. Although pricing has not yet been announced for Europe, in the US its starting price of $39,995 (approx. £31,500) represents the base rear-drive model, boasting piano black interior accents, black cloth seats, 19-inch wheels, a body-colour roof, and roof rails. The $4,500 Statement package in the US adds a few niceties (fixed-glass roof, grey or black leatherette, adaptive front lighting, power-folding side mirrors, and the aforementioned 12.0-inch infotainment screen and illuminated rear badges). At the top of the heap is the $1,500 Gradient package, offered only in conjunction with Statement and adding 20-inch wheels, a black roof, and silver exterior accents.
Early adopters keen to show off their forward thinking would likely be most interested in the Volkswagen ID.4 1st Edition, boasting the Statement and Gradient packages at a cost of $43,995. Unique to the 1st will be snappy Electric White interior accents, brake and accelerator pedals with "pause" and "play" symbols, black mirror caps, and attractive exterior badging. At a savings of $2,000 compared to the loaded Statement/Gradient, the 1st Edition is probably the one to get.
Pricing for the all-wheel-drive, 302-bhp ID.4 starts at $43,695 (£34,300), and that model will go on sale before mid-2021. It, like all other ID.4 variants, will qualify for a $7,500 federal tax credit, bringing the model line's base price down to $32,495 for rear-drive or $36,195 with all-wheel drive.
Stay tuned as we expect UK market info to be announced closer to market launch.
BMW shows the X5 Le Mans Concept and its V12 engine with 700+ bhp
Hyundai Kona N teaser announces 27 April debut
David Beckham does donuts in Levante as Maserati's new ambassador
First official video of Marc Gemballa's off-road Porsche 911 project


text:
The Goa Foundation calls upon the Union Minister (Ministry of Environment & Forests, Government of India), for the urgent suspension of mining leases in the State of Goa
On the 11th of September 2012, the Goa Foundation & other NGOs & Citizens of Goa met the Goa State Pollution Control Board and submitted a memorandum requesting for the closure of mining activities in the State of Goa, following which today, on the 12th of September 2012, they (the Goa Foundation & other NGOs & Citizens of Goa) have written a letter to Smt. Jayanti Nataranjan, Hon'ble Minister for Environment & Forests, Government of India requesting for the "Urgent suspension of Environment Clearances for mining leases in Goa" which read as follows:
Smt. Jayanti Nataranjan, Hon'ble Minister for Environment & Forests, Government of India.
Photo courtesy: PIB of India / PIB
We are submitting this memorandum to you in connection with the reports and findings of the Justice Shah Commission of Inquiry into illegal mining in Goa.
The State of Goa by an order dated 10th September, 2012, has "temporarily suspended" work on all working mining leases in the state of Goa. This has been explicitly done in order to enable the state government to decide if and when it wishes to resume mining after mining lease owners produce the necessary papers.
We have deep apprehension that this may lead to resumption of work on these mining leases without the consent of the Ministry of Environment & Forests.
You have yourself written to the Chief Minister of Goa on February 8, 2012 that a "default ESZ of 10 kms width all around the National Parks and Sanctuaries of the State " will be applicable till a proper ESZ based on the proposals emanating from the State is notified. By earlier letters, your ministry has written to the state government to ensure that no mining activities take place without National Board of Wildlife approval.
In order to ensure that the Supreme Court's orders are respected and implemented, it is imperative that the Ministry of Environment and Forests take immediate steps to suspend all Environment Clearances granted to the mining companies in the State of Goa. This will automatically ensure that mining activities will not resume unless and until it has express approval of the Ministry (in this case including wildlife clearance before mining is allowed to resume).
We reiterate that the leases are operating on the basis of Environment Clearances granted by your Ministry and therefore only the Ministry can decide whether the mining leases can resume mining or not.
In any event the Shah Commission of Inquiry has come to a finding that all the mining leases in Goa suffer from serious and incurable legal infirmities. The Commission has opined that most of these leases had been renewed in 1987 without authority of law or in explicit violation of specific provisions of the MMDR Act 1957 and the MCR Rules 1960.
One of the issues that environmental NGOs like Goa Foundation has been agitating is that the Ministry of Environment had issues several Environment Clearances without examining the validity of the lease or the locus standi of the lease holders. In view of those findings of the Shah Commission, most of those leases would not be able to procure environment clearance any longer since the Shah Commission has already established that they do not have valid leases in any case. This aspect too will have to be considered by your Ministry if and when it decides to revoke any suspension of its environment clearance.
We would like to remind you that the Environment Ministry itself has been indicted by the Shah Commission Report for not taking adequate action to implement the Orders of the Supreme Court dated 4.12.2006 in Writ Petition No. 460/2004 and the order dated 4.8.2006 in the Godavarman case where directions were issued to prohibit all activities in the "safety zone" of 1 km from the boundaries of wildlife sanctuaries and national parks.
In view of the above facts, we are making this written representation for immediate suspension of all environmental clearances issued by the ministry for mining leases to operate mines in the State of Goa.
Tags: Goa Foundation, Goa State Pollution Control Board, Illegal Mining, Justice Shah Commission, MCR Rules 1960, Memorandum, Ministry of Environment and Forests, MMDR Act 1957, National Board of Wildlife, safety zone, Smt. Jayanti Nataranjan


Goddard College is an accredited private liberal arts college located in Plainfield, Vermont, Port Townsend and Seattle, Washington, offering undergraduate and graduate degree programs. With predecessor institutions dating to 1863, Goddard College was founded in 1938 as an experimental and non-traditional educational institution based on the ideas of John Dewey: that experience and education are intricately linked. Goddard College currently operates on an intensive low-residency model. Each student designs his/her own curriculum; the college currently uses a student self-directed, mentored system in which faculty issue narrative evaluations of student's progress instead of grades.
The intensive low-residency model requires students to come to campus every six months for approximately eight days, during which time students engage in a variety of activities and lectures from early morning until late in the evening, and create detailed study plans. During the semester students study independently, sending in "packets" to their faculty mentors every three weeks. The content of the packets varies with each individual, but focuses on research, writing, and reflection related to each student's individualized study plan.


FOLLOWING THE death of former President John Evans Atta Mills on Tuesday, the Chairman of a pressure group called the Eagle Eye, has expressed his condolences to the First Lady, Ernestina Naadu Mills, the family of the late President as well as the National Democratic Congress (NDC). Stephen Atubiga however warned that if the selection of a new vice president for the nation was not managed well, it could further widen the cracks in the ruling party and possibly affect its chances in the December general elections. Mr. Atubiga who once contested the NDC primaries in the Binduri constituency in the Upper East region told DAILY GUIDE, "the party should not behave like the proverbial ostrich. There are problems in the party and one of the solutions is including people who feel neglected and sidelined." He feels people like Dr. Ekwow Spio-Garbrah and Nana Konadu Agyeman Rawlings not only qualify for the position but the selection of either of them could be the link to reaching party members who feel neglected. "This is not the time for Samuel Okudzeto Ablakwa and other party communication team members to heap insults on former President Rawlings and his wife or try to further exclude them from party activities. I look forward to the announcement that President John Mahama has been selected by the NDC to replace Professor Mills as the party's candidate for the December presidential election," he added. According to him, the vacuum created in the NDC was a test for the ruling party and people were waiting to see if the party would endorse President John Mahama to replace Professor Mills as its flag bearer. He told the paper that if the party failed to do this, it would confirm claims across the Northern regions that the party leadership sees Northerners as only being fit for the running mate position. "They better take advantage of the fact that John Mahama has already been marketed and he's the current President of Ghana," he advised. Mr. Atubiga further called on the NDC national leadership to reach out to people who lost in the various constituency primaries and bring them on board campaign teams in the various constituencies in the Upper East region. He said despite calls on the NDC regional executives to do this they have refused and keep showing signs of contempt and complacency five months to the general elections.


Taylor is the photographer, writer, and breakfast ice cream aficionado behind Travel Outlandish. She's into adventure and alternative travel experiences. When she's not kicking around foreign countries, you can find her on the San Francisco Muni collecting stories.


Mid-October already? Here the countdown is already on to Halloween! Thanks to everyone who entered our "Something Wicked" challenge! It was so fun to see everyone's villain and monster creations! And special thanks again to our October sponsor, Sassy Studio Designs! They have generously offered a prize of 4 digis to our monthly winner!
It's that time of year when hordes of little monsters wander door to door looking for treats... In order to keep the ghouls, goblins, and ghosties happy (and keep Halloween mischief-free) we want to see your "Treacherous Treats"! Any Halloween themed treat container qualifies - bag, box, cone, pouch, test tube... If it can hold eerie edibles, we'd love for you to enter our challenge this fortnight!
Let's see what containers for nightmarish nibbles the design team has conjured up!
Please use keyword Corrosive160 when uploading to online galleries.
Thanks for the fun challenge! DT, y'all did a fabulous job!!
It's really a great and helpful piece of information. I'm satisfied that you shared this useful information with us. Please stay us informed like this. Thanks for sharing. Also check Ludo Star Mod Apk & Yowhatsapp Download.
SAG Awards rather center around the gathering and individual exhibitions.
Kristen Bell will be the host of this enormous occasion.
I always like challenge, allways when playing android game.
Your blog is an awesome resource!


text:
"""Custom attribute value model"""

from collections import namedtuple

from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy import and_
from sqlalchemy import or_
from sqlalchemy import orm
from sqlalchemy.orm import foreign

from ggrc import builder
from ggrc import db
from ggrc.models.mixins import Base
from ggrc.models.reflection import PublishOnly
from ggrc.models.revision import Revision
from ggrc import utils
from ggrc.fulltext.mixin import Indexed
from ggrc.fulltext import get_indexer

class CustomAttributeValue(Base, Indexed, db.Model):
  """Custom attribute value model"""

  __tablename__ = 'custom_attribute_values'

  _publish_attrs = [
      'custom_attribute_id',
      'attributable_id',
      'attributable_type',
      'attribute_value',
      'attribute_object',
      PublishOnly('preconditions_failed'),
  ]
  _fulltext_attrs = ["attribute_value"]

  _sanitize_html = [
      "attribute_value",
  ]

  custom_attribute_id = db.Column(
      db.Integer,
      db.ForeignKey('custom_attribute_definitions.id', ondelete="CASCADE")
  )
  attributable_id = db.Column(db.Integer)
  attributable_type = db.Column(db.String)
  attribute_value = db.Column(db.String)

  # When the attibute is of a mapping type this will hold the id of the mapped
  # object while attribute_value will hold the type name.
  # For example an instance of attribute type Map:Person will have a person id
  # in attribute_object_id and string 'Person' in attribute_value.
  attribute_object_id = db.Column(db.Integer)

  # pylint: disable=protected-access
  # This is just a mapping for accessing local functions so protected access
  # warning is a false positive
  _validator_map = {
      "Date": lambda self: self._validate_date(),
      "Dropdown": lambda self: self._validate_dropdown(),
      "Map:Person": lambda self: self._validate_map_person(),
  }

  @property
  def latest_revision(self):
    """Latest revision of CAV (used for comment precondition check)."""
    # TODO: make eager_query fetch only the first Revision
    return self._related_revisions[0]

  def delere_record(self):
    get_indexer().delete_record(self.attributable_id,
                                self.attributable_type,
                                False)

  def get_reindex_pair(self):
    return (self.attributable_type, self.attributable_id)

  @declared_attr
  def _related_revisions(self):
    def join_function():
      """Function to join CAV to its latest revision."""
      resource_id = foreign(Revision.resource_id)
      resource_type = foreign(Revision.resource_type)
      return and_(resource_id == self.id,
                  resource_type == "CustomAttributeValue")

    return db.relationship(
        Revision,
        primaryjoin=join_function,
        viewonly=True,
        order_by=Revision.created_at.desc(),
    )

  @classmethod
  def eager_query(cls):
    query = super(CustomAttributeValue, cls).eager_query()
    query = query.options(
        orm.subqueryload('_related_revisions'),
        orm.joinedload('custom_attribute'),
    )
    return query

  @property
  def attributable_attr(self):
    return '{0}_custom_attributable'.format(self.attributable_type)

  @property
  def attributable(self):
    return getattr(self, self.attributable_attr)

  @attributable.setter
  def attributable(self, value):
    self.attributable_id = value.id if value is not None else None
    self.attributable_type = value.__class__.__name__ if value is not None \
        else None
    return setattr(self, self.attributable_attr, value)

  @property
  def attribute_object(self):
    """Fetch the object referred to by attribute_object_id.

    Use backrefs defined in CustomAttributeMapable.

    Returns:
        A model instance of type specified in attribute_value
    """
    return getattr(self, self._attribute_object_attr)

  @attribute_object.setter
  def attribute_object(self, value):
    """Set attribute_object_id via whole object.

    Args:
        value: model instance
    """
    if value is None:
      # We get here if "attribute_object" does not get resolved.
      # TODO: make sure None value can be set for removing CA attribute object
      # value
      return
    self.attribute_object_id = value.id
    return setattr(self, self._attribute_object_attr, value)

  @property
  def attribute_object_type(self):
    """Fetch the mapped object pointed to by attribute_object_id.

    Returns:
       A model of type referenced in attribute_value
    """
    attr_type = self.custom_attribute.attribute_type
    if not attr_type.startswith("Map:"):
      return None
    return self.attribute_object.__class__.__name__

  @property
  def _attribute_object_attr(self):
    """Compute the relationship property based on object type.

    Returns:
        Property name
    """
    attr_type = self.custom_attribute.attribute_type
    if not attr_type.startswith("Map:"):
      return None
    return 'attribute_{0}'.format(self.attribute_value)

  @classmethod
  def mk_filter_by_custom(cls, obj_class, custom_attribute_id):
    """Get filter for custom attributable object.

    This returns an exists filter for the given predicate, matching it to
    either a custom attribute value, or a value of the matched object.

    Args:
      obj_class: Class of the attributable object.
      custom_attribute_id: Id of the attribute definition.
    Returns:
      A function that will generate a filter for a given predicate.
    """
    from ggrc.models import all_models
    attr_def = all_models.CustomAttributeDefinition.query.filter_by(
        id=custom_attribute_id
    ).first()
    if attr_def and attr_def.attribute_type.startswith("Map:"):
      map_type = attr_def.attribute_type[4:]
      map_class = getattr(all_models, map_type, None)
      if map_class:
        fields = [getattr(map_class, name, None)
                  for name in ["email", "title", "slug"]]
        fields = [field for field in fields if field is not None]

        def filter_by_mapping(predicate):
          return cls.query.filter(
              (cls.custom_attribute_id == custom_attribute_id) &
              (cls.attributable_type == obj_class.__name__) &
              (cls.attributable_id == obj_class.id) &
              (map_class.query.filter(
                  (map_class.id == cls.attribute_object_id) &
                  or_(*[predicate(f) for f in fields])).exists())
          ).exists()
        return filter_by_mapping

    def filter_by_custom(predicate):
      return cls.query.filter(
          (cls.custom_attribute_id == custom_attribute_id) &
          (cls.attributable_type == obj_class.__name__) &
          (cls.attributable_id == obj_class.id) &
          predicate(cls.attribute_value)
      ).exists()
    return filter_by_custom

  def _clone(self, obj):
    """Clone a custom value to a new object."""
    data = {
        "custom_attribute_id": self.custom_attribute_id,
        "attributable_id": obj.id,
        "attributable_type": self.attributable_type,
        "attribute_value": self.attribute_value,
        "attribute_object_id": self.attribute_object_id
    }
    ca_value = CustomAttributeValue(**data)
    db.session.add(ca_value)
    db.session.flush()
    return ca_value

  @staticmethod
  def _extra_table_args(_):
    return (
        db.UniqueConstraint('attributable_id', 'custom_attribute_id'),
    )

  def _validate_map_person(self):
    """Validate and correct mapped person values

    Mapped person custom attribute is only valid if both attribute_value and
    attribute_object_id are set. To keep the custom attribute api consistent
    with other types, we allow setting the value to a string containing both
    in this way "attribute_value:attribute_object_id". This validator checks
    Both scenarios and changes the string value to proper values needed by
    this custom attribute.

    Note: this validator does not check if id is a proper person id.
    """
    if self.attribute_value and ":" in self.attribute_value:
      value, id_ = self.attribute_value.split(":")
      self.attribute_value = value
      self.attribute_object_id = id_

  def _validate_dropdown(self):
    """Validate dropdown opiton."""
    valid_options = set(self.custom_attribute.multi_choice_options.split(","))
    if self.attribute_value:
      self.attribute_value = self.attribute_value.strip()
      if self.attribute_value not in valid_options:
        raise ValueError("Invalid custom attribute dropdown option: {v}, "
                         "expected one of {l}"
                         .format(v=self.attribute_value, l=valid_options))

  def _validate_date(self):
    """Convert date format."""
    if self.attribute_value:
      # Validate the date format by trying to parse it
      self.attribute_value = utils.convert_date_format(
          self.attribute_value,
          utils.DATE_FORMAT_ISO,
          utils.DATE_FORMAT_ISO,
      )

  def validate(self):
    """Validate custom attribute value."""
    # pylint: disable=protected-access
    attributable_type = self.attributable._inflector.table_singular
    if not self.custom_attribute:
      raise ValueError("Custom attribute definition not found: Can not "
                       "validate custom attribute value")
    if self.custom_attribute.definition_type != attributable_type:
      raise ValueError("Invalid custom attribute definition used.")
    validator = self._validator_map.get(self.custom_attribute.attribute_type)
    if validator:
      validator(self)

  @builder.simple_property
  def is_empty(self):
    """Return True if the CAV is empty or holds a logically empty value."""
    # The CAV is considered empty when:
    # - the value is empty
    if not self.attribute_value:
      return True
    # - the type is Checkbox and the value is 0
    if (self.custom_attribute.attribute_type ==
            self.custom_attribute.ValidTypes.CHECKBOX and
            str(self.attribute_value) == "0"):
      return True
    # - the type is a mapping and the object value id is empty
    if (self.attribute_object_type is not None and
            not self.attribute_object_id):
      return True
    # Otherwise it the CAV is not empty
    return False

  @builder.simple_property
  def preconditions_failed(self):
    """A list of requirements self introduces that are unsatisfied.

    Returns:
      [str] - a list of unsatisfied requirements; possible items are: "value" -
              missing mandatory value, "comment" - missing mandatory comment,
              "evidence" - missing mandatory evidence.

    """
    failed_preconditions = []
    if self.custom_attribute.mandatory and self.is_empty:
      failed_preconditions += ["value"]
    if (self.custom_attribute.attribute_type ==
            self.custom_attribute.ValidTypes.DROPDOWN):
      failed_preconditions += self._check_dropdown_requirements()
    return failed_preconditions or None

  def _check_dropdown_requirements(self):
    """Check mandatory comment and mandatory evidence for dropdown CAV."""
    failed_preconditions = []
    options_to_flags = self._multi_choice_options_to_flags(
        self.custom_attribute,
    )
    flags = options_to_flags.get(self.attribute_value)
    if flags:
      if flags.comment_required:
        failed_preconditions += self._check_mandatory_comment()
      if flags.evidence_required:
        failed_preconditions += self._check_mandatory_evidence()
    return failed_preconditions

  def _check_mandatory_comment(self):
    """Check presence of mandatory comment."""
    if hasattr(self.attributable, "comments"):
      comment_found = any(
          self.custom_attribute_id == (comment
                                       .custom_attribute_definition_id) and
          self.latest_revision.id == comment.revision_id
          for comment in self.attributable.comments
      )
    else:
      comment_found = False
    if not comment_found:
      return ["comment"]
    else:
      return []

  def _check_mandatory_evidence(self):
    """Check presence of mandatory evidence."""
    if hasattr(self.attributable, "object_documents"):
      # Note: this is a suboptimal implementation of mandatory evidence check;
      # it should be refactored once Evicence-CA mapping is introduced
      def evidence_required(cav):
        """Return True if an evidence is required for this `cav`."""
        flags = (self._multi_choice_options_to_flags(cav.custom_attribute)
                 .get(cav.attribute_value))
        return flags and flags.evidence_required
      evidence_found = (len(self.attributable.object_documents) >=
                        len([cav
                             for cav in self.attributable
                                            .custom_attribute_values
                             if evidence_required(cav)]))
    else:
      evidence_found = False
    if not evidence_found:
      return ["evidence"]
    else:
      return []

  @staticmethod
  def _multi_choice_options_to_flags(cad):
    """Parse mandatory comment and evidence flags from dropdown CA definition.

    Args:
      cad - a CA definition object

    Returns:
      {option_value: Flags} - a dict from dropdown options values to Flags
                              objects where Flags.comment_required and
                              Flags.evidence_required correspond to the values
                              from multi_choice_mandatory bitmasks
    """
    flags = namedtuple("Flags", ["comment_required", "evidence_required"])

    def make_flags(multi_choice_mandatory):
      flags_mask = int(multi_choice_mandatory)
      return flags(comment_required=flags_mask & (cad
                                                  .MultiChoiceMandatoryFlags
                                                  .COMMENT_REQUIRED),
                   evidence_required=flags_mask & (cad
                                                   .MultiChoiceMandatoryFlags
                                                   .EVIDENCE_REQUIRED))

    if not cad.multi_choice_options or not cad.multi_choice_mandatory:
      return {}
    else:
      return dict(zip(
          cad.multi_choice_options.split(","),
          (make_flags(mask)
           for mask in cad.multi_choice_mandatory.split(",")),
      ))


text:
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

namespace Andi.Controls
{
    public class ImageComboItem
    {
        public ImageComboItem()
        {
            ImageIndex = -1;
            ImageKey = string.Empty;
            Tag = null;
        }

        public ImageComboItem(string text)
            : this()
        {
            Text = text;
        }

        public ImageComboItem(string text, int imageIndex)
            : this(text)
        {
            ImageIndex = imageIndex;
        }

        public ImageComboItem(string text, string imageKey)
            : this(text)
        {
            ImageKey = imageKey;
        }

        public ImageComboItem(string text, int imageIndex, object tag)
            : this(text, imageIndex)
        {
            Tag = tag;
        }

        public ImageComboItem(string text, string imageKey, object tag)
            : this(text, imageKey)
        {
            Tag = tag;
        }

        [DefaultValue(null)]
        [Category("Appearance")]
        public virtual Image Image { get; set; }

        [DefaultValue(0)]
        [Category("Appearance")]
        public virtual int ImageIndex { get; set; }

        [Category("Appearance")]
        [DefaultValue("")]
        public virtual string ImageKey { get; set; }

        [Category("Appearance")]
        [DefaultValue(0)]
        public virtual int Indent { get; set; }

        [DefaultValue("")]
        [Category("Behavior")]
        public string Key { get; set; }

        [TypeConverter(typeof (StringConverter))]
        [DefaultValue(null)]
        public virtual object Tag { get; set; }

        [DefaultValue("")]
        [Category("Appearance")]
        public virtual string Text { get; set; }

        public override string ToString()
        {
            return Text;
        }

        public Image GetImage(ImageList imageList)
        {
            Image image = Image;
            if (image == null && imageList != null)
            {
                int index = string.IsNullOrEmpty(ImageKey) ? ImageIndex : imageList.Images.IndexOfKey(ImageKey);
                if (index != -1)
                    image = imageList.Images[index];
            }
            return image;
        }
    }
}


text:
Dr Helen Dampier
0113 81 24921 H.Dampier@leedsbeckett.ac.uk
About Dr Helen Dampier
Helen's research and teaching reflect her critical interest in life writings of all kinds, and the ways in which such writings are used as historical sources. She is also substantively concerned with nineteenth and twentieth century African and South African history, and especially in gender-related topics within these fields. The main lines of her intellectual concerns involve the histories and politics of imperialism and then apartheid in South Africa, life writings, nationalism studies and the conjunction of gender/politics.
Helen obtained an MA in History at Rhodes University in South Africa before completing her PhD in Sociology at the University of Newcastle in the UK. Her doctoral and subsequent research critically examined women's testimonies of the 1899-1902 South African War, and especially the manner and context in which women represented their experiences of the concentration camps established by the British during the war, and to what political ends. More recently Helen has been co-investigator on the Olive Schreiner Letters Project. This Project has researched and published the complete letters of the South African feminist writer Olive Schreiner (1855 - 1920) online (www.oliveschreiner.org). Helen's research on epistolarity and on the particularities of Olive Schreiner's letters not least their illumination of the South African past continues.
A member of the UK Women's History Network, Helen is also an Honorary Research Fellow at the University of Edinburgh. She has presented her research at national and international conferences and has a number of single- and joint-authored publications.
Helen currently teaches a number of undergraduate modules including "Trade, Colonisation & Empire", "Race & Slavery" and "Life Writing in Twentieth Century History". She also contributes to the team-taught modules "Emergence of Modern Europe" and "History & Culture in Twentieth Century Europe".
Helen's research is strongly interdisciplinary and its broad thematic concerns include memory, life writing, and historiography and its claims. Its substantive focus is on the history of South Africa, and it has critically examined the use of life writings and especially women's testimonies as historical sources, the political aftermaths of the 1899-1902 South African War, and the role of women in the development of Afrikaner nationalism in South Africa.
More recently Helen has been the co-investigator on the Olive Schreiner Letters Project, which has made the extant letters of the South African writer and feminist Olive Schreiner fully and freely available for the first time (see: www.oliveschreiner.org). This publication of Schreiner's letters now provides the standard epistolary source material for Schreiner scholars worldwide, and is likely to have an extensive impact on research in women's history and South African history. The Project has also produced a number of joint and individual publications concerning both letters and epistolarity, and Schreiner's political and cultural activities.
Stanley L; Salter A; Dampier H (2013), The Work of Making and the Work it Does: Cultural Sociology and 'Bringing- Into-Being' the Cultural Assemblage of the Olive Schreiner Letters. Cultural Sociology, vol. 7 (3), p. 287-302.
https://doi.org/10.1177/1749975512473463
Stanley L; Salter A; Dampier H (2013), Olive Schreiner, epistolary practices and microhistories: A cultural entrepreneur in a historical landscape. Cultural and Social History, vol. 10 (4), p. 577-597.
Stanley L; Dampier H (2012), 'I Just Express My Views & Leave Them to Work': Olive Schreiner as a Feminist Protagonist in a Masculine Political Landscape with Figures. Gender and History, vol. 24 (3), p. 157-180.
Stanley L; Dampier HC (2010), Aftermaths: post/memory, commemoration and the concentration camps of the South African War 1899-1902. European Review of History: Revue europeenne d'histoire, vol. 12 (1), p. 91-119.
Dampier HC (2008), Re-reading as a Methodology: The Case of Boer Women's Testimonies. Qualitative Research, vol. 8 (3), p. 367-377.
Stanley L; Dampier HC (2006), Simulacrum Diaries: Time, the "moment of writing," and the diaries of Johanna Brandt-Van Warmelo. Life Writing, vol. 3 (2), p. 25-52.
Dampier HC (2013) Identifying the Quotidian in the Heterotopic Universe of Olive Schreiner's Letters.. In: Dampier HC The Documents of Life Revisted: Narrative and Biographical Methods for a 21st Century Critical Humanism. : Ashgate, pp. .
Dampier HC (2005) 'Everyday Life' in Boer Women's Testimonies of the Concentration Camps of the South African War, 1899-1902. In: Dampier HC Crime and empire, 1840-1940. : Willan Pub, pp. .
Dampier HC (In press), 'Stories That Find their Place': Retelling the Protest at Brandfort, 1901-1949. South African Historical Journal
Dampier HC (2016), 'Going on with our little movement in the hum drum-way which alone is possible in a land like this': Olive Schreiner and suffrage networks in Britain and South Africa, 1905-1913. Women's History Review
Dampier HC; Stanley L (2010), Towards the Epistolarium: Issues in Researching and Publishing the Olive Schreiner Letters. African Research and Documentation, vol. 113
Dampier HC; Stanley L (2010), Men Selling Their Souls and The Future - and Fate Watching Them: Olive Schreiner on Union. Quarterly Bulletin of the National Library of South Africa, vol. 64 (3), p. 121-136.
Dampier HC; Stanley L (2010), I Trust That Our Brief Acquaintance May Ripen into Sincere Friendship: Networks Across the Race Divide in South Africa in Conceptualising Olive Schreiner's Letters 1890-1920. Working Papers on Letters, Letterness and Epistolary Networks, vol. 2
Stanley L; Dampier H; Salter A (2010), Olive Schreiner globalising social inquiry: A feminist analytics of globalization. Sociological Review, vol. 58 (4), p. 656-679.
https://doi.org/10.1111/j.1467-954X.2010.01945.x
Dampier HC (2009), The Number of the South African War (1899-1902) Concentration Camp Dead. Sociological Research Online: an electronic journal, vol. 14 (5)
Stanley L; Dampier H (2009), The number of the South African war (1899-1902) concentration camp dead: Standard stories, superior stories and a forgotten proto-nationalist research investigation. Sociological Research Online, vol. 14 (5)
https://doi.org/10.5153/sro.2034
Dampier HC; Stanley L (2008) She Wrote Peter Helket: Fictive and Factive Devices in Olive Schreiner's Letters and Trooper Peter Halket of Mashonaland. In: Dampier HC; Stanley L Narratives and Fiction. : University of Huddersfield Press, pp. 61-71.
Dampier HC; Stanley L (2008) Parallel Narratives? Photographs in Boer Women's Wartime Testimonites. In: Dampier HC; Stanley L Narratives and Fiction. : University of Huddersfield Press, pp. 9-24.
Dampier HC; Stanley L (2006) Knowledge, the 'Moment of Writing' and the Simulacrum Diaries of Johanna Brandt-Van Warmelo. In: Dampier HC; Stanley L Narrative, memory and knowledge. : University of Huddersfield, pp. 27-39.
Dampier HC (2011) Identifying the Quotidian in the Heterotopic Universe of Olive Schreiner's Letters University of Edinburgh 20110501. : .
Dampier HC; Stanley L (2011) I Just Express My Views and Leave Them to Work Using Olive Schreiner's Letters to Rethink the Historiography of Cape Politics 1899-1910 University of Minnesota 20100415. : .
Dampier HC (2010) Re-Reading The Public and Private in Some Olive Schreiner Letters University of Sussex 20100628. : .
Dampier HC (2010) Sarah Raal's Met Die Boere in Die Veld & Women's Accounts of the 1899-1902 South African War University of Keele 20100501. : .
Dampier HC (2009) It's Been Done Before! Olive Schreiner Globalising Social Inquiry Cardiff 20090416. : .
School of Cultural Studies & Humanities Good News
Cultural Studies & Humanities July Good News
International Women's Day: The forgotten heroines and women in history?


Knowing the necessary information about roofing can seem quite overwhelming. You may be wondering how to properly care for your roof. When is it time to bring in the pros? Find the answers to these questions and more by reading below. Read on to find out some really great tips.
Inspect your roof yearly. Roof damage is most likely to occur during winter and spring. Therefore, you need to carefully observe your roof during these seasons.
Mow the lawn prior to the removal of your old roof. This helps keep debris and falling nails in order. If your contractor brings a magnetic nail finder, short grass will also help this tool work more efficiently.
It is not a good idea to walk around on your roof trying to find damages. If there are issues, have a professional come take a look. You don't want to walk on the roof and it ends up caving in.
Remember safety. Roofing is dangerous work. Never rush the job. Never attempt roofing work in bad weather. It isn't worth your safety or life to make a home repair. Make all preparations that you can and be cautious at every step.
Not everyone has the time or expendable funds to do a major interior design do-over on their home. If you happen to enjoy such an opportunity, make sure to do things properly. Here, you will find some great tips that will guide you through designing your home's interior.


A|  If you have any questions e-mail me.
.|  the music of the night.
I just don't know it,i really love the song, i was just rely and hope to find a sheets for music of the night that was based only on the numbers of the piano, the one enscribed on the upper of the keyboard for those cannot read piano shhets and relying on that.


Hallo! I'm a *14yr old weeb who likes to draw stuff, I'm 5'7 and I LiKe NiRvAnA. Here are some artists I recommend that you check out: @Kido/@Huck @Kawli @Korean @xXQUEENXx @Slinky @Veztar @CryoKimothy @Crayon @Fleja and wayyy more (like, a lot more people). My favorite games are probably kingdom hearts, dark souls, fire emblem, pokemon, etc. I'm a bi boi.
Sora for Smash dlc @Pugg-o-lantern liked @ParallelSpace's drawing.
Sora for Smash dlc @Pugg-o-lantern liked @Crayon's drawing.
Sora for Smash dlc @Pugg-o-lantern commented on this drawing.
Sora for Smash dlc @Pugg-o-lantern liked @Slinky's drawing.
Sora for Smash dlc commented on this drawing.
Sora for Smash dlc commented on this post.
"Sora from the kingdom hearts series for smash bros ultimate dlc"
"Oh you've improved ? I've only been inactive because my computer is taken and I don't normally check through my phone"
@Pugg-o-lantern That's PK Starstorm, I know.
What devices did you use?
Alright this is the best. I love it, love the style, love it. Outstanding.