text:
Q: Binary XML file line #1: invalid drawable tag vector I have an app that runs perfectly on most devices. However, I'm getting a FATAL exception whenever I try to run my application on devices with API < 21.
Here is the log:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.aceinteract.sleak/com.aceinteract.sleak.activity.LoginRegisterActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class EditText
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2262)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.access$700(ActivityThread.java:158)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1296)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5365)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class EditText
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:710)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:846)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.aceinteract.sleak.activity.LoginRegisterActivity.onCreate(LoginRegisterActivity.kt:21)
at android.app.Activity.performCreate(Activity.java:5326)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2225)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.access$700(ActivityThread.java:158)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1296)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5365)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_person_accent_24dp.xml from drawable resource ID #0x7f07006f
at android.content.res.Resources.loadDrawable(Resources.java:2842)
at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
at android.widget.TextView.<init>(TextView.java:1023)
at android.widget.EditText.<init>(EditText.java:76)
at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:64)
at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:60)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112)
at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1016)
at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1073)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$WrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:280)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:681)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:846)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.aceinteract.sleak.activity.LoginRegisterActivity.onCreate(LoginRegisterActivity.kt:21)
at android.app.Activity.performCreate(Activity.java:5326)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2225)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.access$700(ActivityThread.java:158)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1296)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5365)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:917)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:858)
at android.content.res.Resources.loadDrawable(Resources.java:2839)
at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
at android.widget.TextView.<init>(TextView.java:1023)
at android.widget.EditText.<init>(EditText.java:76)
at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:64)
at android.support.v7.widget.AppCompatEditText.<init>(AppCompatEditText.java:60)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:112)
at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1016)
at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1073)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$WrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:280)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:681)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:846)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:760)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.aceinteract.sleak.activity.LoginRegisterActivity.onCreate(LoginRegisterActivity.kt:21)
at android.app.Activity.performCreate(Activity.java:5326)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2225)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.access$700(ActivityThread.java:158)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1296)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5365)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)

Here is the layout XML
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/layout_register"
    android:visibility="gone"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <EditText
        android:id="@+id/edit_register_full_name"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:drawableEnd="@drawable/ic_person_accent_24dp"
        android:padding="20dp"
        android:layout_width="0dp"
        android:hint="@string/hint_full_name"
        android:singleLine="true"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:drawableRight="@drawable/ic_person_accent_24dp" />

    <EditText
        android:id="@+id/edit_register_email"
        app:layout_constraintTop_toBottomOf="@id/edit_register_full_name"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:drawableEnd="@drawable/ic_email_accent_24dp"
        android:padding="20dp"
        android:layout_width="0dp"
        android:hint="@string/hint_email"
        android:inputType="textEmailAddress"
        android:layout_height="wrap_content"
        android:drawableRight="@drawable/ic_email_accent_24dp" />

    <EditText
        android:id="@+id/edit_register_password"
        app:layout_constraintTop_toBottomOf="@id/edit_register_email"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:drawableEnd="@drawable/ic_vpn_key_accent_24dp"
        android:padding="20dp"
        android:inputType="textPassword"
        android:layout_width="0dp"
        android:hint="@string/hint_password"
        android:layout_height="wrap_content"
        android:drawableRight="@drawable/ic_vpn_key_accent_24dp" />

    <CheckBox
        android:id="@+id/check_register_show_password"
        android:text="@string/desc_show_password"
        android:layout_marginTop="10dp"
        app:layout_constraintTop_toBottomOf="@id/edit_register_password"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</android.support.constraint.ConstraintLayout>

And the gradle file:
apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.aceinteract.sleak"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    buildToolsVersion '27.0.2'
}

androidExtensions {
    experimental = true
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.android.support:design:27.0.2'
    implementation 'com.android.support:customtabs:27.0.2'
    implementation 'com.android.support:support-vector-drawable:27.0.2'
    implementation 'com.android.support:support-v4:27.0.2'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:animated-vector-drawable:27.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    implementation 'com.android.support:cardview-v7:27.0.2'
    implementation 'com.android.support:gridlayout-v7:27.0.2'
    implementation 'com.android.support:recyclerview-v7:27.0.2'
    implementation 'com.android.support:design:27.0.2'
    implementation 'com.android.support:palette-v7:27.0.2'
    implementation 'com.google.code.gson:gson:2.8.0'
    implementation 'com.mikhaellopez:circularimageview:3.0.2'
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
    implementation 'uk.co.chrisjenx:calligraphy:2.2.0'
}

I have tried changing to AppComaptEditText, but it still just gives the same error.
Thanks in advance :)

A: To create vector drawable use:
vector = VectorDrawableCompat.create(context.getResources(), R.drawable.res, null);

Or add AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) to Application onCreate() method
Note: this solution doesn't work for android:drawableLetf or android:drawableRight but allow to use app:srcCompat

A: Documentation about Vector Graphics says:

Android 4.4 (API level 20) and lower doesn't support vector drawables.

With Support Library you have backward-compatibility using the attribute app:srcCompat, but it is not backported for android:drawableRight.
The solution is to keep using .PNG files for those cases or try to set it by code.

A: You can use this solution to get vector drawables before 5.0 :
Drawable drawable = AppCompatResources.getDrawable(mContext, mImageTitleResId);

A: implementation 'androidx.appcompat:appcompat:{current_version}'

If the issue is caused by a drawableLeft or drawableRight then replace TextView with androidx.appcompat.widget.AppCompatTextView or
EditText with androidx.appcompat.widget.AppCompatEditText.
Then, use one of:
app:drawableLeftCompat
app:drawableStartCompat
app:drawableEndCompat
app:drawableRightCompat

A: I had a similar stack trace in my project when running on Android 4.4 devices, even though it worked fine on Android 7 and higher:
12-18 19:44:28.453 6660-6660/com.android.gpstest E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.android.gpstest, PID: 6660
    android.content.res.Resources$NotFoundException: File res/drawable/ic_baseline_location_on_24.xml from drawable resource ID #0x7f08009b. If the resource you are trying to use is a vector resource, you may be referencing it in an unsupported way. See AppCompatDelegate.setCompatVectorFromResourcesEnabled() for more info.
        at android.content.res.Resources.loadDrawable(Resources.java:2101)
        at android.content.res.Resources.getDrawable(Resources.java:700)
        at androidx.core.content.ContextCompat.getDrawable(ContextCompat.java:457)
        at com.android.gpstest.dialog.ShareDialogFragment$onCreateDialog$1.onConfigureTab(ShareDialogFragment.kt:62)
        at com.google.android.material.tabs.TabLayoutMediator.populateTabsFromPagerAdapter(TabLayoutMediator.java:170)
        at com.google.android.material.tabs.TabLayoutMediator.attach(TabLayoutMediator.java:138)
        at com.android.gpstest.dialog.ShareDialogFragment.onCreateDialog(ShareDialogFragment.kt:73)
        at androidx.fragment.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:380)
        at androidx.fragment.app.Fragment.performGetLayoutInflater(Fragment.java:1412)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
        at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
        at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
        at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
        at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:933)
        at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
        at android.content.res.Resources.loadDrawable(Resources.java:2097)

...when trying to reference drawables for use with ViewPager2 tabs with the TabLayoutMediator:
        viewPager = view.findViewById(R.id.pager)
        viewPager.offscreenPageLimit = 2
        viewPager.adapter = shareCollectionAdapter
        val tabLayout = view.findViewById(R.id.share_tab_layout) as TabLayout
        TabLayoutMediator(tabLayout, viewPager) { tab, position ->
            when (position) {
                0 -> {
                    tab.text = getString(R.string.location)
                    tab.icon = ContextCompat.getDrawable(Application.get(),  R.drawable.ic_baseline_location_on_24)
                }
                1 -> {
                    tab.text = getString(R.string.log)
                    tab.icon = ContextCompat.getDrawable(Application.get(),  R.drawable.ic_baseline_list_alt_24)
                }
                2 -> {
                    tab.text = getString(R.string.device)
                    tab.icon = ContextCompat.getDrawable(Application.get(),  R.drawable.ic_baseline_perm_device_information_24)
                }
            }
        }.attach()

