text:
/* $Xorg: DPMS.c,v 1.3 2000/08/17 19:45:50 cpqbld Exp $ */
/*****************************************************************

Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software.

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of Digital Equipment Corporation
shall not be used in advertising or otherwise to promote the sale, use or other
dealings in this Software without prior written authorization from Digital
Equipment Corporation.

******************************************************************/
/* $XFree86: xc/lib/Xext/DPMS.c,v 3.5 2002/10/16 00:37:27 dawes Exp $ */

/*
 * HISTORY
 */

#define NEED_REPLIES
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/Xlibint.h>
#include <X11/extensions/dpms.h>
#include <X11/extensions/dpmsstr.h>
#include <X11/extensions/Xext.h>
#include <X11/extensions/extutil.h>
#include <stdio.h>

static XExtensionInfo _dpms_info_data;
static XExtensionInfo *dpms_info = &_dpms_info_data;
static char *dpms_extension_name = DPMSExtensionName;

#define DPMSCheckExtension(dpy,i,val) \
  XextCheckExtension (dpy, i, dpms_extension_name, val)

/*****************************************************************************
 *                                                                           *
 *                         private utility routines                          *
 *                                                                           *
 *****************************************************************************/

static int close_display(Display *dpy, XExtCodes *codes);
static /* const */ XExtensionHooks dpms_extension_hooks = {
    NULL,                               /* create_gc */
    NULL,                               /* copy_gc */
    NULL,                               /* flush_gc */
    NULL,                               /* free_gc */
    NULL,                               /* create_font */
    NULL,                               /* free_font */
    close_display,                      /* close_display */
    NULL,                               /* wire_to_event */
    NULL,                               /* event_to_wire */
    NULL,                               /* error */
    NULL                                /* error_string */
};

static XEXT_GENERATE_FIND_DISPLAY (find_display, dpms_info,
				   dpms_extension_name,
                                   &dpms_extension_hooks, DPMSNumberEvents,
                                   NULL)

static XEXT_GENERATE_CLOSE_DISPLAY (close_display, dpms_info)

/*****************************************************************************
 *                                                                           *
 *                  public routines                                          *
 *                                                                           *
 *****************************************************************************/

Bool
DPMSQueryExtension (Display *dpy, int *event_basep, int *error_basep)
{
    XExtDisplayInfo *info = find_display (dpy);

    if (XextHasExtension(info)) {
	*event_basep = info->codes->first_event;
	*error_basep = info->codes->first_error;
	return True;
    } else {
	return False;
    }
}

Status
DPMSGetVersion(Display *dpy, int *major_versionp, int *minor_versionp)
{
    XExtDisplayInfo *info = find_display (dpy);
    xDPMSGetVersionReply	    rep;
    register xDPMSGetVersionReq  *req;

    DPMSCheckExtension (dpy, info, 0);

    LockDisplay (dpy);
    GetReq (DPMSGetVersion, req);
    req->reqType = info->codes->major_opcode;
    req->dpmsReqType = X_DPMSGetVersion;
    if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
	UnlockDisplay (dpy);
	SyncHandle ();
	return 0;
    }
    *major_versionp = rep.majorVersion;
    *minor_versionp = rep.minorVersion;
    UnlockDisplay (dpy);
    SyncHandle ();
    return 1;
}

Bool
DPMSCapable(Display *dpy)
{
    XExtDisplayInfo *info = find_display (dpy);
    register xDPMSCapableReq *req;
    xDPMSCapableReply rep;

    DPMSCheckExtension (dpy, info, 0);

    LockDisplay(dpy);
    GetReq(DPMSCapable, req);
    req->reqType = info->codes->major_opcode;
    req->dpmsReqType = X_DPMSCapable;

    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
	UnlockDisplay(dpy);
	SyncHandle();
	return False;
    }
    UnlockDisplay(dpy);
    SyncHandle();
    return rep.capable;
}

Status
DPMSSetTimeouts(Display *dpy, CARD16 standby, CARD16 suspend, CARD16 off)
{
    XExtDisplayInfo *info = find_display (dpy);
    register xDPMSSetTimeoutsReq *req;

    if ((off != 0)&&(off < suspend))
    {
	return BadValue;
    }
    if ((suspend != 0)&&(suspend < standby))
    {
	return BadValue;
    }

    DPMSCheckExtension (dpy, info, 0);
    LockDisplay(dpy);
    GetReq(DPMSSetTimeouts, req);
    req->reqType = info->codes->major_opcode;
    req->dpmsReqType = X_DPMSSetTimeouts;
    req->standby = standby;
    req->suspend = suspend;
    req->off = off;

    UnlockDisplay(dpy);
    SyncHandle();
    return 1;
}

Bool
DPMSGetTimeouts(Display *dpy, CARD16 *standby, CARD16 *suspend, CARD16 *off)
{
    XExtDisplayInfo *info = find_display (dpy);
    register xDPMSGetTimeoutsReq *req;
    xDPMSGetTimeoutsReply rep;

    DPMSCheckExtension (dpy, info, 0);

    LockDisplay(dpy);
    GetReq(DPMSGetTimeouts, req);
    req->reqType = info->codes->major_opcode;
    req->dpmsReqType = X_DPMSGetTimeouts;

    if (!_XReply(dpy, (xReply *)&rep, 0, xTrue)) {
	UnlockDisplay(dpy);
	SyncHandle();
	return False;
    }
    UnlockDisplay(dpy);
    SyncHandle();
    *standby = rep.standby;
    *suspend = rep.suspend;
    *off = rep.off;
    return 1;
}

Status
DPMSEnable(Display *dpy)
{
    XExtDisplayInfo *info = find_display (dpy);
    register xDPMSEnableReq *req;

    DPMSCheckExtension (dpy, info, 0);
    LockDisplay(dpy);
    GetReq(DPMSEnable, req);
    req->reqType = info->codes->major_opcode;
    req->dpmsReqType = X_DPMSEnable;

    UnlockDisplay(dpy);
    SyncHandle();
    return 1;
}

Status
DPMSDisable(Display *dpy)
{
    XExtDisplayInfo *info = find_display (dpy);
    register xDPMSDisableReq *req;

    DPMSCheckExtension (dpy, info, 0);
    LockDisplay(dpy);
    GetReq(DPMSDisable, req);
    req->reqType = info->codes->major_opcode;
    req->dpmsReqType = X_DPMSDisable;

    UnlockDisplay(dpy);
    SyncHandle();
    return 1;
}

Status
DPMSForceLevel(Display *dpy, CARD16 level)
{
    XExtDisplayInfo *info = find_display (dpy);
    register xDPMSForceLevelReq *req;

    DPMSCheckExtension (dpy, info, 0);

    if ((level != DPMSModeOn) &&
	(level != DPMSModeStandby) &&
	(level != DPMSModeSuspend) &&
	(level != DPMSModeOff))
	return BadValue;

    LockDisplay(dpy);
    GetReq(DPMSForceLevel, req);
    req->reqType = info->codes->major_opcode;
    req->dpmsReqType = X_DPMSForceLevel;
    req->level = level;

    UnlockDisplay(dpy);
    SyncHandle();
    return 1;
}

Status
DPMSInfo(Display *dpy, CARD16 *power_level, BOOL *state)
{
    XExtDisplayInfo *info = find_display (dpy);
    register xDPMSInfoReq *req;
    xDPMSInfoReply rep;

    DPMSCheckExtension (dpy, info, 0);

    LockDisplay(dpy);
    GetReq(DPMSInfo, req);
    req->reqType = info->codes->major_opcode;
    req->dpmsReqType = X_DPMSInfo;

    if (!_XReply(dpy, (xReply *)&rep, 0, xTrue)) {
	UnlockDisplay(dpy);
	SyncHandle();
	return False;
    }
    UnlockDisplay(dpy);
    SyncHandle();
    *power_level = rep.power_level;
    *state = rep.state;
    return 1;
}


Here's a selection of classic time related issues that teachers face. If you're interested, scroll down for my response.
1. The biggest challenges to teachers in terms of time management are grading/evaluations, academic commitments beyond the classroom including serving on committees, planning bodies etc.,and planning for courses.
2. Common causes of distraction for me include conversations with colleagues that don't reduce problems or workload but do provide temporary relief or stress reduction.
3. I know teachers can do their jobs without experiencing excessive stress but I am still waiting to find out how! I've spoken and worked with others who are not completely stressed out. Generally their time management skills are superb and they have been teaching enough years to have a lot of time savers in the classroom. They also ask for help when needed and don't reinvent the wheel.
5. I have two planning periods in the day so in the first period I generally have meetings, make phone calls/check emails, make copies or visit the office for administrative issues. During the second planning time I map out lessons, do internet research and complete grading.
These are typical challenges that teachers have to face - how can you get everything done?
You can't. Or, more accurately, you shouldn't. Most of the time, it is counter productive to strive for perfection in your work. That mindset, whilst sounding laudable, is a recipe for stress and burnout.
Obviously there are times when you have to achieve 100%. But the trick is to know when those times are - and they are far less frequent than we think.
Instead, decide how well you want to get something done.
For example, how much research will you do online? How thoroughly do you need to grade each paper? Which emails deserve your attention and which can be deleted? How long will you allow that conversation to last?
The principle to live and work by is to aim for what Swedish people refer to as "lagom" meaning "just the right amount".
Sure, it takes practice. But it begins with awareness. Don't feel you have to be 100% perfect. Apply the 80-20 rule and do the things that matter most to the degree that they need to be done.
This principle can be applied to anything you do.


text:
package org.apache.hyracks.storage.am.lsm.btree.impls;

import java.util.LinkedList;
import java.util.List;

import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
import org.apache.hyracks.storage.am.btree.api.IBTreeLeafFrame;
import org.apache.hyracks.storage.am.btree.impls.BTree;
import org.apache.hyracks.storage.am.btree.impls.BTreeOpContext;
import org.apache.hyracks.storage.am.common.api.IModificationOperationCallback;
import org.apache.hyracks.storage.am.common.api.ISearchOperationCallback;
import org.apache.hyracks.storage.am.common.api.ISearchPredicate;
import org.apache.hyracks.storage.am.common.api.ITreeIndexFrameFactory;
import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallback;
import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation;
import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator;
import org.apache.hyracks.storage.am.common.tuples.PermutingTupleReference;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMComponent;
import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexOperationContext;