...but none of the above solutions worked.
I ended up fixing this by refencing the resource ID for the drawables directly instead of using ContextCompat to load them as drawables first.
Note that Kotlin doesn't resolve the direct assignment of tab.icon = R.drawable.x directly, so you need to use the setter method tab.setIcon(R.drawable.x) instead.
Here's the fixed code that works:
        viewPager = view.findViewById(R.id.pager)
        viewPager.offscreenPageLimit = 2
        viewPager.adapter = shareCollectionAdapter
        val tabLayout = view.findViewById(R.id.share_tab_layout) as TabLayout
        TabLayoutMediator(tabLayout, viewPager) { tab, position ->
            when (position) {
                0 -> {
                    tab.text = getString(R.string.location)
                    tab.setIcon(R.drawable.ic_baseline_location_on_24)
                }
                1 -> {
                    tab.text = getString(R.string.log)
                    tab.setIcon(R.drawable.ic_baseline_list_alt_24)
                }
                2 -> {
                    tab.text = getString(R.string.device)
                    tab.setIcon(R.drawable.ic_baseline_perm_device_information_24)
                }
            }
        }.attach()

Related project issue on GitHub:
https://github.com/barbeau/gpstest/issues/463
Commit with the above change that fixed the issue on GitHub:
https://github.com/barbeau/gpstest/commit/1f868b8870a01de2e567a8ca7d094c4341cf567a

A: Only need to Change
android:drawableTop -  app:drawableTopCompat,
android:drawableBottom - app:drawableBottomCompat,
android:drawableLeft - app:drawableLeftCompat,
android:drawableRight - app:drawableRightCompat.

A: Android 4.4 (API level 20) and lower doesn't support vector drawables.
Remove line vectorDrawables.useSupportLibrary = true from your app/buld.gradle.
edit
implement also line in app/buld.gradle.
implementation 'com.android.support:appcompat-v7:[version sdk]'

redpajama_set_name: RedPajamaStackExchange


text:
Text only version of this page
Home Explore the BBC
This page has been archived and is no longer updated. Find out more about page archiving.
BBC Homepage
PROGRAMME FINDER:
PROGRAMME GENRES:
Religion|Ethics
Radio 4 Tickets
Radio 4 Help
Send it to a friend!
Go to the Listen Again page
Begins Tuesday 19 October 2004, 3.00-3.30 p.m
Sue Cook presents the series that examines listeners' historical queries, exploring avenues of research and uncovering mysteries.
The books listed should be available through booksellers or your local library. Some may currently be out of print. The following have online bookshops specialising in family and local history publications:
The Federation of Family History Societies: www.ffhs.co.uk
Family Tree Magazine: www.family-tree.co.uk
Jean Cole and Rosemary Church, In and Around Record Repositories in Great Britain and Ireland (ABM Publishing, 4th edn, 1998)
Anthony J. Camp, First Steps in Family History (Society of Genealogists, 3rd edn, 1998)
Jean Cole, Tracing Your Family Tree (Countryside Books, 3rd edn, 2000)
Mark D. Herber, Ancestral Trails: The Complete Guide to British Genealogy and Family History (Sutton Publishing, 2000)
David Hey, The Oxford Guide to Family History (Oxford University Press, 1998)
Colin D. Rogers, The Family Tree Detective: Tracing your Ancestors in England and Wales (Manchester UP, 1997)
Pauline Saul, The Family Historian's Enquire Within (Federation of Family History Societies, 5th edn, 1997)
Arthur J. Willis and Karin Proudfoot, Genealogy for Beginners (Phillimore, 1997)
Family Tree Magazine and Practical Family History, both published monthly, from newsagents or on subscription.
Website: www.family-tree.co.uk
Stephen Friar, The Local History Companion (Sutton Publishing, 1991)
James Griffin and Tim Lomas, Exploring Local History (Teach Yourself Books, 1997)
David Hey, ed., The Oxford Companion to Local and Family History (Oxford University Press, 1998)
David Iredale and John Barrett, Discovering Local History (Shire Publications, 1999)
Philip Riden, Local History: A Handbook for Beginners (Merton Priory Press, 2nd rev. edn 1998)
John West, Village Records (Phillimore, 1997)
Local History Magazine, published six times a year, available by postal subscription only.
The Local History Press, 3 Devonshire Promenade, Lenton, Nottingham NG7 2DS
Website: www.local-history.co.uk
Shire Books publishes inexpensive paperbacks on a wide range of history topics, including collections on Architecture and Buildings, Genealogy, Local History and Folklore.
Shire Publications, Cromwell House, Church Street, Princes Risborough, Bucks HP27 9AA
Email: shire@shirebooks.co.uk
Website: www.shirebooks.co.uk
Making History Archive
General history links
Vanessa Collingridge
Vanessa has presented science and current affairs programmes for BBC, ITV, Channel 4, Channel 5 and Discovery and has presented for BBC Radio 4 & Five Live and a regular contributor to the Daily Telegraph and the Mail on Sunday, Scotsman and Sunday Herald.
Contact Making History
Send your comments and questions for future programmes to:
PO Box 3096 Brighton
Or email the programme
Or telephone the Audience Line 08700 100 400
Making History is a Pier Production for BBC Radio 4 and is produced by Nick Patrick.
Elsewhere on bbc.co.uk
The BBC is not responsible for the content of external sites
In Our Time
Thursday, 9.00 - 9.45am, rpt 9.30pm
Melvyn Bragg explores the history of ideas.
Listen again online or download the latest programme as an mp3 file.
About the BBC | Help | Terms of Use | Privacy & Cookies Policy

redpajama_set_name: RedPajamaCommonCrawl


text:
Oyem je četvrti po veličini grad u Gabonu. Sjedište je provincije Woleu-Ntem i departmana Woleu. Nalazi se na sjeveru države, 80 km jugoistočno od tromeđe Ekvatorska Gvineja-Kamerun-Gabon i 410 km sjeveroistočno od glavnog grada, Librevillea. Leži na rijeci Ntem, koja protječe kroz Gabon i u Kamerunu se ulijeva u Atlantski ocean.

Oyem je administrativni i prometni centar okolnog poljoprivrednog područja. Kakao i kava glavni su proizvodi koji se izvoze preko kamerunskih luka Kribija i Douale. Također se proizvode guma i krumpir. U prosincu 2004. godine ovdje je izbila epidemija trbušnog tifusa, koja se kasnije proširila na veći dio države.

Prema popisu iz 1993. godine, Oyem je imao 22.404 stanovnika.

Izvori

Gradovi u Gabonu

redpajama_set_name: RedPajamaWikipedia


Opinion How biased are hiring decisions?
How biased are hiring decisions?
Unconscious bias is the invisible enemy of workplace diversity. So goes the conventional wisdom. Unconscious bias explains why the higher echelons of government and business are still so pale and male. It explains why women are still so woefully shortchanged in STEM jobs (science, technology, engineering and mathematics). It explains why we need to move even more aggressively to recruit women and minorities – as federal Science Minster Kirsty Duncan, Ontario Premier Kathleen Wynne, and countless other progressive leaders believe.
Unconscious bias is not a myth. Take the case of orchestra musicians, who used to be overwhelmingly male. When symphony orchestras moved to blind auditions – having candidates play behind a screen – the number of women who won spots shot up. Research also shows that many job recruiters favour Anglo-Saxon-sounding names on résumés over ethnic ones, even if the résumés are identical.
To tackle these problems, the federal government has launched a pilot project using name-blind recruitment for public-service jobs. It hopes the result will be a work force that is more diverse.
Australia did this too. Twenty-one hundred civil servants were asked to assess hypothetical candidates for senior jobs. Half the résumés had identifying information, and half did not. But the results were a shock. Blind hiring made things worse. It turns out that when recruiters had identifying information, they actively discriminated in favour of women and minorities – just as they'd done all along.
"Participants were 2.9 per cent more likely to shortlist female candidates and 3.2 per cent less likely to shortlist male applicants when they were identifiable," the researchers said. "Minority males were 5.8 per cent more likely to be shortlisted and minority females were 8.6 per cent more likely to be shortlisted. … The positive discrimination was strongest for Indigenous female candidates who were 22.2 per cent more likely to be shortlisted."
"We anticipated this would have a positive impact on diversity," Michael Hiscox, the Harvard academic who oversaw the project, said sheepishly. "We found the opposite." He recommended that the experiment be put on hold.
Privately, plenty of people in government and academia will tell you that hiring bias now favours women, especially in male-dominated fields. In France, researchers found, female applicants for teaching jobs in math and physics at all levels are now preferred over men. (Conversely, men have a slight edge in traditionally feminine fields such as literature.) What's going on? The researchers concluded that the examiners are probably trying to counteract gender stereotypes.
In another famous (and hotly controversial) study, psychologists Stephen Ceci and Wendy Williams submitted hundreds of résumés from hypothetical candidates applying for tenure-track positions in STEM fields. They found that the women were favoured by a ratio of 2 to 1.
No one would argue that gender discrimination does not exist. But maybe it isn't the monster problem some folks think it is. And maybe twisting ourselves into pretzels to erase imaginary biases in hiring is a poor idea.
Let's strongly encourage young women to go into science. But let's also entertain the notion that gender gaps in STEM are likely to persist – and that's okay! Let's consider the possibility that the gender gap doesn't really have very much to do with negative social messages, unconscious bias or gender stereotyping. Maybe it has to do with the fact that a lot of girls like other things more – even girls with strong math skills.
In an age when we're supposed to believe that culture explains everything, this a heretical opinion. Unfortunately, it's grounded in sound science. Social psychologist Lee Jussim, writing in Psychology Today, points out that gender differences in interests are well established in the research. There's more. Far more girls than boys are strong in both math and verbal skills.
By contrast, far more boys are strong in math alone. People who are strong in both areas are less likely to pursue STEM careers. In other words, girls have far broader options and far more interest in working with people than boys do. Thus, the gap.
So here's an idea. Before we try to fix biases in hiring, maybe we should ask if we really have a problem. Then let's try not to make it worse.
Does CSIS have a toxic workplace problem?