public final class LSMBTreeOpContext implements ILSMIndexOperationContext {

    public ITreeIndexFrameFactory insertLeafFrameFactory;
    public ITreeIndexFrameFactory deleteLeafFrameFactory;
    public IBTreeLeafFrame insertLeafFrame;
    public IBTreeLeafFrame deleteLeafFrame;
    public final BTree[] mutableBTrees;
    public BTree.BTreeAccessor[] mutableBTreeAccessors;
    public BTreeOpContext[] mutableBTreeOpCtxs;
    public BTree.BTreeAccessor currentMutableBTreeAccessor;
    public BTreeOpContext currentMutableBTreeOpCtx;
    public IndexOperation op;
    public final MultiComparator cmp;
    public final MultiComparator bloomFilterCmp;
    public final IModificationOperationCallback modificationCallback;
    public final ISearchOperationCallback searchCallback;
    private final List<ILSMComponent> componentHolder;
    private final List<ILSMComponent> componentsToBeMerged;
    private final List<ILSMComponent> componentsToBeReplicated;
    public final PermutingTupleReference indexTuple;
    public final MultiComparator filterCmp;
    public final PermutingTupleReference filterTuple;
    public ISearchPredicate searchPredicate;

    public LSMBTreeOpContext(List<ILSMComponent> mutableComponents, ITreeIndexFrameFactory insertLeafFrameFactory,
            ITreeIndexFrameFactory deleteLeafFrameFactory, IModificationOperationCallback modificationCallback,
            ISearchOperationCallback searchCallback, int numBloomFilterKeyFields, int[] btreeFields, int[] filterFields) {
        LSMBTreeMemoryComponent c = (LSMBTreeMemoryComponent) mutableComponents.get(0);
        IBinaryComparatorFactory cmpFactories[] = c.getBTree().getComparatorFactories();
        if (cmpFactories[0] != null) {
            this.cmp = MultiComparator.create(c.getBTree().getComparatorFactories());
        } else {
            this.cmp = null;
        }

        bloomFilterCmp = MultiComparator.create(c.getBTree().getComparatorFactories(), 0, numBloomFilterKeyFields);

        mutableBTrees = new BTree[mutableComponents.size()];
        mutableBTreeAccessors = new BTree.BTreeAccessor[mutableComponents.size()];
        mutableBTreeOpCtxs = new BTreeOpContext[mutableComponents.size()];
        for (int i = 0; i < mutableComponents.size(); i++) {
            LSMBTreeMemoryComponent mutableComponent = (LSMBTreeMemoryComponent) mutableComponents.get(i);
            mutableBTrees[i] = mutableComponent.getBTree();
            mutableBTreeAccessors[i] = (BTree.BTreeAccessor) mutableBTrees[i].createAccessor(modificationCallback,
                    NoOpOperationCallback.INSTANCE);
            mutableBTreeOpCtxs[i] = mutableBTreeAccessors[i].getOpContext();
        }

        this.insertLeafFrameFactory = insertLeafFrameFactory;
        this.deleteLeafFrameFactory = deleteLeafFrameFactory;
        this.insertLeafFrame = (IBTreeLeafFrame) insertLeafFrameFactory.createFrame();
        this.deleteLeafFrame = (IBTreeLeafFrame) deleteLeafFrameFactory.createFrame();
        if (insertLeafFrame != null && this.cmp != null) {
            insertLeafFrame.setMultiComparator(cmp);
        }
        if (deleteLeafFrame != null && this.cmp != null) {
            deleteLeafFrame.setMultiComparator(cmp);
        }
        this.componentHolder = new LinkedList<ILSMComponent>();
        this.componentsToBeMerged = new LinkedList<ILSMComponent>();
        this.componentsToBeReplicated = new LinkedList<ILSMComponent>();
        this.modificationCallback = modificationCallback;
        this.searchCallback = searchCallback;

        if (filterFields != null) {
            indexTuple = new PermutingTupleReference(btreeFields);
            filterCmp = MultiComparator.create(c.getLSMComponentFilter().getFilterCmpFactories());
            filterTuple = new PermutingTupleReference(filterFields);
        } else {
            indexTuple = null;
            filterCmp = null;
            filterTuple = null;
        }
    }

    @Override
    public void setOperation(IndexOperation newOp) {
        reset();
        this.op = newOp;
    }

    public void setInsertMode() {
        currentMutableBTreeOpCtx.leafFrame = insertLeafFrame;
        currentMutableBTreeOpCtx.leafFrameFactory = insertLeafFrameFactory;
    }

    public void setDeleteMode() {
        currentMutableBTreeOpCtx.leafFrame = deleteLeafFrame;
        currentMutableBTreeOpCtx.leafFrameFactory = deleteLeafFrameFactory;
    }

    @Override
    public void reset() {
        componentHolder.clear();
        componentsToBeMerged.clear();
        componentsToBeReplicated.clear();
    }

    public IndexOperation getOperation() {
        return op;
    }

    @Override
    public List<ILSMComponent> getComponentHolder() {
        return componentHolder;
    }

    @Override
    public ISearchOperationCallback getSearchOperationCallback() {
        return searchCallback;
    }

    @Override
    public IModificationOperationCallback getModificationCallback() {
        return modificationCallback;
    }

    @Override
    public void setCurrentMutableComponentId(int currentMutableComponentId) {
        currentMutableBTreeAccessor = mutableBTreeAccessors[currentMutableComponentId];
        currentMutableBTreeOpCtx = mutableBTreeOpCtxs[currentMutableComponentId];
        switch (op) {
            case SEARCH:
                break;
            case DISKORDERSCAN:
            case UPDATE:
                // Attention: It is important to leave the leafFrame and
                // leafFrameFactory of the mutableBTree as is when doing an update.
                // Update will only be set if a previous attempt to delete or
                // insert failed, so we must preserve the semantics of the
                // previously requested operation.
                break;
            case UPSERT:
            case INSERT:
                setInsertMode();
                break;
            case PHYSICALDELETE:
            case DELETE:
                setDeleteMode();
                break;
        }
    }

    @Override
    public List<ILSMComponent> getComponentsToBeMerged() {
        return componentsToBeMerged;
    }

    @Override
    public void setSearchPredicate(ISearchPredicate searchPredicate) {
        this.searchPredicate = searchPredicate;
    }

    @Override
    public ISearchPredicate getSearchPredicate() {
        return searchPredicate;
    }

    @Override
    public List<ILSMComponent> getComponentsToBeReplicated() {
        return componentsToBeReplicated;
    }
}

redpajama_set_name: RedPajamaGithub


"« I draw and feel the happiest person in the world» I was born in Lvov (Ukraine), some time I lived in Poland, now - in Kiev (Ukraine). Education: 1993 – 1998 Studies at Publishing Academy (Lvov, Ukraine). Exhibitions: Groups 1998 - Gallery « Yarowit» , Students Arts Exhibition, Lvov, Ukraine. 1998 - Lvov Arts Palace, Art"
2008 - Group International Exhibitions «Opera Gallery», <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />Budapest, Hungary, Jyl.
I was born in Lvov (Ukraine), some time I lived in Poland, now - in Kiev (Ukraine).
1993 – 1998 Studies at Publishing Academy (Lvov, Ukraine).
1998 - Gallery «Yarowit», Students Arts Exhibition, Lvov, Ukraine.
1998 - Lvov Arts Palace, Arts Exhibition, Lvov, Ukraine.
1999 - Gallery «Na Yaskultse», Students Arts Exhibition, Krakow, Poland.
2000 - Gallery «Gaude Mater», 1st International Exhibition of Miniature Arts, Chenstohova, Poland (catalog).
2001 - Gallery humor and satirical «Na drabinie», Wloclawek, Poland (catalog).
2001 - Chenstohova City Arts Gallery, Young Artists Exhibition, Chenstohova, Poland.
2001 - Ignacy Paderewski Museum, Humor Arts Competition «Paint Me Tolerance», under patronage of United Nations High Commissioner For Refugees, Warshawa, Poland.
2001 - XXIV International Exhibition «SATYRYKON», Legnica, Poland (catalog).
2002 - The international art satirical competition «CURUXA», Museum of Humour, Fene, Spain (CD-catalog).
2008 - The international art competition devoted the victims of the armed conflicts «The Red Cross Summer Exhibition», Hague, Netherlands.
2008 - 1st International Aid of SNAIL'S Graphical Humor, Lleida, Spain.
2008 - International action «No jury, no prize», Moscow, Russia (catalog).
2008 - «Opera Gallery», Exhibition by International Artists, Budapest, Hungary (catalog).
2008 - 19th International Satire Exhibition «Trento between reality and madness». Subject: «We want the Moon», Trento, Italy (catalog).
2009 - 8th Tabriz International Cartoon Contest - «No War», Tabriz, Iran.
2009 - Women Cartoonists of the World, Bunker Gallery, Coffs Harbour, Australia.
2000 - Chenstohova City Museum, Chenstohova, Poland.
2008 - Art and culture Center of Humanitarian lyceum T. Shevchenko, Kiev, Ukraine.
2008 - S&L Galerie, Strasbourg, France.
2009 - «Armenian well», Kamianets-Podilskyi Historical Museum-Reserve, Ukraine.
2009 - «Kolo Gallery», Kiev, Ukraine.
Pictures published in magazine «Terytoria» (Lvov, Ukraine). Responses were printed in the Polish (Gazeta Wyborcza) and the French press «The latest news from Alsace» (Dernières Nouvelles D'alsace, Strasbourg). Interviews went out in the «Wysokyi Zamok» («High Castle», Lvov), RIA Novosti, URA-Inform.
Distinction on Satiric Competition «Phones Phenomenon», Gallery «Na drabinie», May 2001, Wloclawek, Poland. Nomination on the XXIV International Exhibition «SATYRYKON», Legnica, Poland.
Works are in Museum of cartoon art and caricature (Warsaw, Poland), Satyrykon (Legnica, Poland), Museum of Humour (Fene, Spain); galleries and private collections of Switzerland, USA, Australia, Finland, Germany, Austria, Turkey, Croatia, Spain, Russia, Poland ,Ukraine.
Romana Yaroshchak - Who there?


Should Your Business Be a Pet Friendly Business?
A couple of years ago, I had the opportunity to work out of a co-working office space in Brooklyn. It was an interesting space, where solopreneurs, startups, and co-ops all shared space. People ran non-traditional organizations, from the business ideas to the operational hours to the dress codes. And best of all, many people brought their dogs to work.
I've always loved a pet friendly business. They're good for employees and consumers. But they also come with a host of issues for the business owner to consider. Should your small business become pet friendly?
Pet friendly workplaces are great for your employees. Studies show that 75 to 95 percent of the time, pet friendly businesses have improved morale. Employees believe that you care about their quality of work life when you give them the option to bring a pet into work. They also tend to experience better work-life balance because bringing a pet to work makes the workplace feel more "homey." Employees are more likely to be able to work longer hours and feel comfortable in the environment. Pet friendly businesses tend to have an easier time finding and keeping invested employees.
If you run a brick and mortar business that has customers coming in, being pet friendly means your customers can bring their pets in when they're shopping. Pet friendly stores are few and far between. You'll stand out in your community as a place where pet lovers can spend time without having to leave Fido at home.
Is your brand related to pets in some way? Do you have a dog treat bakery? Did you call your cafe something related to pets, like The Blue Dalmation Cafe? People may assume you're pet friendly from the get-go. If that's the case, you'll want to err on the side of allowing pets for employees or consumers alike to avoid any possible PR snafus.
The other side of having a pet friendly business is that there are a lot of considerations to be made. Safety is the biggest one. If two of your employees bring in dogs that don't get along, there might be some disruption in your conference room. Your bookstore's cat could decide to make a new litter box over in the self-help section. You'll need to put a safety policy in place to serve as a guideline for what animals are allowed, what behavior is acceptable, and what steps your business will take to keep everyone safe.
Legalities are another concern. Is it even legal for you to allow animals inside your cafe? City health codes often prohibit the presence of animals while is food is being prepared or served. Statewide or city ordinances may also limit the number of animals allowed in certain spaces. You need to consult with a legal representative to make sure you're following all of the rules to avoid unnecessary tickets and fines from the local government.
And finally, liability is something you should think about before you decide to become a pet friendly business. What are you responsible for legally in the event something goes wrong? If a customer's dog bites someone are you legally responsible? What if one of your employee's spider monkey gets injured at the company picnic? Once you've worked out the liability concerns, it's time to cover your liability with insurance. Keep in mind that some insurers won't cover you if you have certain breeds of animals on your property. And if they will insure you, it will likely come at a high premium payment. You'll need to take into account all of these factors before you make the decision whether to become a pet friendly business.
My biggest concern would be someone being seriously allergic to cats or dogs. That seems like it'd be the most common serious health issue.


FRENCH PRESS. The French press, also known as the cafetière, is another iconic and well-known piece of brewing equipment. It's the best way to make several cups …... 26/04/2008 · You can use 1/2 cup and 1/4 cup to equal 3/4 cup. Or you can measure 1 cup and take out 1/4 cup.
Make these fun fresh Lemon Cups to use for serving sorbet, ice cream, or a special dip at your next party or event. These cute little Lemon Cups are so easy to make and perfect for many celebrations like ladies luncheons or teas, pool parties, baby showers, bridal … how to check my fido plan 26/04/2008 · You can use 1/2 cup and 1/4 cup to equal 3/4 cup. Or you can measure 1 cup and take out 1/4 cup.
Make a cardboard lid. Cut or separate a piece of cardboard large enough to completely cover the mouth of the Styrofoam cup. The lid should be flat and make a good seal when placed inside the lip of the cup.


text:
Top EU court hedges on question of hyperlinking legality in Playboy case
Linking to unlawfully published copyright images can be legal -- unless you profit from it, says top EU court
Peter Sayer (IDG News Service) 08 September, 2016 21:14
To the old legal presumption of innocence until proven guilty, the European Union's highest court has added another: innocence until proven profitable.
It's OK for websites to hyperlink to an image published elsewhere without the rights holder's permission -- as long as they don't know that, and don't make a profit from it, the Court of Justice of the EU ruled on Thursday.
The ruling concerned Dutch website GeenStijl, accused by Playboy of linking to an Australian website that published, without the magazine's permission, a photoshoot it had commissioned with Dutch TV personality Britt Dekker.
Playboy's lawyers wrote to GeenStijl asking it to remove the link, but it refused -- and published a new link to another website hosting the photos without permission when they were removed from the Australian site. When the pictures disappeared from that site too, GeenStijl allowed its forum users to link to the photos on other sites.
Playboy took its accusation that GeenStijl infringed its copyright all the way to the Supreme Court of the Netherlands, which in turn called on the CJEU to rule on a number of legal questions.
The Dutch court asked whether hyperlinking to copyright-protected material published without permission of the rights holder is the same as publishing the material -- a "communication to the public" in the words of the EU's 2001 Copyright Directive -- and whether it made a difference if the material in question had not previously been published by the rights holder.
It also wanted to know whether knowing the material had not previously been published by the rights holder or was published without the rights holder's permission made a difference to the legality of the hyperlinker's actions.
In April, the CJEU's Advocate General, Melchior Wathelet, opined that hyperlinking was legal in all the situations raised by the Dutch court, whether or not the images were published without permission -- but his view was only advisory, and not binding on the CJEU.
Thursday's ruling from the CJEU is more nuanced.
It concluded that hyperlinks to images published without permission should be considered a communication to the public "when those links are provided without the pursuit of financial gain by a person who did not know or could not reasonably have known the illegal nature of the publication of those works on that other website."
On the other hand, when the links are provided for financial gain, it must be assumed that the linker knew or could reasonably have known of the illegal nature of the linked images, the CJEU concluded.
That's good news for hobby bloggers across the EU, who won't need to consult a lawyer before hyperlinking unless they profit from ads on their websites. And it's good news for the lawyers, who can expect a little extra business from the likes of GeenStijl.
Meanwhile, the ball is back in the Dutch Supreme Court to make the final ruling in the case, based on the CJEU's judgment.
More from Cofense™
A VAR's Guide to Recurring Revenue | Making it Easier to Consistently Earn More

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Non italic index text I'm using the following code for my index.
\documentclass[a4paper,11pt,twoside, openleft]{book}

\usepackage{makeidx}\makeindex
\newcommand*{\formatfirst}[1]{\MakeUppercase{#1}}
\makeatletter
\newcommand*{\mymacro}[1]{%
  \expandafter\formatfirst\expandafter{\@car #1\@empty\@nil}%
  \@cdr #1\@empty\@nil}
\newcommand*\boldindexhardcode[1]{%
  \def\@boldindexhardcode{\boldindexhardcode@i#1 \@nil}%
    {\itshape\@boldindexhardcode}\index{#1@\@boldindexhardcode}}
\def\boldindexhardcode@i#1 #2\@nil{%
  \mymacro{#1}%
  \ifx\\#2\\%
  \else
    \@ReturnAfterFi{%
      \space
      \boldindexhardcode@i#2\@nil
    }%
  \fi}
\long\def\@ReturnAfterFi#1\fi{\fi#1}
\makeatother

\newcommand{\boldindex}[1]{ \textcolor{DarkPurple}{\textbf{\boldindexhardcode{#1}}}}

\begin{document}
\chapter{Chapter}
\boldindex{Test}\\
\boldindex{tEst}\\
\boldindex{teSt}\\
\boldindex{tesT}

\printindex

\end{document}

It renders like this:
How am I able to remove the weird italic text, while keeping the bold text?

A: removing \itshape from newcommand*\boldindexhardcode[1]{…}

redpajama_set_name: RedPajamaStackExchange


Hop back in time to experience the Gold Rush era in Montana. In just a 20-minute drive from The Resort, you'll find yourself transported to the early 1900s as you walk the streets of Montana's best-preserved ghost town. Your guide will give you the fascinating history of the town, which was still inhabited up to the 1960s, as you explore the Kelley Saloon, general store, Wells Hotel and many homes. The cost is $75 per person, and all ages are welcome (children 3 and under visit free).


The cost is $20 each if you sign up for all four plein air sessions at one time. This abbreviated series will take artists out in and around Norristown to paint and draw the local scenery. Each week, we will meet at a special location to paint en plein air.
1st location (6/7): Homes, churches, alleys, small gardens. Parking on street or in our lot.
2nd location (6/14): Corner grocer, row homes. Parking on street.
3rd location (6/21): Industrial. Park on the sides of the lot across the street from the industrial complex.
4th location (6/28): Shopping district, row homes. Parking on street.


text:
Maya Angelou on How to Write—and How to Live
Editor's note: We were deeply saddened to learn of Dr. Maya Angelou's passing. The following is from the April 2011 issue of O, The Oprah Magazine.
We survive in exact relationship to the dedication of our poets," wrote Maya Angelou in I Know Why the Caged Bird Sings. Here, the author and teacher shares her thoughts on how to write—and how to live.
"Good morning," she says, her voice like black coffee with a splash of bourbon. Even over the phone, you can hear her smile.
"Now, tell me what am I doing?"
"We'd like to ask you how to write a poem."
"Like a pianist runs her fingers over the keys, I'll search my mind for what to say. Now, the poem may want you to write it. And then sometimes you see a situation and think, "I'd like to write about that." Those are two different ways of being approached by a poem, or approaching a poem.
"Years ago I saw some children jumping hopscotch in Harlem. And then later, I was in Stockholm taking a course in cinematography, and I saw some Swedish children skipping hopscotch—I think it's called "hoppa hage" there. And I thought, "Hmmm, those kids at home, they have a little more rhythm and they think different thoughts." So I went back to watch the children in Harlem to get their rhythm, and then I began to write this poem:
Harlem Hopscotch
One foot down, then hop! It's hot.
Good things for the ones that's got.
Another jump, now to the left.
Everybody for hisself.
In the air, now both feet down.
Since you black, don't stick around.
Food is gone, the rent is due,
Curse and cry and then jump two.
All the people out of work,
Hold for three, then twist and jerk.
Cross the line, they count you out.
That's what hopping's all about.
Both feet flat, the game is done.
They think I lost. I think I won.
Next: Maya Angelou answers questions about her process
Can anyone write a poem?
Yes, I think so. I don't know if anyone will write a poem. You have to want to. You have to have sharp ears. And you have to not be afraid of being human.
How do you begin?
You have to get to a very quiet place inside yourself. And that doesn't mean that you can't have noise outside. I know some people who put jazz on, loudly, to write. I think each writer has her or his secret path to the muse. I'm told one writer stands for six hours with a typewriter on a podium—he stands and types. And I know a woman who has her computer in a closet and she goes in, closes the door, and, with her back to the door and her face to the wall, she writes.
How do you write?
I keep a hotel room in my town, although I have a large house. And I go there at about 5:30 in the morning, and I start working. And I don't allow anybody to come in that room. I work on yellow pads and with ballpoint pens. I keep a Bible, a thesaurus, a dictionary, and a bottle of sherry. I stay there until midday. About once a month, the management slips a note under my door and they ask, 'Please, Dr. Angelou, may we change the sheets? We know they must be moldy.' But I've never slept there. I just go in and sit down and work.
Does your humanitarian work influence your writing?
You are the sum total of everything you've ever seen, heard, eaten, smelled, been told, forgot—it's all there. Everything influences each of us, and because of that I try to make sure that my experiences are positive. I don't use vulgarity, and I won't have it around me, and no pejoratives, because those words are meant to dehumanize people. If it's poison in a vial and has a skull and bones on it, and you pour the content into Bavarian crystal, it's still poison.
Do you think poets are called to fill a spiritual role?
I would say that. But you see, there's a philosophical statement that says some people are born great. Others achieve it. And some have it thrust upon them. That may be so with poetry, and it may be that you have all three.
Get More Creative Inspiration
24 poetic souls on the words that rocked their worlds
12 ways to write a poem
Oprah interviews Maya Angelou
From the April 2011 issue of O, The Oprah Magazine
Subscribe to the live your best life newsletter Sign up for the oprah.com live your best life newsletter Get more stories like this delivered to your inbox Get updates on your favorite shows, the latest from Oprah's world and more! Get more inspiration like this delivered to your inbox


text:
The PS13 Competes at WTAC 2022
WTAC is an abbreviation for World Time Attack Challenge and for over 10 years it has been just that. Competitors from all around the World are hand picked by Ian Baker and his team. The cars are tested, prepped and stuffed into jumbo jets to compete on the Sydney Motorsport Park racetrack. As you would have already known the last two years has closed the doors on many world events and the ease of sending cars to foreign lands to compete still isn't an option for many.
To have this car parked up in a pit bay at WTAC 2022 was a huge moment for me.
So how does this event continue to expand and grow when it relies so heavily on international competition? Well after experiencing what I have over the past week I can say that Australian Motorsport is alive and well. Competitors from all over Australia took the opportunity to wrestle their fellow countryman in a game thats separated by tenths of seconds.
These motorcycle stands have been a very handy addition to my garage, they make engine removal a breeze, click HERE to build your own.
I'll get to the event itself soon but this year was a special one for me, the lack of overseas participation opened up a door for me to become a competitor. From competing in drifting to running my own trade stand to now fighting it out on track in my own race car. WTAC has been a highlight on my calendar and this year it took more preparation than ever before.
The engine and gearbox received the most preparation during this past month.
The conversation started a few months ago, Ian phoned me and said bring something cool and I'll give you a few laps. I have always appreciated Ians excitement and it's easy to say yes before hanging up the phone and wondering how you could possibly make that happen.
My original plan was to fit the Hilux running gear in the S15 but I have grander plans for this car.
I take a look around my garage, the S15 is the perfect car for this, it needs a lot of finishing but the roll cage is certified and it really just needs some bodywork and a driveline……. But I really want to do that properly and that takes time. Then there's the Hilux, although I do love it I just don't think Time Attack is its thing. I built it with different intentions and to be happy with it as a circuit car requires a lot of changes I don't want to make to it. The 180SX is there and its a pretty good package, a lot of components are getting old and it's a drift car at heart. I love the way it is and I don't really want to go cutting up the dash to make an approved roll cage.
Out of the shadows, after 16 years of ownership it receives its time in the spotlight.
So unless a 1955 Harley Davidson can enter the mix (and I know Ian would be keen to see that happen) the last remaining car to choose from is the PS13 NA SR20 Silvia, unfortunately it is the slowest in the fleet and probably not the best choice for an all out assault on the stopwatch.
As you will see in the video I rolled this into pit lane the day before race day with no testing.
Call me crazy but I have a strong desire and intention to use this car more, it's stuck somewhere in the middle of nostalgic Japanese sports car, race car, street car but has always shown great potential that I know I can extract given the right preparation. So I took the opportunity to fill out the entry form with the words 1989 Silvia and vowed to transform the car into something I would be proud to bring to the event.
Nothing depicts the preparation and thought process as good as video so I put a documentary style production together for you which details most of the steps I took to get the car prepared for the event. In part 1 you will see the transformation begin by mounting up the Quaife sequential 6 speed onto the back of the SR20DE, if you're a regular reader of my work then you may recognise this as being the Hilux's gearbox, a necessary addition to hold the driveline together with the increased grip and power that the Hilux has. I have always imagined this gearbox being a better fit for circuit racing and I am excited to try it out on the S13.
In part 2 it's all about the internals and finishing off the SR20 engine ready for the dyno. A week to add a dry sump system, a new trigger setup, high compression pistons and a full rebuild was really pushing it.
I just made it to the dyno in part 3, I cant thank Aaron from DTM enough for fitting me in after cancelling on him. He did a thorough job although we chased some top end power which seemed to be missing. I put this down to the camshafts being really small in duration, this will be changed after the event along with a new set of rods to increase power and RPM.
Well I made it, part 4 will give you the full run down on my experience at WTAC 2022, the circuit racing bug has well and truly bitten me, I loved every minute on track and worked through every issue to maximise my track time. I just loved hearing that SR20 sing.
I really cant get over the way the car handled, I spent a few hours dialling in the suspension before loading the car into the trailer, a stringline alignment, enough camber to clear the metal fenders, a big wing mounted to the chassis rails and covered with an Origin bootlid was all I managed to have time for but it worked. The car felt perfect, so smooth and predictable, I cant wait to develop it a little more.
I know your probably sick of hearing me say it but fabrication skills make all of this achievable, it has been a longterm dream of mine to be driving this car with the roar of the independent throttles, the whine of the straight cut sequential gearbox and the feeling of understanding the entire chassis due to the extent of the fabrication that I have completed on it.
I have to say driving is easier than judging, all of these cars deserved an award.
I was lucky enough to be invited to judge the car show between rounds too, big thanks to Adam from Downshift for this, I was blown away with the quality of cars in the show and really loved the vibe in the paddock, everyone was having a great time.
The dry sump provided flawless oil control.
WTAC has been a huge motivation to complete this round of modifications and its taught me a lot, if you want to learn from me and improve your own vehicle through fabrication you can subscribe to my courses, it's a small price to pay for a lot of very valuable information.
From benchtop to racetrack, it has been one hell of a ride.
Thanks for reading and I hope you enjoyed the videos.
Previous ArticleHow to build a Roll CageNext ArticleThe dream fabrication workspace


text:
Named Entity Results, Worsham
hide Named Entity Searches
Search for places: matching this name within this state within this country
Enter the name of a place, like "Springfield" or "Athens", to find all locations matching the name, or enter a state ("Illinois") or country ("Canada") to find all places within that state or nation. You may also enter more than one of these to narrow your search ("Athens, Greece" or "Springfield, Illinois, United States").
Note that abbreviations ("USA", "Ill.") do not work at present--please stick to full names!
Search for a person:
In: Forenames Surnames Full name
Searching for "Washington" in "Forenames" and "Surnames" will return all people with Washington as a first or last name, respectively. A full-name search will find anyone who matches the entire search string ("Washington Irving").
Search for dates:
From: [any] January February March April May June July August September October November December , A.D. B.C.
To: [any] January February March April May June July August September October November December , A.D. B.C.
Enter a month, day and/or year to search for references to that date. You do not need to fill out every field: searching only for "1863" will find all references to the year 1863, while searching for "July 4" will find all references to the 4th of July, regardless of year.
Enter a starting date and an ending date to find all occurrences of dates in between.
hide Matching Documents
The documents where this entity occurs most often are shown below. Click on a document to open it.
Max. Freq
Min. Freq
The Daily Dispatch: October 29, 1863., [Electronic resource]	 4 0 Browse Search
The Daily Dispatch: January 24, 1862., [Electronic resource]	 4 0 Browse Search
The Daily Dispatch: December 6, 1861., [Electronic resource]	 4 0 Browse Search
Colonel William Preston Johnston, The Life of General Albert Sidney Johnston : His Service in the Armies of the United States, the Republic of Texas, and the Confederate States.	 2 0 Browse Search
The Daily Dispatch: April 2, 1862., [Electronic resource]	 2 0 Browse Search
The Daily Dispatch: December 28, 1861., [Electronic resource]	 2 0 Browse Search
The Daily Dispatch: February 9, 1861., [Electronic resource]	 2 0 Browse Search
Southern Historical Society Papers, Volume 33. (ed. Reverend J. William Jones)	 2 0 Browse Search
The Daily Dispatch: May 6, 1862., [Electronic resource]	 2 0 Browse Search
View all matching documents...
Browsing named entities in Colonel William Preston Johnston, The Life of General Albert Sidney Johnston : His Service in the Armies of the United States, the Republic of Texas, and the Confederate States.. You can also browse the collection for Worsham or search for Worsham in all documents.
Your search returned 1 result in 1 document section:
Colonel William Preston Johnston, The Life of General Albert Sidney Johnston : His Service in the Armies of the United States, the Republic of Texas, and the Confederate States., Chapter 26: battle of Fishing Creek. (search)
population were chiefly the working of coal and iron, with capital furnished by Ohio men. Hence, the people were generally hostile to the South. Marshall's force, when he reached Paintsville, was 2,240 in number; but his effectives were only 1,967 on January 3, 1862. The following is his force in detail: Triggs's Fifty-fourth Virginia Regiment578 Williams's Kentucky Regiment594 Moore's Twenty-ninth Virginia Regiment327 Simms's Mounted Battalion360 Jeffries's battery (four guns)58 Worsham's company50 Total1,967 This force was still further reduced to about 1,600 effectives, by mumps and measles, before the engagement with the enemy. About the same time that Marshall advanced into Kentucky, Buell organized an expedition up the Big Sandy, under Colonel J. A. Garfield. This officer moved up that river, on December 22d, with the Forty-second Ohio Regiment, the Fourteenth Kentucky, and McLaughlin's battalion of Ohio Cavalry, about 1,500 strong. After delaying a week at Ge


text:
import sys
import re
import os
import shutil
import commands

"""Copy Special exercise
"""

# +++your code here+++
# Write functions and modify main() to call them

# Return absolute paths of files in a given directory
def get_special_paths(dir):
  filenames = os.listdir(dir)
  paths = []
  for filename in filenames:
    if re.search(r'__\w+__', filename):
      paths.append(os.path.abspath(os.path.join(dir, filename)))
  return paths

# Copy files into a given directory
def copy_to(paths, dir):
  if not os.path.exists(dir):
    os.mkdir(dir)
  for filename in paths:
    shutil.copy(filename, dir)

# Zip files up into a given zipfile
def zip_to(paths, zippath):
  cmd = 'zip -j ' + zippath + ' ' + ' '.join(paths)
  (status, output) = commands.getstatusoutput(cmd)
  if status:
    sys.stderr.write(output)
    sys.exit(1)

def main():
  # This basic command line argument parsing code is provided.
  # Add code to call your functions below.

  # Make a list of command line arguments, omitting the [0] element
  # which is the script itself.
  args = sys.argv[1:]
  if not args:
    print "usage: [--todir dir][--tozip zipfile] dir [dir ...]";
    sys.exit(1)

  # todir and tozip are either set from command line
  # or left as the empty string.
  # The args array is left just containing the dirs.
  todir = ''
  if args[0] == '--todir':
    todir = args[1]
    del args[0:2]

  tozip = ''
  if args[0] == '--tozip':
    tozip = args[1]
    del args[0:2]

  if len(args) == 0:
    print "error: must specify one or more dirs"
    sys.exit(1)

  paths = []
  for dir in args:
    paths.extend(get_special_paths(dir))

  if len(todir) > 0:
    copy_to(paths, todir)
  elif len(tozip) > 0:
    zip_to(paths, tozip)
  else:
    for path in paths:
      print path

if __name__ == "__main__":
  main()


text:
Local Indian-Americans take pride in Sen. Kamala Harris as Biden's selection as running mate
By Michael Perchick
Local Indian-Americans take pride in Harris as Biden running mate
RALEIGH (WTVD) -- Joe Biden's historic selection of Senator Kamala Harris as his running mate is the first time a Black woman and Indian-American have appeared on the ticket of a major party.
"This is just a huge inspiration for the younger generation - the college kids, the high school kids, that look at Kamala Harris and now say, 'I can be the president. I can be the vice president,'" said Morrisville Council Member Steve Rao, who is also an Indian-American.
Harris is the daughter of an Indian mother and Jamaican father. Rao, a first-generation American who grew up in West Virginia, said Harris' success should serve as an example of the importance of supporting underserved communities.
RELATED: Local Black women reflect on impact of Kamala Harris as Biden's VP nominee
"There's a lot to be learned here that we have more Kamala Harris' out there - investing more in communities of color, communities that are disenfranchised," said Rao.
"She's an accomplished woman. And I just believe that, of course, it's a great acknowledgment for the Indian community. And I think (she's) a role model for young Indian women that there is a pathway to achieve such a high level of recognition," added Inderdeep Chatrath, with the advocacy group North Carolina Asian-Americans Together (NCAAT).
Who is Kamala Harris? What to know about the California Senator
Everything to know about Kamala Harris, the first black woman to be nominated for national office.
Part of NCAAT's work revolves around civic engagement and voter registration. According to Pew Research, Asian-Americans are the fastest-growing voter base in the country. In 2000, there were 4.6 million Asian Americans eligible to vote; in 2020, that number will top 11 million.
"In North Carolina, the population of Asian-Americans is really increasing at a fairly rapid rate. So I would hope that these folks would take note that they are a voting bloc that needs some attention as well," explained Chatrath.
The population increases have also led to greater representation of Indian-Americans in the world of politics. High-profile recent examples include former South Carolina Governor Nikki Haley, who served as US Ambassador to the UN from 2017-2018, and former Louisiana Governor Bobby Jindal, who ran for president in 2016. Both Haley and Jindal are Republican.
Besides Rao, other local examples include Democratic state senator Jay Chadhuri, who represents part of Wake County, and Duke professor Ronnie Chatterji, who is running as a Democrat for State Treasurer. If he wins, Chatterji would become the first Asian American elected to statewide office in North Carolina. Chatterji served as a senior economist to the White House Council of Economic Advisers in 2010-2011 under President Obama.
Rao and Chatrath hope that Harris' accomplishments are not overshadowed by the historic nature of her selection.
"Senator Harris regardless of her color and her race, both being a Black Woman and an Indian-American, she is an excellent lawyer and prosecutor. She has served with distinction in the United States Senate," said Rao.
Harris is the third female to appear as a vice-presidential candidate on a major party ticket. Geraldine Ferraro was the vice presidential nominee of Walter Mondale on the 1984 Democratic ticket, and Sarah Palin was the vice-presidential nominee of John McCain on the 2008 Republican ticket. Shortly after Harris's selection, Palin wrote an Instagram post sharing advice with Harris.
RELATED: Sarah Palin offers vice presidential running mate advice to Kamala Harris
politicsrace relationskamala harrisvote 2020joe bidenafrican americans
VP Harris inside DNC HQ on Jan. 6 when pipe bomb found outside
Kamala Harris defends Joe Biden to Charlamagne Tha God
VP Harris promotes Biden's infrastructure package in NC
VP Harris defends job performance, insists 'we're getting things done'


Tokido started off his bracket taking down Almaloss 2-1 followed by Tekkenboy 2-1. Bbyongbbyong was Tokido's next victim as Tokido won 2-0 and Tokido then made it out of Pool 1 on Winner's side after beating KBrad 2-0.
In top sixteen, Tokido lost to Nemo 0-2, sending Tokido to the Loser's Bracket. In Loser's top twelve, Tokido took down Infiltration 2-0 to secure a spot in top eight. Tokido's first opponent in top eight was HotDog29 who he took down HotDog29 3-2. Tokido finally met his match against Fuudo and lost 1-3, finishing the event in fifth.
Momochi swept his first three matches of Pool 5 2-0 against Laione, JeonDDing, and Cafesan. Momochi then took down M.Lizard 2-1 to make top sixteen.
Momochi's next opponent was HotDog29, who he took down 2-1. Now in top six, Momochi took on Nemo and unfortunately lost 0-3. Now in Loser's Quarterfinals, Momochi defeated stormKUBO 3-1 and secure a top four finish. In Loser's Semis, Momochi could not avenge Tokido against Fuudo and was eliminated in fourth after losing 2-3.


text:
Why Did This Crisis Pregnancy Center Advertise on a Public School's Graduation Tickets?
How to Fight Fake 'Crisis' Pregnancy Centers When Free Pregnancy Tests Beckon?
Jul 18, 2017, 6:10pm Amy Littlefield
Tickets for the May graduation at Pearl River Central High School in the southern Mississippi community of Carriere featured an ad with the offer of "FREE Pregnancy tests and help" and the center's phone number.
Sav-a-Life Pregnancy Support Services of the Pearl River Area is part of the crisis pregnancy giant CareNet.
Sav-A-Life Website
Laurie Bertram Roberts just needed a free pregnancy test. But at the facility where she sought services, that test came with an unexpected price: sitting through a graphic anti-abortion video and fielding questions about why Roberts wasn't married to her partner.
Roberts did not plan to have an abortion—she just had no money, couldn't get in to see her doctor, and needed that test. Facilities like this one that offered such tests for free were so ubiquitous in Indiana, where she lived, that she considered them just another convenient resource.
That all changed during the visit 15 years ago.
When Roberts disclosed that her relationship was abusive, the "counselor" doubled down.
"She just kept insisting that I should get married for the good of my children because I wasn't right with God," Roberts told Rewire in an interview. "I was like, 'I just told you that he's abusive and I need to figure out a way to leave him.'"
Roberts' experience that day has her concerned about the latest effort by a crisis pregnancy center (CPC) in her home state of Mississippi to reach people facing unplanned pregnancies: advertising on a public high school's graduation tickets.
Pearl River Central High School graduation tickets.
Tickets for the May graduation at Pearl River Central High School in the southern Mississippi community of Carriere featured an ad on the back for Sav-a-Life Pregnancy Support Services of the Pearl River Area, part of the crisis pregnancy giant CareNet. The ad, seen by Rewire, shows a baby's hand clutching a finger, with the offer of "FREE Pregnancy tests and help" and the center's phone number.
While Pearl River County Superintendent Alan Lumpkin defended the ads to Rewire, calling them "appropriate," reproductive health activists like Roberts fear they further legitimize fake clinics that attempt to dissuade people from abortion. National and local advocates told Rewire they had never heard of a specific case like this one.
"Have I seen anything like this before? No. Do I think it probably goes on? Yes," Roberts, co-founder and executive director of the Mississippi Reproductive Freedom Fund, said. "Have I seen CPCs advertise a lot within the religious community at teen events? Of course. But at public school events? No."
Beyond promoting themselves on billboards and public transit, CPCs around the country have run ads in school newspapers and set up shop in neighborhoods near colleges and universities. The ticket ads track with these efforts, according to Kelli Garcia, senior counsel with the National Women's Law Center.
"It's very consistent with the way in which they try to infiltrate through all areas and get their name out and recognized with their target group, which are really largely young people," Garcia told Rewire in an interview. "Their expectation is that it's young people who would be most in need of their 'services,' but also young people who are going to most easily fall for their advertising."
By design, the ads often give the false impression that CPCs perform or refer for abortions, so would-be patients may mistakenly think they are entering an abortion clinic. Once inside, they face shaming and a barrage of misinformation, like the disproven claim that abortion is linked to breast cancer.
This deceptive marketing is evident on Sav-a-Life's website.
"Our confidential services and caring peer-counselors can help you make an informed decision about all of your options," the site claims. "Whether you are considering abortion, adoption, or parenting, our staff has the information you need to make the best decision for yourself and your baby."
But that's not what Sav-a-Life does.
In fact, its mission is to "make abortion unnecessary and undesirable in our region," executive director Bonita Wynn told Rewire in an interview.
Wynn said Sav-a-Life bought the ticket ads through Mascot Media, which prints materials like sports schedule posters and cards for schools nationwide. A Mascot Media representative told Rewire the company called Sav-a-Life to offer them sponsorship of the graduation tickets because the center has sponsored products at the school since about 2012.
"We advertise on their cards all the time, you know, their schedule cards," Wynn said.
Lumpkin, the superintendent, said the school district does not make money off the ads, which he said Mascot Media uses to cover the costs of making the products.
Asked about the criteria for these ads, Lumpkin said he would object to "inappropriate" ads promoting alcohol, drugs, or cigarettes. Rewire asked if he would consider a Planned Parenthood ad "inappropriate."
"Sav-a-Life, from my understanding in reading their website and their brochures, is they provide counseling, information on all areas of pregnancy for the community," Lumpkin said. "If we had a counseling center, a Planned Parenthood counseling center in our area, and they wanted to sponsor with Mascot Media, that would be appropriate."
Pressed on whether the district would run an ad for a local organization that provided abortions, Lumpkin said it would—if there were one.
"We wouldn't have a problem with that," Lumpkin said. "If we had one in the area … we don't have one in the area, from my understanding."
Lumpkin also said the school district should represent the views of local residents, who, he said, largely oppose abortion.
"We're supposed to represent our county views and the values that they in this community, the values that they feel like represent them," Lumpkin said. "No matter what side of it I stand on or what side of it you stand on, those are not the views and values of the state of Mississippi and the county of Pearl River County."
Shannon Brewer, director of Jackson Women's Health Organization, Mississippi's only abortion clinic, questioned Lumpkin's conclusions. Her clinic is about two and a half hours from the high school.
"I've been here 17 years and there are a lot of people who are in need of our services and there are a lot of people that are pro-choice," Brewer told Rewire in an interview.
Brewer said her clinic has fielded sponsorship offers from callers who don't initially realize what her organization does.
"When they find out it's an abortion clinic, we have been turned down," Brewer said.
Mississippi has more than three dozen CPCs, including one that recently opened across the street from Brewer's clinic. The state requires providers to give patients seeking abortion a referral list that includes these fake clinics, which also receive funding from a state-operated anti-choice license plate program that claims to have raised over $3 million.
The state has also passed laws aimed at regulating abortion out of existence, making it cost-prohibitive for Planned Parenthood to offer abortions there, although it does offer other reproductive health services, said Felicia Brown-Williams, Mississippi state director of Planned Parenthood Southeast. The sole Planned Parenthood clinic in the state is in Hattiesburg, about an hour from Pearl River Central High School.
"We've got a challenging reproductive health landscape," Brown-Williams told Rewire in an interview. "We've got very high STI rates. Mississippi has the highest number of unintended pregnancies in the country, and that is for age groups across the board, and we know people just don't have access to care generally."
Mississippi Gov. Phil Bryant (R) has not only rejected the federal Medicaid expansion, his administration has refused to use funds that would give poor families child care subsidies and rejected nearly everyone who applies for welfare, effectively withholding the very resources needed by many who choose to carry unintended pregnancies to term. Republicans in Congress have followed a similar model, trying to defund Planned Parenthood while slashing Medicaid, although their most recent attempt appears to have collapsed after mass protests.
In this environment, CPCs may purport to fill the gap, offering resources like clothing and diapers and even limited prenatal care. But, as in Roberts' case, these services often come with a cost. Many CPCs, including Sav-a-Life, rely on "earn while you learn" programs, where people earn credits in exchange for attending lessons. Roberts said that she was told she could watch videos about topics like abstinence, parenting, breastfeeding, and natural family planning—or even attend church—to get points.
"It's right out of the colonizers' handbook, right, like, I'm here to save you, but only if you do what I want you to do, and I'm going to withhold all these resources until you do what I want you to do," Roberts said. "And that is ugly to me."
That's why Roberts' organization recently purchased a house in Jackson where she one day hopes to do what CPCs falsely claim to do. Applying a model used by All-Options Pregnancy Resource Center in Indiana, she hopes to offer counseling and support for all pregnancy options, without strings or judgments attached.
In the meantime, Roberts, who is also a doula, wishes she could send people to CPCs for supplies.
"I wish I could feel like it was a safe space for me to refer my low-income women of color clients to. But I don't," Roberts said. "I don't feel safe sending a rape survivor to them who remains pregnant. And that bothers me, 'cause they hold a lot of resources that people who we serve need and my organization shouldn't have to stockpile another set of resources when these people already have resources stockpiled in [dozens of] locations all over the state."
Christine Grimaldi contributed to reporting for this story.
Abortion Care, Abortion Rights, Access to abortion, CPC, CPCs, Crisis Pregnancy Centers, Gov. Phil Bryant, Health Systems, Human Rights, Law and Policy, Media, Planned Parenthood, Reproductive Health Care
Joy Baynes
Anti-Choice Centers Targeted in California Billboard Campaign
Aug 10, 2:06pm Nicole Knight
The Supreme Court Sided With Fake Clinics in California. The Fallout Could Spread Nationwide.
Jul 3, 4:06pm Nicole Knight
Louisiana's Bipartisan Abortion Ban the Latest to Go After 'Roe'
May 31, 2:16pm Teddy Wilson


text:
package petablox.program;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.Collections;
import java.io.InputStream;
import java.io.DataInputStream;
import java.io.DataInput;
import java.io.IOException;

import joeq.Class.jq_ClassFileConstants;
import joeq.UTF.Utf8;
import petablox.project.Config;
import petablox.project.Messages;
import petablox.util.ArraySet;
import petablox.util.Utils;
import petablox.util.soot.Classpath;
import petablox.util.soot.ClasspathElement;
import petablox.util.tuple.object.Pair;

/**
 * Class hierarchy implementation.
 *
 * @author Mayur Naik (mhn@cs.stanford.edu)
 */
public class ClassHierarchy {
    private static final String IGNORED_DUPLICATE_TYPES =
        "INFO: Class hierarchy builder: Ignored the following duplicate classes/interfaces coming from the indicated classpath elements:";
    private static final String EXCLUDED_TYPES_IN_CHORD =
        "WARN: Excluded the following classes/interfaces from scope because the classpath elements from which they originate are in petablox.main.class.path:";
    private static final String EXCLUDED_TYPES_NOT_DYN_LOADED =
        "WARN: Excluded the following classes/interfaces from scope because they were not loaded dynamically and petablox.ch.dynamic=true:";
    private static final String MISSING_TYPES =
        "WARN: Class hierarchy builder: Following classes/interfaces were not found in scope but each of them was either declared as a superclass or an implemented/extended interface of some class/interface in scope:";
    private static final String MISSING_SUPERCLASSES =
        "WARN: Class hierarchy builder: Ignored the following classes as some (direct or transitive) superclass of each of them is missing in scope:";
    private static final String MISSING_SUPERINTERFS =
        "WARN: Class hierarchy builder: Ignored the following classes/interfaces as some (direct or transitive) interface implemented/extended by each of them is missing in scope:";

    /**
     * Map from each class or interface in scope to the kind of its type (interface, abstract class, or concrete class).
     */
    private Map<String, TypeKind> clintToKind;
    /**
     * Map from each (concrete or abstract) class c in scope to the class d (not necessarily in scope) such that:
     * 1. if c == java.lang.Object then d == null, and
     * 2. if c is a class other than java.lang.Object then d is the declared superclass of c.
     * Note that c cannot be an interface.
     */
    private Map<String, String> classToDeclaredSuperclass;
    /**
     * Map from each class/interface c in scope to the set of interfaces S (not necessarily in scope) such that:
     * 1. if c is an interface then S is the set of interfaces that c declares it extends, and
     * 2. if c is a class then S is the set of interfaces that c declares it implements.
     */
    private Map<String, Set<String>> clintToDeclaredInterfaces;
    /**
     * Map from:
     * 1. each (concrete or abstract) class in scope to the set of all its concrete subclasses in scope (including itself if it is concrete).
     * 2. each interface in scope to the set of all concrete classes in scope that implement it.
     */
    private Map<String, Set<String>> clintToAllConcreteSubs;

    /**
     * Set consisting of:
     * 1. each class not in scope but declared as the superclass of some class in scope, and
     * 2. each interface not in scope but declared as an implemented/extended interface of some class/interface respectively in scope.
     */
    private Set<String> missingClints;

    public String getDeclaredSuperclass(String c) {
        if (classToDeclaredSuperclass == null)
            build();
        return classToDeclaredSuperclass.get(c);
    }

    public Set<String> getDeclaredInterfaces(String t) {
        if (clintToDeclaredInterfaces == null)
            build();
        return clintToDeclaredInterfaces.get(t);
    }

    /**
     * Provides the set of all concrete classes that subclass/implement a given class/interface.
     *
     * @param s The name of a class or interface.
     *
     * @return The set of all concrete classes that subclass/implement (directly or transitively) the
     *         class/interface named s, if it exists in the class hierarchy, and null otherwise.
     */
    public Set<String> getConcreteSubclasses(final String s) {
        if (clintToAllConcreteSubs == null) {
            if (clintToKind == null)
                build();
            missingClints = new HashSet<String>();
            Set<String> missingSuperclasses = new HashSet<String>();
            Set<String> missingSuperInterfs = new HashSet<String>();
            // Map from each concrete class in scope to set containing
            // itself and its (direct and transitive) superclasses and
            // its implemented interfaces (not necessarily in scope).
            Map<String, Set<String>> concreteClassToAllSups =
                new HashMap<String, Set<String>>();
            clintToAllConcreteSubs = new HashMap<String, Set<String>>();
            Set<String> emptyRdOnlySet = Collections.emptySet();
            for (String c : clintToKind.keySet()) {
                clintToAllConcreteSubs.put(c, emptyRdOnlySet);
                if (clintToKind.get(c) != TypeKind.CONCRETE_CLASS)
                    continue;
                Set<String> clints = new ArraySet<String>(2);
                clints.add(c);  // every concrete class is a concrete successor to itself
                boolean success1 = true;
                boolean success2 = true;
                String d = c;
                while (true) {
                    success2 &= populateInterfaces(d, clints);
                    String superClass = classToDeclaredSuperclass.get(d);
                    if (superClass == null) {
                        if (!d.equals("java.lang.Object")) {
                            missingClints.add(d);
                            success1 = false;
                        }
                        break;
                    }
                    boolean added = clints.add(superClass);
                    assert (added);
                    d = superClass;
                }
                if (success1 && success2) {
                    concreteClassToAllSups.put(c, clints);
                    continue;
                }
                if (!success1)
                    missingSuperclasses.add(c);
                if (!success2)
                    missingSuperInterfs.add(c);
            }
            if (!missingClints.isEmpty()) {
                Messages.log(MISSING_TYPES);
                for (String c : missingClints)
                    Messages.log("\t" + c);
            }
            if (!missingSuperclasses.isEmpty()) {
                Messages.log(MISSING_SUPERCLASSES);
                for (String c : missingSuperclasses)
                    Messages.log("\t" + c);
            }
            if (!missingSuperInterfs.isEmpty()) {
                Messages.log(MISSING_SUPERINTERFS);
                for (String c : missingSuperInterfs)
                    Messages.log("\t" + c);
            }
            for (String c : concreteClassToAllSups.keySet()) {
                Set<String> sups = concreteClassToAllSups.get(c);
                for (String d : sups) {
                    Set<String> subs = clintToAllConcreteSubs.get(d);
                    if (subs == null || subs == emptyRdOnlySet) {
                        subs = new ArraySet<String>(2);
                        clintToAllConcreteSubs.put(d, subs);
                    }
                    subs.add(c);
                }
            }
            missingClints.clear();
        }

        return clintToAllConcreteSubs.get(s);
    }

    // builds maps clintToKind, classToDeclaredSuperclass, and clintToDeclaredInterfaces
    private void build() {
        System.out.println("Starting to build class hierarchy; this may take a while ...");
        Set<String> dynLoadedTypes = null;
        if (Config.CHkind.equals("dynamic")) {
            List<String> list = Program.g().getDynamicallyLoadedClasses();
            dynLoadedTypes = new HashSet<String>(list.size());
            dynLoadedTypes.addAll(list);
        }
        Classpath cp = new Classpath();
        cp.addToClasspath(System.getProperty("sun.boot.class.path"));
        cp.addExtClasspath();
        cp.addToClasspath(Config.userClassPathName);
        List<ClasspathElement> cpeList = cp.getClasspathElements();

        // logging info
        List<Pair<String, String>> duplicateTypes = new ArrayList<Pair<String, String>>();
        List<String> excludedTypes = new ArrayList<String>();
        List<String> typesNotDynLoaded = new ArrayList<String>();

        clintToKind = new HashMap<String, TypeKind>();
        classToDeclaredSuperclass = new HashMap<String, String>();
        clintToDeclaredInterfaces = new HashMap<String, Set<String>>();

        for (ClasspathElement cpe : cpeList) {
            for (String fileName : cpe.getEntries()) {
                if (!fileName.endsWith(".class"))
                    continue;
                String baseName = fileName.substring(0, fileName.length() - 6);
                String typeName = baseName.replace('/', '.');

                // ignore types excluded from scope
                if (Config.isExcludedFromScope(typeName)) {
                    excludedTypes.add(typeName);
                    continue;
                }

                // ignore duplicate types in classpath
                if (clintToKind.containsKey(typeName)) {
                    duplicateTypes.add(new Pair<String, String>(typeName, cpe.toString()));
                    continue;
                }

                if (dynLoadedTypes != null && !dynLoadedTypes.contains(typeName)) {
                    typesNotDynLoaded.add(typeName);
                    continue;
                }
                InputStream is = cpe.getResourceAsStream(fileName);
                assert (is != null);
                DataInputStream in = new DataInputStream(is);
                if (Config.verbose >= 2)
                    Messages.log("Processing class file %s from %s", fileName, cpe);
                processClassFile(in, typeName);
            }
        }

        if (Config.verbose >= 2) {
            if (!duplicateTypes.isEmpty()) {
                Messages.log(IGNORED_DUPLICATE_TYPES);
                for (Pair<String, String> p : duplicateTypes)
                    Messages.log("\t%s, %s", p.val0, p.val1);
            }
            if (!excludedTypes.isEmpty()) {
                Messages.log(EXCLUDED_TYPES_IN_CHORD);
                for (String s : excludedTypes)
                    Messages.log("\t" + s);
            }
            if (!typesNotDynLoaded.isEmpty()) {
                Messages.log(EXCLUDED_TYPES_NOT_DYN_LOADED);
                for (String s : typesNotDynLoaded)
                    Messages.log("\t" + s);
            }
        }
        System.out.println("Finished building class hierarchy.");
    }

    // Description of superclass and interfaces sections in class file of class c:
    // 1. superclass d:
    //   if c is an interface then d is java.lang.Object
    //   if c == java.lang.Object then d is null (has index 0 in constant pool)
    //   if c is a class other than java.lang.Object then d is the declared superclass of c
    // 2. interfaces S:
    //   if c is an interface then S is the set of interfaces c declares it extends
    //   if c is a class then S is the set of interfaces c declares it implements
    private void processClassFile(DataInputStream in, String className) {
        try {
            int magicNum = in.readInt(); // 0xCAFEBABE
            if (magicNum != 0xCAFEBABE) {
                throw new ClassFormatError("bad magic number: " + Integer.toHexString(magicNum));
            }
            in.readUnsignedShort(); // read minor_version
            in.readUnsignedShort(); // read major_version
            int constant_pool_count = in.readUnsignedShort();
            Object[] constant_pool = processConstantPool(in, constant_pool_count);
            char access_flags = (char) in.readUnsignedShort();  // read access_flags
            int self_index = in.readUnsignedShort();
            int super_index = in.readUnsignedShort();
            if (super_index == 0) {
                assert (className.equals("java.lang.Object"));
                classToDeclaredSuperclass.put(className, null);
                clintToKind.put(className, TypeKind.CONCRETE_CLASS);
            } else {
                int c = (Integer) constant_pool[super_index];
                Utf8 utf8 = (Utf8) constant_pool[c];
                String superclassName = utf8.toString().replace('/', '.');
                if (isInterface(access_flags)) {
                    assert (superclassName.equals("java.lang.Object"));
                    clintToKind.put(className, TypeKind.INTERFACE);
                } else {
                    classToDeclaredSuperclass.put(className, superclassName);
                    if (isAbstract(access_flags))
                        clintToKind.put(className, TypeKind.ABSTRACT_CLASS);
                    else
                        clintToKind.put(className, TypeKind.CONCRETE_CLASS);
                }
            }
            int n_interfaces = (int) in.readUnsignedShort();
            Set<String> interfaces = new ArraySet<String>(n_interfaces);
            clintToDeclaredInterfaces.put(className, interfaces);
            for (int i = 0; i < n_interfaces; ++i) {
                int interface_index = in.readUnsignedShort();
                int c = (Integer) constant_pool[interface_index];
                Utf8 utf8 = (Utf8) constant_pool[c];
                String interfaceName = utf8.toString().replace('/', '.');
                interfaces.add(interfaceName);
            }
            in.close();
        } catch (IOException ex) {
            ex.printStackTrace();
            System.exit(1);
        }
    }

    private static boolean isInterface(char access_flags) {
        return (access_flags & jq_ClassFileConstants.ACC_INTERFACE) != 0;
    }

    private static boolean isAbstract(char access_flags) {
        return (access_flags & jq_ClassFileConstants.ACC_ABSTRACT) != 0;
    }

    private boolean populateInterfaces(String c, Set<String> result) {
        Set<String> interfaces = clintToDeclaredInterfaces.get(c);
        if (interfaces == null) {
            missingClints.add(c);
            return false;
        }
        boolean success = true;
        for (String d : interfaces) {
            if (result.add(d)) {
                success &= populateInterfaces(d, result);
            }
        }
        return success;
    }

    private Object[] processConstantPool(DataInput in, int size) throws IOException {
        Object[] constant_pool = new Object[size];
        for (int i = 1; i < size; ++i) { // CP slot 0 is unused
            byte b = in.readByte();
            switch (b) {
            case jq_ClassFileConstants.CONSTANT_Integer:
                in.readInt();
                break;
            case jq_ClassFileConstants.CONSTANT_Float:
                in.readFloat();
                break;
            case jq_ClassFileConstants.CONSTANT_Long:
                ++i;
                in.readLong();
                break;
            case jq_ClassFileConstants.CONSTANT_Double:
                ++i;
                in.readDouble();
                break;
            case jq_ClassFileConstants.CONSTANT_Utf8:
            {
                byte utf[] = new byte[in.readUnsignedShort()];
                in.readFully(utf);
                constant_pool[i] = Utf8.get(utf);
                break;
            }
            case jq_ClassFileConstants.CONSTANT_Class:
                constant_pool[i] = new Integer(in.readUnsignedShort());
                break;
            case jq_ClassFileConstants.CONSTANT_String:
                in.readUnsignedShort();
                break;
            case jq_ClassFileConstants.CONSTANT_NameAndType:
            case jq_ClassFileConstants.CONSTANT_FieldRef:
            case jq_ClassFileConstants.CONSTANT_MethodRef:
            case jq_ClassFileConstants.CONSTANT_InterfaceMethodRef:
                in.readUnsignedShort();
                in.readUnsignedShort();
                break;
            default:
                throw new ClassFormatError("bad constant pool entry tag: entry="+i+", tag="+b);
            }
        }
        return constant_pool;
    }

    /**
     * Returns the set of every class name examined by ClassHierarchy
     */
    public Set<String> allClassNamesInPath() {
        if (clintToKind == null)
            build();
        return clintToKind.keySet();
    }
}


A new Taub Center study conducted by Researcher Kyrill Shraberman, in collaboration with Paamonim (a non-profit organization promoting financial responsibility across Israel), examines the gap between the income and expenditure of Israeli households (hereinafter, the current gap). A negative current gap (when expenditure is greater than income) is liable to increase the household's risk of economic difficulties.
The study examines the relationship between various household characteristics, such as socioeconomic status and age of the head of household, and the probability of having a negative gap.
The share of households with a negative gap in the Jewish population stands at about one-third of all those aged 25-60: 35% of households among married couples and 39% among unmarried persons (as of 2015).
One of the most significant household expenditures is the expenditure on housing (rent or mortgage). Due to the centrality of this expenditure, and due to the fact that housing prices have risen significantly in the past decade, the Taub Center study classifies households according to the type of their expenditure on housing: rent, mortgage payments, rent and mortgage payments, or no expense.
The study found that households that pay both rent and mortgage payments (for example, households that purchased an apartment that is in the process of being built and are currently renting) have the highest negative gap among all the expenditure groups, and the gap is particularly large among unmarried households where the head of household is aged 50-60, and among 40-50-year-olds for married households. However, this is a very small share (amounting to only a few percentage points) of all households in Israel.
The study also found that most of the households that pay only mortgage payments do not have a negative gap. Households of married couples who pay only rent had a balanced average, with no significant positive or negative gaps. However, for unmarried households, there was a negative gap among much younger apartment renters (aged 25-29) and much older renters (aged 50-60). As expected, households without housing costs have almost no negative gap and, among most of them, income exceeds expenditure.
Type of housing expenditure was also found to be significant in determining the size of the negative gap in an analysis including a combination of several characteristics, such as the age of the head of household, place of residence, and socioeconomic background. Among unmarried persons, the combined expenditure on mortgages and rent is the most influential factor: this expenditure increased the per capita negative gap by 156% relative to households without housing expenditures (when other characteristics are held constant).
Expenditure on rent only increased the gap by 52%, and on mortgage payments – only by 39%. These three types of housing expenditure were the factors that most affected the size of the negative gap among unmarried persons.
Among married couples, the effect of the type of housing expenditure on the gap between expenditure and income was much lower. Expenditure on mortgages and rents increased the negative gap by 14% (the characteristic with the second-largest impact on the size of the gap), expenditures on rent only by 7% (the characteristic with the fourth-largest effect), and spending on mortgages increased the negative gap by only 1% relative to households with the same characteristics that have no housing expenditures.
In contrast, among households of married couples, socioeconomic class is the most influential factor in determining the size of the negative gap. Having a lower socioeconomic standing (belonging to the bottom income quintile) increases the negative gap by 23% relative to households with a high socioeconomic status (belonging to the top quintile). Among unmarried persons, having a lower socioeconomic standing increases the negative gap by 37% but, as stated above, the type of household expenditure is a more influential factor for this group.
The Taub Center study also analyzes the effect that consumption categories have on the size of the negative gap. The findings indicate that expenditures on "personal expenses" – including clothing and footwear, laundry services, haircuts, and cosmetics – increase the negative current gap at the highest rate both among those who are married (7.2%) and those who are unmarried (4.6%). It is reasonable to assume that the reason this category has such a large influence is that these expenditures, though not frequent, are relatively large and often unplanned, making it difficult to effectively manage the budget, as opposed to regular and planned expenses such as rent, education, and home maintenance.
The expenditure with the second-largest effect on the negative gap among unmarried persons is expenditure on a mortgage: 3.8% (compared with 1.9% among married couples). Among married couples, the expenditure with the second-largest effect is home maintenance (water, electricity, municipal taxes, and gas), which increases the negative gap by 6.8% (among unmarried persons, the effect of this expenditure is not significant).
Shraberman's research is based, among other things, on data from Paamonim, which enabled him to analyze household debt in Israel (data that are not fully available from other sources). The study includes an analysis that classifies liable households by the entity to which they owe money: (1) banks – debt resulting from loans, credit charges, debit balances, and mortgage payment delays; (2) commercial bodies – debt to suppliers and service providers (including municipal property taxes and electricity payments), non-bank loans (insurance and credit companies), payments to educational institutions, and more; (3) family and friends.
Most households in debt (93%) owe money to banks, 46%-51% owe money to friends and family, and between 21% and 37% owe money to commercial entities.
An analysis by age group found that total average debt (to all three types of entities) increased with age: the average debt in the 25-29 age group was NIS 150,000, compared to NIS 315,000 in the 50-60 age group. The highest debt to banks was recorded for households in the 45-49 age group, and the highest debt to family and friends, as well as to commercial entities, was recorded among those aged 50-60.
Comparing total debt by socioeconomic status (income quintiles) shows that there is no significant gap between the quintiles in the amount of debt owed, but there are gaps in the distribution of the entities to which households are indebted.
While the top income quintile owed the highest amount to banks (approximately NIS 174,000) the lowest quintile owed the lowest amount to the banks (approximately NIS 88,000). On the other hand, the bottom quintile owed the highest amount to family and friends (approximately NIS 110,000). These data show that, due to the low income of households in the lowest quintile, banks do not grant them high credit ratings, but they manage to raise funds from friends and family.
An in-depth analysis of debt to commercial entities shows that the most common type of debt in this category is financial debt – mainly credit from non-banking entities (insurance companies or credit card companies, for example). The second-largest type of debt is property taxes and fines, the third-largest is education spending, and the fourth-largest is debt to infrastructure suppliers (electricity, water, and gas).
An analysis of total liabilities taken by households in Israel shows that since 2007 there has been an increase in the growth rate of liabilities. An international comparison shows that the leverage (the ratio of total liability to GDP) of households in Israel is very low compared to other developed countries: the share of liability stands at 41% of GDP in Israel, compared with an average of 66% of GDP in the OECD.


Botswana, a landlocked country in Southern Africa, has a landscape defined by the Kalahari Desert and the Okavango Delta. Botswana is well known for having some of the best wilderness and wildlife areas on the African continent. Botswana has had one of the fastest growth rates in per capita income in the world and has transformed itself from one of the poorest countries in the world to an upper middle-income country.
Botswana is also known for its political stability, stable democracy and one of the best perceived corruption ranking in Africa.
The African Human Rights Moot Court Competition is the largest gathering of students, academics and judges around the theme of human rights in Africa. This annual event brings together all law faculties in Africa, whose top students argue a hypothetical human rights case as if they were before the African Court on Human and Peoples' Rights. The competition continuously prepares new generations of lawyers to argue cases of alleged human rights violations before the African Court.
Since its creation in 1992, 150 universities from 50 African countries have taken part in this permanent fixture on the Africa legal education calendar. The Moot has been a catalyst for the establishment of the leading programmes in the field of human rights teaching and research in Africa. In 2018, the 27th edition of the Moot Court Competition was hosted at the University of Ghana, Legon. The event brought together 51 teams from 20 African countries.
The 2019 hypothetical case will tackle issues relating to refugees, statelessness, children's rights, sexual minority rights and freedom of expression.
The competition is held in English, French and Portuguese.
Visit www.chr.up.ac.za/moot for more information.


A Porsche design: The Auto-Union racing car powered by a 16-cylinder mid-engine conceived and designed by Austrian engineers.
The Porsche design company undertook development work for all kinds of technical appliances, from wind turbines and other types of turbines to engines and new vehicle concepts for Wanderer and Zündapp. In 1933, Ferdinand Porsche designed the famous Auto Union 16-cylinder sports car for the only recently formed Auto-Union (from Audi, Horch, Wanderer and DKW). This car was a precursor to today's Formula One design principles -- a racing car that became one of the most successful of its time in motorsport.
Off the drawing boards of the Porsche design office: the Volkswagen Beetle, the world's most-produced car.
His most famous design, however, was the one for the Volkswagen. On 22 June 1934, Ferdinand Porsche secured the contract from the "RDA - Reichsverband der Deutschen Automobilindustrie" (Automobile Industry Association of the Reich) to develop the Volkswagen which would shape future developments at Porsche for years to come. The team of technicians from Porsche produced the first prototypes in the garage at Porsche's villa in Stuttgart. His son Ferry was in charge of test drives. Large-scale test drives first began in 1936 under the RDA's supervision.
Based on the 'KdF' car, the Type 82 VW is a military vehicle produced at the Volkswagen factory from 1940-1945.
In 1937, the German government appointed Ferdinand Porsche managing director for technology and planning at the company set up to build the Volkswagen ("people's car"). And on 26 May 1938, with the laying of the foundation stone for the Volkswagen factory, the Volkswagen itself became the "KdF (Kraft-durch-Freude, or "Strength through Pleasure") car". At the outbreak of the Second World War, production was converted over wartime needs: instead of a people's car for the everyman, the assembly line turned out military vehicles such as the amphibious "Schwimmwagen" and the so-called "Kübelwagen" (or "bucket" car). The drawing boards at Porsche Konstruktionen GesmbH in Stuttgart were filled with designs for tanks rather than race cars.


If you enjoy entertaining or just relaxing in the quiet seclusion of your own back yard... this is your dream come true! Don't miss out on this sparkling 4 bedroom 3 bath pool home in desirable Lillian Woods subdivision. Located just off Blue Angel Parkway only minutes from Pensacola NAS and the beautiful beaches of Perdido Key. The home has numerous updates including the flooring in the living areas and bedrooms, tile back splash in the kitchen and numerous light fixtures. Other great features include in ground pool with POOL MAINTENANCE included, 2 car garage and screened back porch. LAWN MAINTENANCE included... if you like low maintenance, easy living call today!


Written by Greg, dad to two, husband to one...doing the best he can!
I'm sitting on my sofa, it's a Thursday, and in addition to shoehorning in a bit of NETFLIX I have done half the school run, taken my son to his swimming lesson, enjoyed a meal out with my family, helped with homework, read a bedtime story, put the bins out and worked a 7.5 hour shift. Oh, and cobbled together this badly written diatribe... A good example of how you can make shift work...work, and work well.
I have had a number of jobs over my relatively short working life most of which have maintained what you would call normal business hours, apart from the odd temp job in retail-there is definitely therapy in stacking shelves.
I don't know how people get to the doctor or dentist or get their car serviced etc when at work during the traditional work pattern, I find an awful lot more flexibility in my work rhythm despite essentially being contracted to the same number of hours a week. These more mundane tasks tend to be far easier to sort with my current regime.
Work-life balance. I will finish with this as this is what most people strive to achieve when it comes to their lives. I certainly have it and consider myself very lucky as a result and get this, it certainly doesn't involve a 9-5.
Could coding be your new flexible career?