text:
// ----------------------------------------------------------------------------------
//
// Copyright Microsoft Corporation
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ----------------------------------------------------------------------------------

using System;
using Microsoft.Azure.Batch;
using Microsoft.Azure.Batch.Protocol;
using Microsoft.Azure.Batch.Protocol.Models;
using Microsoft.Azure.Commands.Batch.Models;
using Microsoft.WindowsAzure.Commands.ScenarioTest;
using Moq;
using System.Collections.Generic;
using System.Linq;
using System.Management.Automation;
using Xunit;
using BatchClient = Microsoft.Azure.Commands.Batch.Models.BatchClient;

namespace Microsoft.Azure.Commands.Batch.Test.Files
{
    public class GetBatchNodeFileCommandTests
    {
        private GetBatchNodeFileCommand cmdlet;
        private Mock<BatchClient> batchClientMock;
        private Mock<ICommandRuntime> commandRuntimeMock;

        public GetBatchNodeFileCommandTests()
        {
            batchClientMock = new Mock<BatchClient>();
            commandRuntimeMock = new Mock<ICommandRuntime>();
            cmdlet = new GetBatchNodeFileCommand()
            {
                CommandRuntime = commandRuntimeMock.Object,
                BatchClient = batchClientMock.Object,
            };
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void GetBatchNodeFileByTaskParametersTest()
        {
            // Setup cmdlet without required parameters
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.JobId = null;
            cmdlet.TaskId = null;
            cmdlet.Name = null;
            cmdlet.Task = null;
            cmdlet.Filter = null;

            // Build a NodeFile instead of querying the service on a List NodeFile call
            NodeFileListResponse response = BatchTestHelpers.CreateNodeFileListResponse(new string[] {cmdlet.Name});
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileListParameters, NodeFileListResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            Assert.Throws<ArgumentException>(() => cmdlet.ExecuteCmdlet());

            cmdlet.JobId = "job-1";
            cmdlet.TaskId = "task";

            // Verify no exceptions occur
            cmdlet.ExecuteCmdlet();

            cmdlet.JobId = null;
            cmdlet.TaskId = null;
            cmdlet.Task = new PSCloudTask("task", "cmd /c dir /s");

            // Verify that we don't get an argument exception. We should get an InvalidOperationException though since the task is unbound
            Assert.Throws<InvalidOperationException>(() => cmdlet.ExecuteCmdlet());
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void GetBatchNodeFileByTaskTest()
        {
            // Setup cmdlet to get a Task file by name
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.JobId = "job-1";
            cmdlet.TaskId = "task";
            cmdlet.Name = "stdout.txt";
            cmdlet.Filter = null;

            // Build a NodeFile instead of querying the service on a Get NodeFile Properties call
            NodeFileGetPropertiesResponse response = BatchTestHelpers.CreateNodeFileGetPropertiesResponse(cmdlet.Name);
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileGetPropertiesParameters, NodeFileGetPropertiesResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            // Setup the cmdlet to write pipeline output to a list that can be examined later
            List<PSNodeFile> pipeline = new List<PSNodeFile>();
            commandRuntimeMock.Setup(r => r.WriteObject(It.IsAny<PSNodeFile>())).Callback<object>(f => pipeline.Add((PSNodeFile)f));

            cmdlet.ExecuteCmdlet();

            // Verify that the cmdlet wrote the node file returned from the OM to the pipeline
            Assert.Equal(1, pipeline.Count);
            Assert.Equal(cmdlet.Name, pipeline[0].Name);
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void ListBatchNodeFilesByTaskByODataFilterTest()
        {
            // Setup cmdlet to list node files using an OData filter.
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.JobId = "job-1";
            cmdlet.TaskId = "task";
            cmdlet.Name = null;
            cmdlet.Filter = "startswith(name,'std')";

            string[] namesOfConstructedNodeFiles = new[] { "stdout.txt", "stderr.txt" };

            // Build some NodeFiles instead of querying the service on a List NodeFiles call
            NodeFileListResponse response = BatchTestHelpers.CreateNodeFileListResponse(namesOfConstructedNodeFiles);
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileListParameters, NodeFileListResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            // Setup the cmdlet to write pipeline output to a list that can be examined later
            List<PSNodeFile> pipeline = new List<PSNodeFile>();
            commandRuntimeMock.Setup(r =>
                r.WriteObject(It.IsAny<PSNodeFile>()))
                .Callback<object>(f => pipeline.Add((PSNodeFile)f));

            cmdlet.ExecuteCmdlet();

            // Verify that the cmdlet wrote the constructed node files to the pipeline
            Assert.Equal(2, pipeline.Count);
            int taskCount = 0;
            foreach (PSNodeFile f in pipeline)
            {
                Assert.True(namesOfConstructedNodeFiles.Contains(f.Name));
                taskCount++;
            }
            Assert.Equal(namesOfConstructedNodeFiles.Length, taskCount);
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void ListBatchNodeFilesByTaskWithoutFiltersTest()
        {
            // Setup cmdlet to list Task files without filters.
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.JobId = "job-1";
            cmdlet.TaskId = "task";
            cmdlet.Name = null;
            cmdlet.Filter = null;

            string[] namesOfConstructedNodeFiles = new[] { "stdout.txt", "stderr.txt", "wd" };

            // Build some NodeFiles instead of querying the service on a List NodeFiles call
            NodeFileListResponse response = BatchTestHelpers.CreateNodeFileListResponse(namesOfConstructedNodeFiles);
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileListParameters, NodeFileListResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            // Setup the cmdlet to write pipeline output to a list that can be examined later
            List<PSNodeFile> pipeline = new List<PSNodeFile>();
            commandRuntimeMock.Setup(r =>
                r.WriteObject(It.IsAny<PSNodeFile>()))
                .Callback<object>(f => pipeline.Add((PSNodeFile)f));

            cmdlet.ExecuteCmdlet();

            // Verify that the cmdlet wrote the constructed node files to the pipeline
            Assert.Equal(3, pipeline.Count);
            int taskCount = 0;
            foreach (PSNodeFile f in pipeline)
            {
                Assert.True(namesOfConstructedNodeFiles.Contains(f.Name));
                taskCount++;
            }
            Assert.Equal(namesOfConstructedNodeFiles.Length, taskCount);
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void ListNodeFilesByTaskMaxCountTest()
        {
            // Verify default max count
            Assert.Equal(Microsoft.Azure.Commands.Batch.Utils.Constants.DefaultMaxCount, cmdlet.MaxCount);

            // Setup cmdlet to list node files and a max count.
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.JobId = "job-1";
            cmdlet.TaskId = "task";
            cmdlet.Name = null;
            cmdlet.Filter = null;
            int maxCount = 2;
            cmdlet.MaxCount = maxCount;

            string[] namesOfConstructedNodeFiles = new[] { "stdout.txt", "stderr.txt", "wd" };

            // Build some NodeFiles instead of querying the service on a List NodeFiles call
            NodeFileListResponse response = BatchTestHelpers.CreateNodeFileListResponse(namesOfConstructedNodeFiles);
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileListParameters, NodeFileListResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            // Setup the cmdlet to write pipeline output to a list that can be examined later
            List<PSNodeFile> pipeline = new List<PSNodeFile>();
            commandRuntimeMock.Setup(r =>
                r.WriteObject(It.IsAny<PSNodeFile>()))
                .Callback<object>(f => pipeline.Add((PSNodeFile)f));

            cmdlet.ExecuteCmdlet();

            // Verify that the max count was respected
            Assert.Equal(maxCount, pipeline.Count);

            // Verify setting max count <= 0 doesn't return nothing
            cmdlet.MaxCount = -5;
            pipeline.Clear();
            cmdlet.ExecuteCmdlet();

            Assert.Equal(namesOfConstructedNodeFiles.Length, pipeline.Count);
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void GetBatchNodeFileByComputeNodeParametersTest()
        {
            // Setup cmdlet without required parameters
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.PoolId = null;
            cmdlet.ComputeNodeId = null;
            cmdlet.Name = null;
            cmdlet.ComputeNode = null;
            cmdlet.Filter = null;

            // Build a NodeFile instead of querying the service on a List NodeFile call
            NodeFileListResponse response = BatchTestHelpers.CreateNodeFileListResponse(new string[] {cmdlet.Name});
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileListParameters, NodeFileListResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            Assert.Throws<ArgumentException>(() => cmdlet.ExecuteCmdlet());

            cmdlet.PoolId = "pool";
            cmdlet.ComputeNodeId = "computeNode1";

            // Verify no exceptions occur
            cmdlet.ExecuteCmdlet();
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void GetBatchNodeFileByComputeNodeTest()
        {
            // Setup cmdlet to get a Task file by name
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.PoolId = "pool";
            cmdlet.ComputeNodeId = "vm1";
            cmdlet.Name = "startup\\stdout.txt";
            cmdlet.Filter = null;

            // Build a NodeFile instead of querying the service on a Get NodeFile Properties call
            NodeFileGetPropertiesResponse response = BatchTestHelpers.CreateNodeFileGetPropertiesResponse(cmdlet.Name);
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileGetPropertiesParameters, NodeFileGetPropertiesResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            // Setup the cmdlet to write pipeline output to a list that can be examined later
            List<PSNodeFile> pipeline = new List<PSNodeFile>();
            commandRuntimeMock.Setup(r => r.WriteObject(It.IsAny<PSNodeFile>())).Callback<object>(f => pipeline.Add((PSNodeFile)f));

            cmdlet.ExecuteCmdlet();

            // Verify that the cmdlet wrote the node file returned from the OM to the pipeline
            Assert.Equal(1, pipeline.Count);
            Assert.Equal(cmdlet.Name, pipeline[0].Name);
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void ListBatchNodeFilesByComputeNodeByODataFilterTest()
        {
            // Setup cmdlet to list vm files using an OData filter.
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.PoolId = "pool";
            cmdlet.ComputeNodeId = "computeNode1";
            cmdlet.Name = null;
            cmdlet.Filter = "startswith(name,'startup')";

            string[] namesOfConstructedNodeFiles = new[] { "startup\\stdout.txt", "startup\\stderr.txt" };

            // Build some NodeFiles instead of querying the service on a List NodeFiles call
            NodeFileListResponse response = BatchTestHelpers.CreateNodeFileListResponse(namesOfConstructedNodeFiles);
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileListParameters, NodeFileListResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            // Setup the cmdlet to write pipeline output to a list that can be examined later
            List<PSNodeFile> pipeline = new List<PSNodeFile>();
            commandRuntimeMock.Setup(r =>
                r.WriteObject(It.IsAny<PSNodeFile>()))
                .Callback<object>(f => pipeline.Add((PSNodeFile)f));

            cmdlet.ExecuteCmdlet();

            // Verify that the cmdlet wrote the constructed node files to the pipeline
            Assert.Equal(2, pipeline.Count);
            int taskCount = 0;
            foreach (PSNodeFile f in pipeline)
            {
                Assert.True(namesOfConstructedNodeFiles.Contains(f.Name));
                taskCount++;
            }
            Assert.Equal(namesOfConstructedNodeFiles.Length, taskCount);
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void ListBatchNodeFilesByComputeNodeWithoutFiltersTest()
        {
            // Setup cmdlet to list vm files without filters.
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.PoolId = "pool";
            cmdlet.ComputeNodeId = "computeNode1";
            cmdlet.Name = null;
            cmdlet.Filter = null;

            string[] namesOfConstructedNodeFiles = new[] { "startup", "workitems", "shared" };

            // Build some NodeFiles instead of querying the service on a List NodeFiles call
            NodeFileListResponse response = BatchTestHelpers.CreateNodeFileListResponse(namesOfConstructedNodeFiles);
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileListParameters, NodeFileListResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            // Setup the cmdlet to write pipeline output to a list that can be examined later
            List<PSNodeFile> pipeline = new List<PSNodeFile>();
            commandRuntimeMock.Setup(r =>
                r.WriteObject(It.IsAny<PSNodeFile>()))
                .Callback<object>(f => pipeline.Add((PSNodeFile)f));

            cmdlet.ExecuteCmdlet();

            // Verify that the cmdlet wrote the constructed node files to the pipeline
            Assert.Equal(3, pipeline.Count);
            int taskCount = 0;
            foreach (PSNodeFile f in pipeline)
            {
                Assert.True(namesOfConstructedNodeFiles.Contains(f.Name));
                taskCount++;
            }
            Assert.Equal(namesOfConstructedNodeFiles.Length, taskCount);
        }

        [Fact]
        [Trait(Category.AcceptanceType, Category.CheckIn)]
        public void ListNodeFilesByComputeNodeMaxCountTest()
        {
            // Verify default max count
            Assert.Equal(Microsoft.Azure.Commands.Batch.Utils.Constants.DefaultMaxCount, cmdlet.MaxCount);

            // Setup cmdlet to list vm files and a max count.
            BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys();
            cmdlet.BatchContext = context;
            cmdlet.PoolId = "pool";
            cmdlet.ComputeNodeId = "computeNode1";
            cmdlet.Name = null;
            cmdlet.Filter = null;
            int maxCount = 2;
            cmdlet.MaxCount = maxCount;

            string[] namesOfConstructedNodeFiles = new[] { "startup", "workitems", "shared" };

            // Build some NodeFiles instead of querying the service on a List NodeFiles call
            NodeFileListResponse response = BatchTestHelpers.CreateNodeFileListResponse(namesOfConstructedNodeFiles);
            RequestInterceptor interceptor = BatchTestHelpers.CreateNoOpInterceptor<NodeFileListParameters, NodeFileListResponse>(response);
            cmdlet.AdditionalBehaviors = new List<BatchClientBehavior>() { interceptor };

            // Setup the cmdlet to write pipeline output to a list that can be examined later
            List<PSNodeFile> pipeline = new List<PSNodeFile>();
            commandRuntimeMock.Setup(r =>
                r.WriteObject(It.IsAny<PSNodeFile>()))
                .Callback<object>(f => pipeline.Add((PSNodeFile)f));

            cmdlet.ExecuteCmdlet();

            // Verify that the max count was respected
            Assert.Equal(maxCount, pipeline.Count);

            // Verify setting max count <= 0 doesn't return nothing
            cmdlet.MaxCount = -5;
            pipeline.Clear();
            cmdlet.ExecuteCmdlet();

            Assert.Equal(namesOfConstructedNodeFiles.Length, pipeline.Count);
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
USA.com / West Virginia / Greenbrier County / Williamsburg, WV / 24991
24991 zip code is located close to the center of West Virginia. 24991 zip code is part of Greenbrier County. 24991 zip code has 47.62 square miles of land area and 0.02 square miles of water area. As of 2010-2014, the total 24991 zip code population is 658, which has grown 47.53% since 2000. The population growth rate is much higher than the state average rate of 2.52% and is much higher than the national average rate of 11.61%. 24991 zip code median household income is $47,429 in 2010-2014 and has grown by 54.87% since 2000. The income growth rate is higher than the state average rate of 40.01% and is much higher than the national average rate of 27.36%. 24991 zip code median house value is $72,700 in 2010-2014 and has grown by -8.32% since 2000. The house value growth rate is much lower than the state average rate of 37.64% and is much lower than the national average rate of 46.91%. As a reference, the national Consumer Price Index (CPI) inflation rate for the same period is 26.63%. On average, the public school district that covers 24991 zip code is better than the state average in quality. The 24991 zip code area code is 304.
Population Growth 47.53% since 2000, rank #100
Median House Price: $72,700 at 2010-2014—-8.32% increase since 2000, see rank
County: Greenbrier County
City: Williamsburg
Williamsburg, WV


We are open to discussing new startup ideas.
THE INTELLECTUAL PROPERTY OF THE LEGENDARY NEW YORK POST NEWSPAPER.
THE KEY TO RIGHTFUL OWNERSHIP OF THE NEW YORK POST IS OWNING THE STORIED NEWSPAPER'S INTELLECTUAL PROPERTY.
This sale can include both the Intellectual Property of the New York Post and the Corporation Holding the Intellectual Property, "New York Post Publishing Inc." if desired.
The original transaction was between News Corp, Rupert Murdoch, Fox News Corp and Towers Investors Restitution.
NOW THE INTELLECTUAL PROPERTY IS FOR SALE !
The NEW YORK POST, the 13th-oldest newspaper in the United States is a daily newspaper, originally founded by Alexander Hamilton in 1801.
Murdoch was forced to sell the New York Post to Peter Kalikow.
Later, when Kalikow declared bankruptcy, Towers Financial and Steven Hoffenberg took over control and management of the paper.
Then with the help of Gov. Mario Cuomo, Murdoch's News Corporation and it's successor, News Corp. was granted a permanent waiver from the cross ownership rules and took back operational control of the paper.
WE HAVE RECENTLY SEEN THE AMAZING GLOBAL GROWTH OF THE INTERNET and the Demise of many Print Only Newspapers.
THIS INTELLECTUAL PROPERTY WILL ENABLE THE OWNER TO PUBLISH AN ONLINE NEWSPAPER THAT HAS A WELL-KNOWN FAMILIAR NAME AND INTERNATIONAL RECOGNITION !


While wine lovers will have to wait months – if not years – to sip and savour 2018 Okanagan vintages, 2018 is poised to be a very good year right from the start for anyone looking to learn the art and science of grape growing in the region.
Three new part-time viticulture courses starting in January at Okanagan College's Penticton campus will offer students a flexible way to gain the skills and knowledge needed to work in or manage a commercial vineyard. Previously, the courses have only been available to students enrolled in the full-time Viticulture Technician diploma program.
The courses will run Jan. 3 – April 26, 2018 and span three key cornerstones of viticulture – vineyard health and nutrition, irrigation and trellis systems and vineyard operations. Students can expect a blend of classroom instruction and practical experience at local vineyards.
"Beyond having an understanding of the scientific principles of grape growing, there is a great deal of practical knowledge up-and-coming viticulturists need to have to find employment and be an asset in the vineyard," explains Rouse.
The courses were developed as part of the College's new Viticulture Technician diploma program that launched in September. The two-year pilot program was made possible with funding from both the federal and provincial governments through labour market agreements, and developed in partnership with the B.C. Wine Grape Council.
"In designing these courses, we worked closely with local vineyard managers, winemakers and proprietors to better understand the talent they need to ensure we continue to produce quality grapes in the Okanagan."
In addition to budding grape growers and future winemakers, the coursework may also be an asset to professionals in other areas of the wine industry, notes Rouse.
More information about the courses is available at www.okanagan.bc.ca/vittech.
A pair of former educators are supporting the next generation of students as they take their first steps into a formal learning environment.
Longtime advocates of Okanagan College, Allan and Evelyn Markin have pledged $2,500 to the new Little Learners Academy at the Penticton campus.
The need for the child care centre has been on the couple's radar since Allan Markin was Campus Principal at the College more than 15 years ago.
During his time working at the campus (1988-2003), Markin saw firsthand the sacrifices parents made for their children, often at the expense of pursuing their own educational goals.
"It's wonderful to see the centre develop from an idea to become a reality, and to see families in Penticton already benefitting from it," he adds.
Little Learners opened in September and is operated through a partnership between Okanagan College and the Penticton and District Community Resources Society (PDCRS). Registration is open to College students and employees, as well as families in the South Okanagan, which the Markins see as part of the College's broader role in the community.
The Markins' altruism doesn't stop at the edge of the campus. Both are well known for championing many educational, fundraising and community-based initiatives in the Penticton area. Their soft spot for youth in need has also led them to support and fundraise for a children's orphanage and art school in Russia, including travelling overseas to lend a hand in person.
According to Evelyn Markin, another passion of the couple's is cooking, which inspired them to support one of the kitchen spaces at Little Learners. As a former elementary school teacher, she understands the influence nutrition and healthy eating has on a student's ability to learn and process information.
The Markins' spirit of philanthropy has spread through their family to their daughter Allison, who also contributed to the fundraising campaign earlier this year in honour of her parents.
Two Okanagan College students are getting a remarkable opportunity to jump start their careers as commercial pilots with major Canadian airline Jazz Aviation LP (Jazz).
Each year two students in the College's Commercial Aviation program are recognized by Jazz for their educational achievements, safety and professionalism. The airline awards each winning student with a $3,000 scholarship and enrolment in the Jazz Aviation Pathways Program (Jazz APP) which guarantees the student an interview with the company upon graduation.
Miglani was presented with the Safety, Professionalism and Diversity award and his classmate Aimee Wintle received the Safety and Professionalism award. Both Miglani and Wintle excelled on their Transport Canada written exams and industry flight tests and have a high grade point average.
Jazz has been collaborating with accredited colleges nationwide for a decade and takes a deep responsibility to mentor future generations of aviators and is dedicated to hiring Canada's best and brightest youth.
Okanagan College is one of the first aviation schools in Western Canada to team up with the Jazz APP. Since the program launched at the College in early 2016, many graduating students have gone on to accept pilot positions at Jazz.
Last year OC student Chris McCann won the Jazz APP scholarship and upon graduation, successfully interviewed with the airline.
McCann is currently in Toronto and just began a two-week training program. Upon completion, he will be sent to another city to complete an additional six weeks of training before being assigned a home base.
The need for skilled Sheet Metal Workers locally and across B.C. has prompted Okanagan College to open the doors to one of its newest shops so potential students can test-drive the trade this fall.
The College is hosting a free public information night on Tuesday, Nov. 28 from 6-8 p.m. in the Atrium of the Trades Complex. Students will have a chance to explore the cutting-edge new Sheet Metal shop and can sign up to be a student for a day this fall.
"It's a great opportunity for people who are considering the trade to understand how the training works and get a sense of what the job opportunities and career paths are like," notes Oliver, who points out that sheet metal may appeal to potential students looking to stay in – or move to – the Okanagan.
"This trade sometimes flies under the radar in people's minds, but sheet metal is everywhere you look – homes, offices, schools, hospitals, restaurants – so there is endless work if you're skilled in fabricating, installing or servicing ducts or anything with a sheet metal component.
Upon completion of the 20-week Foundation program, students receive credit for Level 1 Technical Training and 350 work-based hours toward their apprenticeship. They can then choose to continue on to complete all four levels of their apprenticeship training in Kelowna, all while working and gaining on-the-job experience.
A recent labour market sweep by BC Business predicted there will be call for 900 more Sheet Metal Workers in B.C. over the next eight years. Sheet Metal Workers made the magazine's list of 50 high paying jobs in the province, earning an average of $31/hr.
The next intake of the Sheet Metal Worker Foundation program starts in April. More information about the program and the Nov. 28 information night is available at Okanagan.bc.ca/mbt.
Losing her husband and son to a tragic plane crash two years ago led Michaela Chapman to contemplate how she could honour their memory. Today, an Okanagan College student is completing his education with her help, thanks to a memorial award that Chapman established.
Pilot Brad Chapman and his eldest son, Florian, passed away in October 2015 when their Cessna 207 crashed on takeoff. In honour of her husband and son, Michaela Chapman established the Chapman Memorial Award which enables Okanagan College students in Vernon to reach their educational goals in the Aircraft Maintenance Engineer (AME-M) program.
The award was recently given to Okanagan College's Deverick Clingwall, an AME-M student based out of Vernon. Clingwall is currently finishing the final 14 weeks of training at OC's partner college, Northern Lights College in Dawson Creek.
Like Brad and Florian, Clingwall has a passion and extensive history in aviation. From age two-and-a-half, he knew he wanted to become a pilot and since then has achieved both his private and glider pilot licenses as well as float endorsements – all before age 17. Clingwall is now currently working on his commercial pilot's license while completing the AME-M program.
"My career goal is to be a commercial pilot, which is why I chose to enrol in the College's AME-M diploma because like any vehicle or machine, if you're going to be operating it, you should know what makes it tick," says Clingwall.
Clingwall recently represented the College and placed fourth in the Aircraft Maintenance Competition at Skills BC. He is active in the Royal Canadian Air Cadets, volunteers with the bi-annual Salmon Arm airshow and is involved in the Vernon and Salmon Arm flying clubs.
Every year the Okanagan College Foundation distributes awards to students like Clingwall. The Foundation will present 44 awards totaling $38,150 to students at the College's Vernon campus in the upcoming Student Awards Reception ceremony on Nov. 15, 2017.
An internationally-recognized software development company based out of Kelowna is so anxious to find coding talent that it is putting its own money on the line in hopes of attracting students to a new College program.
Acro Media is one of North America's premier users of Drupal, an open source content management system (CMS) that is at the heart of seven million websites globally. Okanagan College and Acro Media have worked together to develop a new Drupal Web Developer certificate that will be offered weekday evenings beginning Jan. 8.
To help draw out talent for the program, Acro Media is hosting a coding contest that will award one lucky applicant a $4,000 tuition award toward the program.
There is a serious need for software developers in the Okanagan region and Shae Inglis, CEO of Acro Media in Kelowna, is one of the people who knows first-hand the need for Drupal developers. In fact, he is guaranteeing everyone who successfully completes the Okanagan College certificate a job interview upon graduation.
"We need great candidates for interesting and exciting CMS work in Kelowna and are looking forward to hiring graduates from this program," says Inglis. "In fact, Acro Media is going beyond just supporting the OC program. We are also sponsoring a contest to provide a $4,000 tuition award to a talented student who submits the best code sample before Dec. 15 (for the January intake of the course) and/or April 6 (for the May intake)." Contest details are available at okanagan.bc.ca/drupal.
Taught by industry experts, this 240-hour certificate will be offered at the Okanagan Innovation Centre in downtown Kelowna Mondays through Thursdays from 4:30 to 9:30 p.m. Students applying for the Drupal Web Developer certificate are financial aid and student loan eligible.
For more information visit okanagan.bc.ca/drupal or call 1-888-638-0058 to learn more about qualifying for this certificate. You can also find out more by visiting Okanagan College's Career Fair on Nov. 5 at the Kelowna campus – Acro Media and College representatives will be on hand to answer questions.
To write, or not to write? That is the question Okanagan College students and Grade 11 and 12 secondary students across the valley will be asking themselves in anticipation of the 8th Annual 3-Hour Short Story Contest.
Students will be spinning stories, telling tales and mastering metaphors in a timed short story writing contest on Nov. 18, presented by Okanagan College's English department. Participants will be challenged to go out of their comfort zone to write and edit an original story in just three hours.
Pitted against the clock, students will also be required to weave a mystery phrase into their story, revealed at the start of the contest. Participants in previous years were required to incorporate phrases such as "under the weather," "downy mustache" and "soggy bread" into their story.
Writers will be competing for glory and prize money towards tuition. A judging panel, made up from the College's English department, will review stories and select four regional winners. Each winner will receive a $250 tuition credit and an overall grand prize winner will take home an additional $250 tuition credit and have their story published in a limited fine-press edition by the Kalamalka Press.
Registration is open until midnight on Friday, Nov. 17. The contest is free to enter and takes place from 1 – 4 p.m. at Okanagan College campuses in Salmon Arm, Penticton and Vernon. The Kelowna contest will be held at KSS. For more details, complete contest rules and registration, please visit okanagan.bc.ca/3hourwriting.
Two Okanagan College deans are combining their perspectives on preparing for the digital revolution at the upcoming Kelowna Chamber of Commerce luncheon.
Bill Gillett, the College's new Dean of the Okanagan School of Business will present the keynote address to a chamber audience on Friday, Nov. 3, giving the community a glimpse of technologies to come and how to prepare for success.
Gillett will be joined by Phil Ashman, the College's new Central Okanagan Regional Dean, who sees the disruptive shifts in today's world akin to the industrial revolution.
The Preparing for Digital Revolution luncheon event quickly sold out and there is now a waiting list for tickets.
Those interested in attending can register to be added to the waitlist at kelownachamber.org.
A global shortage of commercial pilots, which made headlines in Kelowna earlier this month after local flights were cancelled, has created an even more urgent need for industry professionals to spread awareness of the opportunities that exist in aviation.
Southern Interior Flight Centre (SIFC) will be doing just that as one of more than 50 employers showcasing careers and educational pathways at Okanagan College's Career Fair on Sunday, Nov. 5.
Representatives from Southern Interior Flight Centre, Okanagan College's long term aviation training partner, will be at the College's Kelowna campus all day on Sunday to spread their passion for aviation with would-be pilots.
Students who take the commercial aviation program, which is a partnership between SIFC and Okanagan College, earn a Transport Canada licence, making them highly sought-after around the world.
Vanderaegen encourages anyone who has an interest in pursuing a career in aviation to attend Career Fair on Sunday. The College's campus facilities will be open, including the program's flight simulator.


text:
<?php
defined('BASEPATH')or exit('No direct script access allowed');

class credproy extends CI_controller{

	public function index(){

		    $this->load->view('header2');
		    $this->load->view('proyectista/vmenuproy');
			$this->load->view('proyectista/vRedactarProyecto');
			$this->load->view('footer');

	}
}


I can't find an online video of the session yet but the transcript is up here and has some interesting pointers around a few future areas.
Please note that I'm not attempting to add commentary or interpretation here, I'm just quoting the public press release and suggesting that it's very worth reading.
"We're obviously hard at work on the next version of Windows. Windows 7 PCs will sell over 350 million units this year. We've done a lot in Windows 7 to improve customer satisfaction. We have a brand new user interface. We've added touch, and ink, and speech. And yet, as we look forward to the next generation of Windows systems, which will come out next year, there's a whole lot more coming. As we progress through the year, you ought to expect to hear a lot about Windows 8. Windows 8 slates, tablets, PCs, a variety of different form factors.
The browser is an area where we've been very active. Internet Explorer 9 is the fastest browser around because of the way that we've married it to Windows systems and allow essentially full exploitation of the hardware to have the fastest and most beautiful Web on the planet run on Windows systems.
Very interesting stuff – I'll link to the video as/when I find it.


Join us for recreational boater courses all summer long in Wickford, Rhode Island. No experience? No problem.
Come experience an hour, an afternoon, or a day on the water with an experienced captain to show the way.


Whatever you're looking for in a holiday, Great National Hotels has something for you. Check out our scenic locations and get inspired to explore Ireland.
While Ireland may be a small island, it is certainly full of heart and tradition. Choose to stay in one of our charming hotels and begin your journey along one of Ireland's famous branded regions.
Created by Fáilte Ireland & Tourism Ireland, these regions showcase Ireland in all of its beauty through its endless discovery points.
Enjoy a bird's-eye view from Ireland's most visited tourist attraction the Cliffs of Moher or kiss the Blarney Stone. The longest defined coastal drive in the world, our Wild Atlantic Way, allows you to engage in adventure, heritage and folklore... The choice is yours!
Unlock over 5,000 years of history buried in ancient landmarks with a visit to Newgrange Passage Tomb. If story telling is your desire, let your imagination soar as you hear the legendary tales from the Waterford Museum of Treasures.
Explore Ireland's green Hidden Heartlands. Here, activity and adventure are found in the most unique places, showcased by the iconic River Shannon, Lough Derg and Beara Breifne Way.
Looking for adventures around Ireland? Go exploring with the locals and discover the variety of landscapes and walking trails that our island has to offer.


text:
Listen to the article
TikTok Chief Executive Shou Zi Chew is scheduled to meet with European Union officials and regulators in Brussels next week, as the popular app faces heightened scrutiny in Washington over its Chinese ownership.
Mr. Chew is scheduled to meet with Margrethe Vestager, the executive vice president of the EU's executive arm and its top competition regulator, on Tuesday. He also plans to meet Justice Commissioner Didier Reynders, Home Affairs Commissioner Ylva Johansson and Vice President for Values and Transparency Vera Jourova.
A spokeswoman for Ms. Vestager said her meeting's objective was to review how the company was preparing to comply with new EU regulations governing internet safety and fair competition among tech companies that take effect this year. The spokeswoman said that the EU's executive arm was planning to meet with other tech companies, too. She added that TikTok requested the meeting with Ms. Vestager.
Asked about the coming meetings, a spokesman for the EU's executive arm said Friday that the EU is generally concerned about the protection of personal data on TikTok as well as other apps. A TikTok spokesman declined to comment.
The EU has played an outsize role in pushing new regulation related to the technology industry. Brussels has drafted and enforced rules that, while applicable in Europe, have been mirrored by other jurisdictions. Given the EU's large market, meanwhile, many tech companies have altered their global operations to align with new European rules.
Over the years, Brussels has targeted Silicon Valley giants such as Facebook owner Meta Platforms Inc., Apple Inc. and Amazon.com Inc. over issues as varied as privacy, anticompetition and taxes.
TikTok has also faced European scrutiny. A European consumer organization in 2021 alleged TikTok was breaking consumer rules, including failing to protect children from inappropriate content. That triggered a dialogue between EU and national consumer-protection authorities and TikTok. Mr. Reynders said last year that TikTok addressed the concerns, but that the EU would continue to monitor the situation.
Brussels has been less hawkish on TikTok than Washington. Some Biden administration officials are pushing to separate TikTok from its owner, Beijing-based ByteDance Ltd., via a forced sale to an American company. The federal government recently banned TikTok on government-owned devices, and a bipartisan group of Congress members have introduced a broader bill to ban TikTok from operating in the U.S.
U.S. officials say the Chinese government could order TikTok to hand over data on its tens of millions of American users, or to influence the videos they see. TikTok has said it would refuse such a request. Beijing said the U.S. is spreading misinformation about TikTok.


C is a general-purpose computer programming language initially developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs. Its design provides constructs that map efficiently to typical machine instructions, and therefore it has found lasting use in applications that had formerly been coded in assembly language, most notably system software like the Unix operating system.
[C has] the power of assembly language and the convenience of … assembly language.
In other words, the only way to do good, efficient, and system-level and portable C++ ends up to limit yourself to all the things that are basically available in C. And limiting your project to C means that people don't screw that up, and also means that you get a lot of programmers that do actually understand low-level issues and don't screw things up with any idiotic "object model" crap.
Linus Torvalds Torvalds, Linus (2007-09-06). Message to gmane.comp.version-control.git mailing list. Retrieved on 2014-08-06.
It has nothing to do with dinosaurs. Good taste doesn't go out of style.
This page was last edited on 3 April 2017, at 10:38.


Many new products presumed to be privately beneficial to the poor have a high price elasticity of demand and ultimately zero take-up rate at market price. This has led governments and donors to provide subsidies to increase take-up, with the concern of trying to limit their cost. In this study, we use data from a two-year field experiment in rural China to define the optimum subsidy scheme that can insure a given take-up for a new weather insurance for rice producers. We build a model that includes the forces that are known to be determinants of insurance demand, provide reduced form confirmation of their importance, validate the dynamic model with out-of sample predictions, and use it to conduct policy simulations. Results show that the optimum current subsidy necessary to achieve a desired take-up rate depends on both past subsidy levels and past payout rates, implying that subsidy levels should vary locally year-to-year.
In the first year, we randomized subsidy policies at the village level by offering either a partial subsidy of 70% of the actuarially fair price or a full subsidy. The product was first offered with as 70% subsidy, and two days later 62 randomly selected villages were surprised with an announcement that the insurance will be offered for free to all, regardless of whether they had agreed to buy it or not at the initial price. These villages are called the "free sample," while the remaining 70% subsidy villages are called the "non-free sample."
In the second year, we randomly assigned eight prices to the product at the household level, with subsidies ranging from 40% to 90%. This creates eight different price treatment subgroups. Except for the price, everything else remained the same in the insurance contract as in the first year. Only two or three different prices were assigned within each village.
the second-year information session, we also informed farmers of the list of people in the village who were insured and of the payouts made during the first year at both the household and village level.
negative erosion effect if a premium has been paid and either no shock occurred or a shock occurred without a corresponding payout, (2) the effect of observing network payout experiences, which follows the same process of positive and negative effects in relation to stochastic payouts, and (3) a habit forming effect, with past use of the product influencing current demand. We model how these channels would be impacted by subsidies through three separate effects: (1) a scope effect where subsidies enhance take-up and hence the opportunity of witnessing payouts, (2) an attention effect where a lower insurance cost for the individual leads to lower attention given to information generated by payout experiences, and (3) a price anchoring effect, where low past prices reduce current willingness to pay.
Cai, Jing, Alain de Janvry, and Elisabeth Sadoulet. "Subsidy Policies and Insurance Demand." Working Paper, September 2016.


Undoubtedly we have a problem in this country with cisgender white men having greater employment opportunities than women and minorities. However, implementing positive discrimination is not the right way to go about dealing with this issue.
Although positive discrimination may bolster the careers of a handful of people from less privileged positions, it does so at the expense of perpetuating the belief that cisgender white men are the preferable employee. If employers need rules and incentives to take on women and minorities, that encourages the idea that they aren't the best person for the job.
Rather than jostling a couple of people around on the surface, we need to tackle the fundamental causes of the problem: institutionalised discrimination. This includes racism, patriarchy, homophobia and ableism among so much others.
By this I mean educating employers about the causes of their implicit biases and breaking down the myths that perpetuate them. This can happen directly through the work of charities and government initiatives, but it can also start with the national curriculum. It's also important that we ensure businesses are equipped to cater to the needs of all staff including disabled, mentally ill and neurodivergent individuals.
Education is also necessary to bring underachieving demographics – such as African-Caribbean boys – up to the same level of academic achievement as other young people, in order to improve their job prospects. Much more work needs to go into identifying the exact causes behind these disparities and tackling them.
In the case of women and girls, there continues to be a distinct shortage of those entering high-earning and influential careers across the board in business, the arts, sciences and politics. Much of this is the result of misogynistic ideas of what jobs are suitable for women, which girls absorb at a young age. It is evident in the very language we use how these stereotypes persist: low-earning jobs like waitress, lolly-pop lady and dinner lady we subconsciously apply female pronouns to; while for professions such as fireman, policeman and businessman we are drawn to male pronouns.
As a result of this gendered view of career prospects, girls grow up with a skewed idea of what opportunities are available to them and tailor their ambitions accordingly.
By addressing these fundamental problems behind employment discrimination, women and minorities will be in a stronger position to develop their careers without having to rely on the corrupt, and frankly insulting, systems of hand-outs and demographics quotas that are becoming increasingly prevalent in the UK.
To argue in favour of positive discrimination is to deny the logic that the best candidate for any job should be given that job. To me, that is completely absurd.
Positive discrimination also provides ammunition for those who try to paint feminism as anti-male or LGBT+ advocacy as a demand for special treatment. As a feminist and an LGBT+ advocate I am disgusted at how these important causes have been derailed in recent years by this kind of critique, which is almost always unwarranted. Advocating positive discrimination however, directly invites this kind of criticism.
It is possible to increase opportunities for women and minorities without taking away from men who, although they may have privilege on their side, have still worked extremely hard to get to the place they are today.
There is a reason positive discrimination has the word "discrimination" in it, and for that reason it cannot possibly be considered fair or remotely beneficial to obtaining equality.
It seems extremely clear to me that positive discrimination is not only warranted, it is the only conceivable way to combat the massive inequality in employment we currently face.
True, it would not mean we are truly "equal"- there would be certain groups upon whom it would be made easier. However, the reasoning for this cannot be ignored- these groups need to have life made easier for them because the groups who have monopolised the world of employment until now are the groups who, by their privilege and the ease of their life, inadvertently put them in this disadvantaged position in the first place.
Men in their 30s in the United Kingdom outearn women by, on average, £8775 a year. This cannot be seen as an acceptable pay gap, or one that comes down to factors other than discrimination: women just as capable for jobs are not considered.
Thankfully, in younger generations this is being reversed to some extent, with women in their 20s outearning men by, on average, £1,111 a year. I would argue that the reason for this is an increased reliance on positive discrimination in employment.
Discrimination doesn't have to be a bad word. By placing people of historically disadvantaged groups in employment over privileged people going for the same job, we can reverse the social conditioning that has led to their disadvantaged positions and encourage more people in similar situations to aim to achieve.
Right now there is a kind of stigma around helping people. It is believed by many people that to have a decent life you must struggle, and any help given to you by anyone is cheating. I hope we can reverse this- helping people who are not in a position to help themselves is our responsibility as citizens, and absolutely the right thing to do.
This applies perfectly to the case of positive discrimination in employment- people need help, and by giving it to them we will reduce the number of people who need the same help in the future, hopefully kickstarting a truly equal future society by making things very slightly harder for those in a privileged and advantaged position currently.
Frankly, I have little empathy for those who see their jobs as being "stolen" from them due to positive discrimination as they are being taken by people who should have been considered in the first place. Diversity quotas and equal opportunity employment are essential for keeping discrimination in check: there is absolutely no doubt in my mind that qualified candidates for every job exist outside of the group of white males generally hired for every single one of them, and to continue to allow this to go unchallenged is insane to me.
If you believe the status quo is fine as is, that's okay. I would have to disagree, however, as discrimination can be seen everywhere.
It exists in Universities, in government, in schools, banks and charities. Certain groups are seen as respectable, and others are dismissed on sight. This is not the way employment should work.
If we are going to tell people to "earn their way" in the world, it is absolutely vital that we first actually give them the tools to do so: in the case of so many groups, the only way this can be ensured, due to the currently discriminatory work climate, is by positive discrimination.
Relieving one's self is a human right!


text:
Anita Wagner (née Husarić; ; born 27 June 1994) is a Bosnian tennis player.

To date, she has won 13 doubles titles on the ITF Circuit. On 16 December 2013, she reached her best singles ranking of world No. 633. On 19 June 2017, she peaked at No. 255 in the WTA doubles rankings.

Playing for Bosnia and Herzegovina Fed Cup team, Husarić has a win–loss record of 9–28, as of November 2022.

In January 2022, she changed her name to Anita Wagner.

ITF Circuit finals

Doubles: 34 (13 titles, 21 runner-ups)

References

External links

1994 births
Living people
Sportspeople from Tuzla
Bosnia and Herzegovina female tennis players


text:
THE KING AND I: The Quintessential Director for the Quintessential Production
It's not every day that an exquisite, distinguished Broadway revival of a classic musical comes around. By all accounts, Lincoln Center Theater's production of Rodgers & Hammerstein's The King and I – headed to the Aronoff Stage in April – is one of those.
If you are reviving a classic musical on Broadway these days and you want it to be perfectly done, you'd be hard pressed to find a better director to put at the helm than Bartlett Sher. Sher is one of those artists who seems to hit it out of the park on every project, and he's particularly known for creating revivals that combine jaw-droppingly gorgeous sets and costumes with immensely talented performers, lush orchestrations and a keen eye for efficient and heartfelt storytelling. Sher has directed two superb, critically-lauded Broadway revivals in recent years – South Pacific (which played the Aronoff in 2010) and Fiddler on the Roof – and he'll helm a top-shelf revival of My Fair Lady for Lincoln Center in 2018.
Lincoln Center artistic chief Andre Bishop is a true fan of Sher's magic touch with revivals. As he told the New York Times, "Bart has this very interesting ability to zero in on the themes of an old musical that seem to apply to today. He has his own spin, yet clearly honors the original intention, which is why people like him so much."
Sher and his frequent collaborators Catherine Zuber (costumes) and Michael Yeargen (sets) had a unique challenge when looking to stage this version of The King and I. The two central characters in the musical are based on real people – King Mongkut of Siam and Anna Leonowens – and the story has a specific historical time and place – Siam (now Thailand) in the 1860s. The threat of western imperialism casts a shadow upon King Mongkut's country, and he is challenged to find a way to modernize Siam while honoring its traditions. To that end, the King hires Anna Leonowens, an Englishwoman, to provide a western education for his children and wives.
Sher, Zuber and Yeargen sought to take a fresh look at this story and see what new insights they could pull out, much like the musical's original writing team looked at their source material to see what dramatic interest there would be. Soon after the enormous success of their musical South Pacific, Richard Rodgers and Oscar Hammerstein's wives enthusiastically recommended they consider Leonowens' story, as told in the best-selling 1944 novel Anna and the King of Siam by Margaret Landon, as possible material for a new musical. Rodgers and Hammerstein resisted. Was there a dramatically interesting story buried within the historical facts and details of life at the court of Siam? It wasn't until they saw the film adaptation, a Hollywood hit starring Rex Harrison and Irene Dunne, that they came around. The compelling relationship between the King and Anna, which had been drawn out of Landon's novel so effectively by the screenwriters, excited them. When the prominent English actress Gertrude Lawrence appealed to Rodgers and Hammerstein to write a musical version she could star in, they finally agreed, creating a musical play whose stage and screen versions would go on to win numerous awards and become one of the most cherished works in musical theater.
So then again in 2015, the new creative team led by Sher set out to figure out what they wanted to draw out of both the original musical as well as the real life stories of these people. "Everyone who creates a work of art based on a real life has to pick and choose what aspect of the core story he or she wants to use," says Sher.
When creating the set, the team avoided a literal re-creation of the Royal Palace of Siam, and instead drew upon historical photos of Buddhist temples made of teakwood and gold. They took care to accurately portray the parts of the palace designated for women. "The King built specific mansions within his palace," says Yeargen. "Like a suburb, almost, with these huge Western-style houses for his wives."
They also wanted to make sure the characters and cultures were thoughtfully fleshed out. "I think we all approached this with a respect for Thai culture and an understanding that it has its own set of rules and traditions," says Zuber. "The King is a very complex, interesting man, but not evil. He's very charming, very open to Western ideas, as demonstrated by the fact that he had Anna come tutor his children."
The team also had to take a second look at how Rodgers and Hammerstein, with their 1950s sensibilities, portrayed race and culture. "There is one number called 'Western People Funny,'" says Sher, "which, in the traditional sense, is an extremely stereotyped song of the Thai, in their naiveté, trying on Western dress and talking – ha, ha, ha – about how Western people are so funny. Whereas now, I think all you have to do is flip it, and suddenly you look at it from the point of view of the dominant culture instead of the subordinate culture, which is the way Rodgers and Hammerstein looked at it as the "superior" Westerners. If you flip it, 'Western People Funny' becomes ironic."
This re-examining of the original bears fruit, says Sher. "The more distance you get on the original production, the deeper you can look. History and time give us a chance to learn more about what [Rodgers and Hammerstein] were beginning to understand in 1951. So the benefit of a revival is that we can actually not only stand in awe and incredible devotion to what Rodgers and Hammerstein were able to accomplish way ahead of their time, but perhaps pull even more out of the piece than people had ever understood could be there. And, at the same time, keep it entertaining and buoyant and beautiful."
"It's like having one foot in the past as deeply as we can, one foot in the present, and our eyes looking out as far ahead as we can to see how it resonates."
Two worlds collide in the Lincoln Center Theater production of this "breathtaking and exquisite" (The New York Times) musical. One of Rodgers & Hammerstein's finest works, The King and I boasts a score that features such beloved classics as "Getting To Know You," "I Whistle a Happy Tune," "Hello Young Lovers," "Shall We Dance" and "Something Wonderful." Set in 1860's Bangkok, the musical tells the story of the unconventional and tempestuous relationship that develops between the King of Siam and Anna Leonowens, a British schoolteacher whom the modernist King brings to Siam to teach his many wives and children. Winner of the 2015 Tony Award® for Best Musical Revival, The King and I is "too beautiful to miss" (New York Magazine).
The King and I plays the Aronoff Center April 10 – 22, 2018. For more information, visit BroadwayInCincinnati.com.
1718 Season, creative team, the king and i
Broadway in Cincinnati announces 18/19 season lineup
The 5-1-3 with CHICAGO's Mama Morton, Jennifer Fouché


Information You Provide – We and our service providers collect information that you provide when you use the Site, including when you use the Site contact form, sign up for our newsletter, or otherwise contact us with a question, comment, or request.
Information Automatically Collected From You – We and our service providers, may automatically collect certain technical information from your computer or mobile device when you use the Site, such as your Internet Protocol address, your browser type, your operating system, the pages you view on the Site, the pages you view immediately before and after you access the Site, and the search terms you enter on the Site. This information allows us to improve the Site and the services we provide, and enables us to evaluate usage of the Site and to compile statistical reports on Site activity, and to facilitate the delivery of information on the Site or other websites.
We also may combine or aggregate any of the information we collect through the Site or elsewhere, including from offline data sources, for any of these purposes. In addition, other parties may collect information about a visitor's online activities over time and across different websites following a visit to our Site.
Information collected through the Site will be processed in and subject to the laws of the United States, which may not provide the same level protection for your personal information as your home country, and may be available to the United States government or its agencies under a lawful order made in the United States. In addition, we may transfer your information outside the United States to our affiliates, business partners, and service providers located in other countries. By using the Site, you consent to such transfer to, and processing in, the United States and these other countries. By using the Site, you consent to the sole and exclusive jurisdiction of the United States for any claim under this Policy, and agree that the laws of the United States will govern any and all claims.
We endeavor to maintain reasonable administrative, technical, and physical safeguards designed to safeguard the information collected by the Site. However, no information system can be 100% secure, so we cannot guarantee the absolute security of your information. Moreover, we are not responsible for the security of information you transmit to the Site over networks that we do not control, including the Internet and wireless networks.
Certain of our emails may contain an option to opt-out of future emails.
To the extent third parties may collect information online, you may also be able to exercise some choices regarding their collection of information across third party websites via certain third party tools.