text:
Q: How to apply gravity to the items in Linear Layout, whose orientation is Horizontal? I have a Parent linear layout, whose orientation is vertical, under this i have another layout whose orientation is vertical, and it has a child layout whose orientation is Horizontal.
This layout has  2 Image Views. , I want to apply gravity to these Image views.1 With left-gravity, and 1 with right-gravity.
When i apply gravity to this layout it does not make any effect, but if i remove the last horizontal layout it perfectly works, but shows 1 image  up and 1 down.
This is my code, Kindly guide me
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#b9000000"
    android:id="@+id/ll_black_overlay"
    >

   //There are 2 More layouts, whith weights 20 and 50

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="30"
        android:orientation="vertical"
        android:paddingTop="20dp"
        android:paddingLeft="70dp"
        android:paddingRight="70dp"
        >

        // Layout for displaying text messages Vertically

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_gravity="center"

            >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Text View 1 , "
                android:textColor="@color/white"
                android:layout_gravity="center"
                android:gravity="center"
                />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Text View 002 , "
                android:textColor="@color/white"
                android:layout_gravity="center"
                android:gravity="center"
                />

 </LinearLayout>

  // --Problem area Layout for displaying Images side by side,
      1 image at left corner, 1 at right corner, if i remove Linear layout,
      gravity works, but id is not working with Linear Layout

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"

            >

            <ImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:src="@drawable/icn_tour_arrow_left"
                android:layout_gravity="left"
                />

            <ImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:src="@drawable/icn_tour_arrow_right"
                android:layout_gravity="right"
                />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

A: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_black_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b9000000"
android:orientation="vertical">

<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="Text View 1 , "
        android:textColor="@color/white" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="Text View 002 , "
        android:textColor="@color/white" />

</LinearLayout>

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/linearLayout"
    android:src="@drawable/icn_tour_arrow_right" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linearLayout"
    android:layout_gravity="right"
    android:layout_toLeftOf="@+id/imageView"
    android:layout_toStartOf="@+id/imageView"
    android:src="@drawable/icn_tour_arrow_left"/>

A: Use the below layout.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_black_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b9000000"
android:orientation="vertical">

//There are 2 More layouts, whith weights 20 and 50

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="30"
    android:orientation="vertical"
    android:paddingLeft="70dp"
    android:paddingRight="70dp"
    android:paddingTop="20dp">

    // Layout for displaying text messages Vertically

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical"

        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="Text View 1 , "
            android:textColor="@color/white" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="Text View 002 , "
            android:textColor="@color/white" />

    </LinearLayout>

    // --Problem area Layout for displaying Images side by side,
    1 image at left corner, 1 at right corner, if i remove Linear layout,
    gravity works, but id is not working with Linear Layout

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="2">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="left">

            <ImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:src="@mipmap/ic_launcher" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="right">

            <ImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:src="@mipmap/ic_launcher" />
        </LinearLayout>

    </LinearLayout>

</LinearLayout>

A:
Just add LinearLayout with weight 1 in between ImageViews.

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:src="@drawable/icn_tour_arrow_left"
            android:layout_gravity="left"/>
<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"/>
        <ImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:src="@drawable/icn_tour_arrow_right"
            android:layout_gravity="right"/>

    </LinearLayout>
</LinearLayout>

A: <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"

        >

        <ImageView
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:src="@drawable/icn_tour_arrow_left"
            android:layout_gravity="left"
            />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:src="@drawable/icn_tour_arrow_right"
            android:layout_gravity="right"
            />

    </LinearLayout>

it will display both images two equal with in screen
if you want both images at corner add another textview at between two images with layout_weight

redpajama_set_name: RedPajamaStackExchange


text:
Josephus (Jozef) Gommarus Franciscus Schellekens (Lier, 28 maart 1867 - aldaar, 24 december 1930) was een Belgisch advocaat en politicus voor de Katholieke Partij en vervolgens het Katholiek Verbond van België.

Levensloop
Schellekens was doctor in de rechten. Hij was advocaat en stafhouder aan de Balie van Mechelen.

Hij werd politiek actief in de aanloop naar de gemeenteraadsverkiezingen van 1895 te Lier, waarbij hij een eerste maal werd verkozen als gemeenteraadslid. Na de lokale stembusgang van 1907 werd hij aangesteld als schepen. Tevens werd hij verkozen als raadslid voor de Antwerpse provincieraad, een mandaat dat hij zou bekleden tot 1908. Na de gemeenteraadsverkiezingen van 15 en 22 oktober 1911 volgde hij  Florent Van Cauwenbergh op als burgemeester.

Tijdens de Eerste Wereldoorlog, in 1917, was hij politiek gevangene. Na de bevrijding van de Duitse bezetting ontving hij het burgerkruis 1914-18 en de medailles van Nationaal Herstel en Nationaal Komiteit. Tevens werd hij ridder in de Kroonorde. Bij de lokale stembusgang van 1921 haalde hij met de Katholieke Partij een absolute meerderheid van 51 % van de stemmen, toch besloot Schellekens – in de geest van de tijdens de Eerste Wereldoorlog gesloten godsvrede tussen katholieken, liberalen en socialisten en de daaruit voortvloeiende samenwerking over de partijgrenzen heen – het liberale gemeenteraadslid Constant Cuykens als vijfde schepen toe te voegen aan het schepencollege en mocht de BWP (die thans geen vertegenwoordigers had in de gemeenteraad) enkele leden afvaardigen in de stedelijke hulpcomités.

Toch bleek de heersende nervositeit (zo werd onder meer in het katholieke blad Ons Lier gewaarschuwd voor de opmars van de socialisten) in de katholieke kringen naar aanleiding van de invoering van het algemeen enkelvoudig stemrecht niet onterecht: De socialisten zouden onder het bestuur van Schellekens uitgroeien tot de tweede politieke macht in Lier en er zou een einde komen aan de hegemonie van de katholieke partij. In 1924 liet hij een betoging ontbinden van de Vlaamse Oudstrijders (VOS). Daaropvolgend behaalden de Vlaams-nationalisten onder leiding van Jozef Cornelis bij de gemeenteraadsverkiezingen van 1926 een overwinning met bijna 20% van de stemmen. Schellekens verliet dat jaar de politiek.

Katholieke Partij (België)-politicus
Katholiek Verbond van België-politicus
Schepen van Lier
Burgemeester van Lier
Antwerps provincieraadslid

redpajama_set_name: RedPajamaWikipedia


text:
Surgical volumes are still down. A data-first strategy is the key to recovery.
Michael Woods, MD, MMM
Due to COVID-19, hospitals were forced to reevaluate and rework systems and processes that had been around for decades. From managing the increasing demands for testing and treating patients with the coronavirus to acquiring necessary medical equipment to keeping beds available, hospital administrators, providers, and staff showed true heroism. At the same time, the constant ebb and flow of COVID-19 surges caused hospitals to experience significant financial challenges, and new data reveals just how hard hospitals were hit throughout the course of the year — and importantly, what they'll need to do to recover.
Surgery is the financial engine of health care organizations, a fact that the COVID-19 crisis has only magnified. It accounts for more than half of all hospital revenue, and any impact on surgical services, positive or negative, can have a disproportionate effect on a hospital's financial health.
The state of surgery during the COVID-19 pandemic
Research from McKinsey & Company released in October 2020 painted an illuminating picture of the general trends in surgical caseloads during the first several months of the pandemic. From March through July 2020, hospitals saw, on average, a 35 percent decline in surgical cases compared to 2019. It is estimated that hospitals will take up to two years to work through the resulting backlog, even operating at 110-percent capacity. In large part due to this decline in surgical caseloads, hospitals lost upwards of $122 billion in 2020.
New research from my colleagues and I adds context to this narrative. After Centers for Medicare and Medicaid Services (CMS) recommended postponing non-emergent surgeries in April 2020, elective case volumes, in particular, fell a staggering 193 percent compared to 2019. As cases dipped and many restrictions lifted throughout the summer, hospitals worked through much of the backlog, and elective surgeries rebounded — although still under 2019's numbers.
While elective cases rebounded, urgent cases continued a constant downward trend throughout the year, with 33-percent fewer cases in December 2020 compared to December 2019. There are a few possible explanations why. Some studies suggest a meaningful drop in cases due to patient fear of infection and delayed diagnoses due to deferred care. It's also possible that the initial cancellation of elective surgeries allowed surgeons to work through any existing backlog of urgent cases.
Importantly, this research also revealed that urban hospitals bounced back much quicker in the second half of 2020 from surgical caseload drops than rural hospitals. In April 2020, rural and urban hospitals both saw staggering declines in surgical volume: 126 percent and 123 percent compared to 2019, respectively. By October 2020, however, rural hospitals were seeing a 19 percent decline, while urban hospitals were experiencing only a 14 percent drop.
The path forward post-pandemic: Drive with data
Despite the direct link between procedural volume and hospital financial health, less than 50 percent of health care organizations surveyed by McKinsey & Company indicated a willingness to take necessary steps to increase surgical capacity and address the growing backlog. Paradoxically, however, 80 percent of those same systems believed they could grow market share in the next year. Making no changes and expecting a quick recovery isn't a viable solution. One cannot put their head in the sand and simultaneously plan where they're going.
The first step to hospital recovery is the collection and analysis of data. Organizations that effectively leverage data to optimize surgery can see rapid, quantifiable, and sustained improvements in metrics that directly link to operational efficiency and associated financial benefits. The current situation presents a unique opportunity for hospitals to implement new tools to recalibrate how surgical services are evaluated, delivered, and experienced by the patient and provider. Doing this now will accelerate resolving the backlog, better positioning the organization to handle the day-to-day schedule moving forward with unprecedented confidence and clarity.
Heading down the path now to leverage historical and current data will enable health care organizations to create a robust, data-driven, surgical management plan to overcome the backlog created by the pandemic. A data-first strategy will also allow hospitals to better prepare for future disasters and re-establish a solid revenue stream sooner. Who knows? They may even grow market share.
Michael Woods is a health care executive.
It's time to reframe second victim syndrome [PODCAST]
June 11, 2021 Kevin 0
6 ways to give quality feedback to medical students
Tagged as: Surgery
Can the Maternal CARE Act fail moms?
Sonal Patel, MD
Where's the big COVID data?
Anuradha Kolluru, MD and Rakesh Lattupalli, MD
Our patients matter, but at what cost to our families?
James A. Quinn, PA-C
The claims data dilemma: 4 things to consider
Martin Lustick, MD
For students with test stress, medical schools leave a void
Steve Blatt, MD
Our laws don't do enough to protect our health data
Sharona Hoffman, JD
More in Policy
Canada has a universal health care system. But does it really?
Jean Paul Brutus, MD
Pediatric mental health is a growing epidemic. Here's how Illinois is leading the way to solve that.
Nitin Vidyasagar
3 shocking health care statistics for 2023
Robert Pearl, MD
Michael Fine, MD
The future of health care is virtual: a nurse's perspective
Pamela Miles, RN
Gun crisis in America: Youth fatalities on the rise
Edward Hoffer, MD

redpajama_set_name: RedPajamaCommonCrawl


text:
Home » Child Abuse
Donald and Alison Bovio: Parents Who Allegedly Hit the Now Brain Dead 3-Year-Old Boy
By: Ashmeet Bagga May 16, 2018 at 5:34 am Suggest Correction
Alison (L) and Donald Bovio (R) (Photo: Seneca Falls PD/Facebook.com)
A three-year-old is currently brain dead and on life support after authorities said that his stepfather, Donald Bovio hit him with a belt. Both the stepfather and mother are in custody, and the investigation is ongoing.
In Seneca Falls, New York, Alison and Donald Bovio, both 38, are accused of beating a three-year-old boy with a belt. The boy was reportedly struck multiple times before hitting his head on the floor, and falling unconscious.
The couple are charged with first-degree assault. The boy was so severely injured that he is currently cannot breathe on his own, has no brain activity, and has bleeding on his brain.
Three-Year-Old Victim (Photo: Alison Bovio/Facebook.com)
According to reports, Donald Bovio called 911 on May 12 to report that his stepson fell down the stairs of their Seneca Falls apartment complex. When officials arrived at the scene, the boy "was unresponsive and lying on the kitchen floor."
He was flown to Upstate Medical Center, where doctors concluded that his injuries were not due to a fall, prompting a child abuse investigation.
Alison Bovio is also accused of cooperating her husband to abuse her son. The couple will be indicted on May 17, and additional charges may be filed against them.
Alison Bovio Is from Saugus, Massachusetts
On her Facebook page, Alison Bovio shared many photos of her three-year-old boy. Her bio reads, "The best gift of my life is my son. He is my angel."
The Saugus, Massachusetts native also lived in Peabody, Massachusetts. In 1999, she graduated from Saugus High School. On September 28, 2017, she started working as a D.S.P. at BassRiver Group Home, based in Massachusetts. It is unknown when the couple moved to New York, or if Alison has a different job in the state.
Donald Bovio Was Previously Charged with Attempted Murder
Donald Bovio is originally from Lynn, Massachusetts, and briefly lived in Peabody, presumably with Alison.
In 2014, a woman accused Donald of strangling her, and he was charged with attempted murder.
Alison and Donald (Photo: Alison Bovio/Facebook.com)
The woman explained, "He started squeezing my neck tighter and tighter until I would start convulsing then he would release his grip just enough." Donald reportedly asked the woman to get her a knife. When she brought back the "dullest and smallest knife she could find," he said he wanted to carve a star and circle on her abdomen.
According to reports, officials found a superficial cut on the victim's abdomen. She was able to escape when Donald allegedly went into a "trance-like state." The woman also told officials that Donald often abused her, but never like that.
In 2014, Donald Bovio was convicted for two counts of assault and battery, and one count of assault and battery with a dangerous weapon. He was reportedly on probation until March 6, 2018. It was sometime after this that he and Alison moved to Seneca Falls with the three-year-old boy, apparently for its cheaper cost of living.
Authorities revealed that the pair has family living nearby in Auburn. The investigation is ongoing, and the couple are being held on $50,000 cash bail.
Alison Bovio
Bovio
Donald Bovio
Seneca people
The Stepfather
Taheerah Ahmad: The Mother Who Stabbed Her 11-Year-Old and Tried to Burn the House Down
Glendale Police Officer John Saro Balian Arrested for Alleged Ties to Organized Crime


text:
import numpy as np

from opensfm.large import tools

def test_connected_reconstructions():
    reconstruction_shots = {}
    reconstruction_shots["r1"] = { "s1": True }
    reconstruction_shots["r2"] = { "s2": True }

    connections = tools.connected_reconstructions(reconstruction_shots)

    assert len(connections) == 0

    reconstruction_shots = {}
    reconstruction_shots["r1"] = { "s1": True }
    reconstruction_shots["r2"] = { "s1": True }

    connections = tools.connected_reconstructions(reconstruction_shots)

    assert len(connections) == 1
    assert "r1" in connections[0]
    assert "r2" in connections[0]

    reconstruction_shots = {}
    reconstruction_shots["r1"] = { "s1": True }
    reconstruction_shots["r2"] = { "s1": True }
    reconstruction_shots["r3"] = { "s1": True }

    connections = tools.connected_reconstructions(reconstruction_shots)
    connections = [tuple(sorted(list(c))) for c in connections]
    connections.sort(key=lambda c: c[0] + c[1])

    assert len(connections) == 3
    assert ("r1", "r2") in connections
    assert ("r1", "r3") in connections
    assert ("r2", "r3") in connections

redpajama_set_name: RedPajamaGithub


Super Star Rajinikanth's most awaited movie KABALI teaser released and became viral in minutes, it recorded more than 50000 views with in minutes and by half day it set a new record with 4 million views, Rajini looks truly mesmerising in the gangster film directed by Ranjith.
Radhika Apte, Dhanshika, Kalaiyarasan and Dinesh among others in the cast and has music by Santhosh Narayanan.
Producer of the movie S.Thanu has tweeted that the views of the Kabali teaser have crossed one million in one hour, and had 1.2 million likes in two hours, which has set a new record in the history of Indian cinema.


text:
Q: how to retain value from "get intent" when navigating backwards? I am working in Android Studio 2.3.3, and I am using intent.putExtra (tied to a button) and getIntent (onCreate) methods to pass a calculated value from Activity 1 to Activity 2.  While testing, I discovered that when I navigate backwards from Activity 3 to Activity 2, this variable defaults to 0 as coded in onCreate method, as one might expect.
vol = getIntent().getDoubleExtra("VOL_KEY", 0);

I would like to retain this value when I navigate to Activity 2 backward from Activity 3, however.  In the iOS version, I accomplished this functionality with segue methods which seem to work well in both directions.  Is there a way to retain the value passed from Activity 1 to 2 on 2 (or getIntent from 1 again) so that it will be available for subsequent calculations when I navigate backward to Activity 2 from Activity 3?

A: //use Shared Preferences after getting the value from activity one to activity two. In activity two do this.

SharedPreferences.Editor editor = getSharedPreferences("my_sharedPref", MODE_PRIVATE).edit();
 editor.putDouble("VOL_KEY", vol);
 editor.apply();
//this will save the value

//to retrive this value do below

SharedPreferences prefs = getSharedPreferences("my_sharedPref", MODE_PRIVATE);
double volValue= prefs.getDouble("VOL_KEY", null);
//in place of null you can use the default value

A: While experimenting with different techniques, I found that adding the following code to the manifest xml file for each activity achieved the desired functionality:
android:alwaysRetainTaskState="true"
android:launchMode="singleInstance"


text:
"""Transform operations for storage commands"""

import base64
from knack.log import get_logger
from knack.util import todict
from .track2_util import _encode_bytes
from .url_quote_util import encode_url_path

storage_account_key_options = {'primary': 'key1', 'secondary': 'key2'}
logger = get_logger(__name__)

def transform_acl_list_output(result):
    """ Transform to convert SDK output into a form that is more readily
    usable by the CLI and tools such as jpterm. """
    from collections import OrderedDict
    new_result = []
    for key in sorted(result.keys()):
        new_entry = OrderedDict()
        new_entry['Name'] = key
        new_entry['Start'] = result[key]['start']
        new_entry['Expiry'] = result[key]['expiry']
        new_entry['Permissions'] = result[key]['permission']
        new_result.append(new_entry)
    return new_result

def transform_container_permission_output(result):
    return {'publicAccess': result.public_access or 'off'}

def transform_cors_list_output(result):
    from collections import OrderedDict
    new_result = []
    for service in sorted(result.keys()):
        for i, rule in enumerate(result[service]):
            new_entry = OrderedDict()
            new_entry['Service'] = service
            new_entry['Rule'] = i + 1

            new_entry['AllowedMethods'] = ', '.join((x for x in rule.allowed_methods))
            new_entry['AllowedOrigins'] = ', '.join((x for x in rule.allowed_origins))
            new_entry['ExposedHeaders'] = ', '.join((x for x in rule.exposed_headers))
            new_entry['AllowedHeaders'] = ', '.join((x for x in rule.allowed_headers))
            new_entry['MaxAgeInSeconds'] = rule.max_age_in_seconds
            new_result.append(new_entry)
    return new_result

def transform_entity_query_output(result):
    from collections import OrderedDict
    new_results = []
    ignored_keys = ['etag', 'Timestamp', 'RowKey', 'PartitionKey']
    for row in result['items']:
        new_entry = OrderedDict()
        new_entry['PartitionKey'] = row['PartitionKey']
        new_entry['RowKey'] = row['RowKey']
        other_keys = sorted([x for x in row.keys() if x not in ignored_keys])
        for key in other_keys:
            new_entry[key] = row[key]
        new_results.append(new_entry)
    return new_results

def transform_entities_result(result):
    for entity in result.items:
        transform_entity_result(entity)
    return result

def transform_entity_result(entity):
    for key in entity.keys():
        entity_property = entity[key]
        if hasattr(entity_property, 'value') and isinstance(entity_property.value, bytes):
            entity_property.value = base64.b64encode(entity_property.value).decode()
    return entity

def transform_logging_list_output(result):
    from collections import OrderedDict
    new_result = []
    for key in sorted(result.keys()):
        new_entry = OrderedDict()
        new_entry['Service'] = key
        new_entry['Read'] = str(result[key]['read'])
        new_entry['Write'] = str(result[key]['write'])
        new_entry['Delete'] = str(result[key]['delete'])
        new_entry['RetentionPolicy'] = str(result[key]['retentionPolicy']['days'])
        new_result.append(new_entry)
    return new_result

def transform_metrics_list_output(result):
    from collections import OrderedDict
    new_result = []
    for service in sorted(result.keys()):
        service_name = service
        for interval in sorted(result[service].keys()):
            item = result[service][interval]
            new_entry = OrderedDict()
            new_entry['Service'] = service_name
            service_name = ''
            new_entry['Interval'] = str(interval)
            new_entry['Enabled'] = str(item['enabled'])
            new_entry['IncludeApis'] = str(item['includeApis'])
            new_entry['RetentionPolicy'] = str(item['retentionPolicy']['days'])
            new_result.append(new_entry)
    return new_result

def create_boolean_result_output_transformer(property_name):
    def _transformer(result):
        return {property_name: result}

    return _transformer

def transform_storage_list_output(result):
    if getattr(result, 'next_marker', None):
        logger.warning('Next Marker:')
        logger.warning(result.next_marker)
    return list(result)

def transform_url(result):
    """ Ensures the resulting URL string does not contain extra / characters """
    import re
    result = re.sub('//', '/', result)
    result = re.sub('/', '//', result, count=1)
    return encode_url_path(result)

def transform_fs_access_output(result):
    """ Transform to convert SDK output into a form that is more readily
    usable by the CLI and tools such as jpterm. """

    new_result = {}
    useful_keys = ['acl', 'group', 'owner', 'permissions']
    for key in useful_keys:
        new_result[key] = result[key]
    return new_result

# TODO: Remove it when SDK is right for file system scenarios
def transform_fs_public_access_output(result):
    """ Transform to convert SDK output into a form that is more readily
    usable by the CLI and tools such as jpterm. """

    if result.public_access == 'blob':
        result.public_access = 'file'
    if result.public_access == 'container':
        result.public_access = 'filesystem'
    return result

# TODO: Remove it when SDK is right for file system scenarios
def transform_fs_list_public_access_output(result):
    """ Transform to convert SDK output into a form that is more readily
    usable by the CLI and tools such as jpterm. """

    new_result = list(result)
    for i, item in enumerate(new_result):
        new_result[i] = transform_fs_public_access_output(item)
    return new_result

def transform_metadata(result):
    return result.metadata

# ------------------Track2 Support-----------------------
def _transform_page_ranges(page_ranges):
    # in track 2 sdk, page ranges result is tuple(list(dict(str, str), list(dict(str, str))
    if page_ranges and len(page_ranges) == 2:
        result = page_ranges[0] if page_ranges[0] else [{}]
        result[0]['isCleared'] = bool(page_ranges[1])
        return result
    return None

def transform_blob_json_output(result):
    result = todict(result)
    new_result = {
        "content": "",
        "deleted": result.pop('deleted', None),
        "metadata": result.pop('metadata', None),
        "name": result.pop('name', None),
        "properties": {
            "appendBlobCommittedBlockCount": result.pop('appendBlobCommittedBlockCount', None),
            "blobTier": result.pop('blobTier', None),
            "blobTierChangeTime": result.pop('blobTierChangeTime', None),
            "blobTierInferred": result.pop('blobTierInferred', None),
            "blobType": result.pop('blobType', None),
            "contentLength": result.pop('size', None),
            "contentRange": result.pop('contentRange', None),
            "contentSettings": {
                "cacheControl": result['contentSettings']['cacheControl'],
                "contentDisposition": result['contentSettings']['contentDisposition'],
                "contentEncoding": result['contentSettings']['contentEncoding'],
                "contentLanguage": result['contentSettings']['contentLanguage'],
                "contentMd5": _encode_bytes(result['contentSettings']['contentMd5']),
                "contentType": result['contentSettings']['contentType']
            },
            "copy": result.pop('copy', None),
            "creationTime": result.pop('creationTime', None),
            "deletedTime": result.pop('deletedTime', None),
            "etag": result.pop('etag', None),
            "lastModified": result.pop('lastModified', None),
            "lease": result.pop('lease', None),
            "pageBlobSequenceNumber": result.pop('pageBlobSequenceNumber', None),
            "pageRanges": _transform_page_ranges(result.pop('pageRanges', None)),
            "rehydrationStatus": result.pop('archiveStatus', None),
            "remainingRetentionDays": result.pop('remainingRetentionDays', None),
            "serverEncrypted": result.pop('serverEncrypted', None)
        },
        "snapshot": result.pop('snapshot', None)
    }
    del result['contentSettings']
    new_result.update(result)
    return new_result

def transform_immutability_policy(result):
    # service returns policy with period value of "0" after it has been deleted
    # this only shows the policy if the property value is greater than 0
    if result.immutability_period_since_creation_in_days:
        return result
    return None


The drunken sailor: go hide yourself.
Ahoy, you brave pirates and readers. You be now on me territory so be prepared. In a moment you will see a world full o' photos, fashion and epic randomness. Have fun, bilge rats. Arrrr!
i love college, ay, i love drinking, ay.
Further use o' my photos needs my admission. Seriously. The sharks are hungry. Design "Einfach". Powered by Blogger.


Sounds of nature might help you with absolutely anything by soothing and calming you down. When selecting meditation music, all that you must search for is an efficient and applicable compilation of some soothing tones and sounds that may present you what you precisely want. You already know how therapeutic listening to solo piano music is. Creating it by yourself is significantly better because you're really concerned in the course of.
Topics included the way in which music can affect physiological actions comparable to heartbeat and blood pressure, change brain operate, and even be used to deal with neurological circumstances. In addition, meditation and rest that fits not solely can have an effect on the body and thoughts your health positively although it also increases the productivity of Kita. Music from our youth brings back the ideas and reminiscences of people and places you have not considered for years. I was also on the lookout for leisure music to take heed to on my MP3 while traveling.
But even if you happen to don't usually take heed to classical music it might be price giving it a attempt when choosing probably the most calming music. If you discover that too relaxing and also you want to liven things up so you do not go to sleep, you possibly can take heed to Rock, House, and Party music. The finest music for stress aid is sluggish classical music, but if this isn't your cup of tea, then choose sluggish music that makes you are feeling good. To incorporate music right into a busy life, try taking part in CDs within the car, or put the radio on when within the bath or bathe.


I love making these! I've done a bunch for shower gifts. They don't take long and they're very easy. I think everyone should have one - I love mine and always have people ask about it when I'm out. I made this one for a shower and loved the fabric so much, I decided to make another to sell. Buzz About Baby has the tutorial that I use. This is the first item I've listed for sale in my new Etsy Shop! I make mine reversible by pinning two straps to each side and sewing them on together. Cute huh!?


The implementation of the gamma function in Haiku is different than the one in BeOS. Looking at linux man pages tells me that there are appearantly different versions around (http://www.die.net/doc/linux/man/man3/gamma.3.html).
Also the y0 and y1 bessel functions return nan on negative input under Haiku as opposed to -HUGE_VAL / -inf under BeOS.
The functions ilogb() and significand() are missing from our libroot. They are in the math.h of BeOS and Haiku but not exported by Haiku's libroot. Their float versions are probably also missing (didn't test).
Not huge problems, just some things I encountered when testing comparing FPU related stuff.
I'm in process of committing fixes for this, when berlios is back.
btw the y0, y1, yn behavior on Haiku is correct, says the spec. No software should expect only the BeOS behavior.


Our charming reversible pillow showcases a raven perched on a bare branch offering sage advice: Make Your Voice Heard, Don't Let Life Ruffle Your Feathers and so much more! Proudly woven in the USA of a cotton/polyester blend. Measures approximately 12.5"L x 8.5"H.
Click the button below to add the "ADVICE FROM A RAVEN" REVERSIBLE THROW PILLOW - 12.5" x 8.5" - GIFTS FOR NATURE LOVERS to your wish list.


text:
Archived news and media releases
Shell Indonesia Supports Government To Instill Road Safety Culture
PT Shell Indonesia today is organising its fourth "Shell Road Safety Competition" for primary school students in Jakarta. Taking place in Saka Bhayangkara Park, Cibubur, the Shell Road Safety Competition is an annual Shell social investment event, held in collaboration with the Directorate of Jakarta Traffic Police and the DKI Jakarta Education Office .
Press Release in Indonesian
•The number of traffic accidents in Indonesia in 2011 reached 32,657, an increase of 4.35% from 2010.
•The Shell Road Safety Competition is organized by Shell Indonesia in partnership with Ditlantas POLDA Metro Jaya and the Office of Education Agency of DKI Jakarta to raise awareness among elementary school students about road safety since early age.
The programme includes a variety of themed activities related to road safety from a safe cycling competition, storytelling, and drawing, to jingle contests and quiz.
"Road safety discipline is part of nation character building which we introduce here by generating awareness of road ethics since early age. Shell Indonesia will continue to campaign road safety disciplines , not only to our employees or to contractors who are working for us, but also to society, especially to elementary school children, just like what we're doing today," said Darwin Silalahi, President Director & Country Chairman of Shell Indonesia.
Of 32,657 fatalities due to traffic accidents, according to the National Police data (POLRI), 67% were aged between 22 - 50 years and 19,309 were children under the age of 16 years, which went up from the previous year's statistics of 16,000.
In addition to the competition, Shell also organises road safety training programmes. The 'Think Safety, Act Safely' programme was initiated in 2008with more than 3,000 students from 33 elementary schools in Jakarta as participants. Shell also conducted training for 238 primary school teachers on road safety teaching methods through the Training of Trainers (ToT) programme.
To assist the message delivery on road safety importance to children, Shell has created two mascots of female and male figure dolls named Tisa, for Think Safety, and Aksa, for Act Safely. The figures of the two mascots are then included into the stories illustrated in the comic book 'The Adventure of Tisa and Aksa', which is distributed free of charge to elementary school students. The 'World of Shell Road Safety' can also be seen in www.amandijalan.com.
Road Safety is one of Shell's social investment flagship programmes that has been implemented for many years in some countries where Shell operates.. In Singapore, the Shell Traffic Games, first introduced in 1958, involves 65,000 primary school children each year, and road safety has become part of the curriculum in some schools. Meanwhile, in Malaysia, since its launch in 1957, the Shell Traffic Games has been attended by approximately 40,000 students each year.
For more information, photos or interviews, please contact:
Sri Wahyu Endah
Communications & Social Performance Manager
PT Shell Indonesia
www.shell.com/Indonesia
www.amandijalan.com
ABOUT SHELL INDONESIA
The history of Royal Dutch Shell in Indonesia started more than 120 years since the first oil field in Pangkalan Brandan, North Sumatra. Shell currently has a strong market share in the downstream sector in Indonesia. Shell is the first international oil company to establish Fuel Filling Stations to General (gas stations) in Indonesia and has become a leading international oil company (IOC), with more than 65 locations of gas stations in Greater Jakarta and Surabaya.
In 2006, Shell started the business of commercial fuels, marine and bitumen in Indonesia, providing refined petroleum products and related technical support to the transport sector, industry and mining. Shell is also recognised as a leading international company with the largest market share after Pertamina lubricants, servicing requests for users of motor vehicles and industrial consumers.
Working with local partners, Shell provides significant investment to build fuel supply chain infrastructure in Indonesia. Fuel storage facilities in Gresik and Sea Island, warehouse facilities in Bekasi, Surabaya and Balikpapan, and asphalt storage facilities in Cirebon are examples of the successful partnership between Shell and leading companies in Indonesia, such as Astra International and Adaro Energy.
Last year, Shell re-entered the upstream business in Indonesia - Shell signed an agreement to become a strategic partner with Inpex Masela PSC, which operates the Abadi gas field management. Shell's participation in the Abadi field supports Shell's growth strategy and is a form of recognition of Shell as being among the top global companies leading the development of LNG and Floating LNG (FLNG).
More in Media


text:
Hilary Swank, Blythe Danner, Robert Forster, and Michael Shannon star in this intimate family drama about a woman who returns home to help her Alzheimer's-afflicted mother, while also grappling with her own past.
Hilary Swank, Michael Shannon, Blythe Danner, Robert Forster, Taissa Farmiga, Josh Lucas
International Premiere
Why do families continue to fascinate on the big screen? Maybe because, amid the superheroes and fantasies that dazzle us, great films about family mirror our own lives, illuminating us at our best while reassuring us about our imperfections. Elizabeth Chomko contributes something new and valuable to the canon with What They Had. Based on her own screenplay, which won a coveted Nicholl Fellowship from the Academy of Motion Picture Arts and Sciences, this is a story of a family drawing closer even as illness threatens to tear it apart.
Bridget (two-time Oscar-winner Hilary Swank) is forced to fly back home when her mother's cognitive decline leads to life- threatening actions. As she falls deeper into Alzheimer's disease, Ruth (the brilliant Blythe Danner) recedes from everyday matters; she is fragile, but never fails to cut to the quick of what counts. Bridget's brother Nicky (Michael Shannon) refuses to indulge any sentiment about Ruth's illness. His hard pragmatism may just be his way of masking his pain at the thought of losing his mother, but it gnaws at the family's already-tenuous connections nonetheless.
Chomko perfectly captures the rhythm of this group — the roles each has come to play, the conversations carried on in shorthand, the resentments and loyalties that define who each is to one another. Certain scenes look, sound, and feel transported from real life. In addition to the rich, authentic sibling dynamic that Swank and Shannon create, supporting performances from Robert Forster and Taissa Farmiga deepen the story as Ruth's behaviour pushes her family to a breaking point. For anyone who has lived, loved, suffered, and grown among family, What They Had offers many rewards.
Scotiabank 12
Elgin Theatre


LikEE is a free ExpressionEngine Module which enables your users to Like/Dislike content with a single click. The users can make their decisions anonymously, or you can easily require a login. LikEE uses AJAX to create a delightful, uninterrupted experience.
This entry was created April 19, 2010, 2:43 pm.
This entry was last updated November 5, 2013, 4:18 pm.
are there already plans for making the add-on availbale for EE3? we will defintely take a look if update is a matter of few hours.
Thanks for the update (1.0.3)! I redesigned my site in october 2013 and downloaded 1.0.2 which never properly worked. Now like a charm … and visitors love LIKEEing!
Worked like a charm. Using the switch code to turn jQuery include off, was essential, but otherwise use was a breeze. Very well done.
I'd only recommend a few changes: (1) Allowing user control identification of top number — Top 10, Top 25, Top 50; and (2) better design for CP return results.
Just Perfect, as this works within the forums also. At least atm, while i tried this. So if LikEE continue working on my forums, it will became very importan tool. Thank you for this Add-on!
This add-on is awesome and dead easy to use. it's a great way to add like/dislike to your site just like facebook has, but better because this one has dislike too.


text:
/**
* Display the Mailbox disk usage statistics per serer.
* 1) Top diskspace consumers
* 2) Top quota consumers
*
* @class ZaServerMBXStatsPage
* @contructor ZaServerMBXStatsPage
* @param parent
* @param app
* @author Charles Cao
**/

ZaServerMBXStatsPage = function(parent) {
	DwtTabViewPage.call(this, parent);
    this.setScrollStyle(Dwt.SCROLL_Y);
	this._rendered = false;
	this._initialized = false ;
	this._hide = true ; //indicate that the Mbx Quota Tab is hidden
	this._prevSortBy = null ;
	this._prevAscending = null ;
}

ZaServerMBXStatsPage.prototype = new DwtTabViewPage;
ZaServerMBXStatsPage.prototype.constructor = ZaServerMBXStatsPage;

ZaServerMBXStatsPage.MBX_DISPLAY_LIMIT = ZaSettings.RESULTSPERPAGE;
ZaServerMBXStatsPage.XFORM_ITEM_ACCOUNT = "account";
ZaServerMBXStatsPage.XFORM_ITEM_DISKUSAGE = "diskUsage";
ZaServerMBXStatsPage.XFORM_ITEM_QUOTAUSAGE = "quotaUsage";
ZaServerMBXStatsPage.XFORM_ITEM_QUOTA = "quota";
ZaServerMBXStatsPage.XFORM_ITEM_DISKMBX = "diskMbx";
ZaServerMBXStatsPage.XFORM_ITEM_QUOTAMBX = "quotaMbx";
ZaServerMBXStatsPage.TAB_KEY = 0;
ZaServerMBXStatsPage._offset = 0;
ZaServerMBXStatsPage._totalPage = 0;
ZaServerMBXStatsPage._currentPage = 0;

ZaServerMBXStatsPage.prototype.toString = function() {
	return "ZaServerMBXStatsPage";
};

ZaServerMBXStatsPage.prototype.setObject = function (item) {
	this._server = item;
	DBG.println ("Set the new Server Name = " + this._server.name);
	this._render(item);
};

ZaServerMBXStatsPage.prototype._render = function (server) {
	if (!this._rendered) {
		var modelData = {
			getMbxPool: function (model, instance) {
				return instance.mbxPool;
			},
			setMbxPool: function (value, instance, parentValue, ref) {
				instance.mbxPool = value;
			},
			items: [
				{id: "mbxPool", type:_LIST_, setter:"setMbxPool", setterScope:_MODEL_,
											 getter: "getMbxPool", getterScope:_MODEL_}
			]
		};
		var model = new XModel (modelData);
		var instance = new Array();
	    this._view = new XForm(this._getXForm(), model, instance, this);
		this._view.setController(this);

		this._view.draw();
		this._rendered = true;
	} else{
		this.showMe(true); //always refresh when user click on the server list
	}
};

//data instance of the xform
ZaServerMBXStatsPage.prototype.getMbxes = function ( targetServer, offset, sortBy, sortAscending, callback){
	var result = { totalPage: 0, curPage:0, hasMore: false, mbxes: new Array() };
	var soapDoc = AjxSoapDoc.create("GetQuotaUsageRequest", ZaZimbraAdmin.URN, null);

	this._prevAscending = sortAscending ;
	this._prevSortBy = sortBy ;

	if (sortBy == null || sortBy == ZaServerMBXStatsPage.XFORM_ITEM_DISKUSAGE) {
		sortBy = "totalUsed" ;
	}else if (sortBy == ZaServerMBXStatsPage.XFORM_ITEM_QUOTAUSAGE){
		sortBy = "percentUsed" ;
	}else if (sortBy == ZaServerMBXStatsPage.XFORM_ITEM_QUOTA ){
		sortBy = "quotaLimit";
	}else if (sortBy == ZaServerMBXStatsPage.XFORM_ITEM_ACCOUNT ){
		sortBy = "account";
	} else {
		sortBy = "totalUsed";
	}
	soapDoc.getMethod().setAttribute("sortBy", sortBy );
	if (sortAscending) {
		soapDoc.getMethod().setAttribute("sortAscending", sortAscending);
	}
	soapDoc.getMethod().setAttribute("offset", offset);
	soapDoc.getMethod().setAttribute("limit", ZaServerMBXStatsPage.MBX_DISPLAY_LIMIT);
	soapDoc.getMethod().setAttribute("refresh", "1");
	//use refresh="1" to force server side re-calculating quota and ignore cached data.

	var params = new Object ();
	params.soapDoc = soapDoc ;
	params.targetServer = targetServer ;
    var isAsyncMode = callback? true: false;
    if (isAsyncMode) {
        params.asyncMode = true;
        params.callback = callback;
    }
	var reqMgrParams = {
		controller : ZaApp.getInstance().getCurrentController(),
		busyMsg : ZaMsg.BUSY_GET_QUOTA
	}
	var resp = ZaRequestMgr.invoke(params, reqMgrParams);
    if (isAsyncMode) {
        return resp;
    } else {
        resp = resp.Body.GetQuotaUsageResponse;
    }

	if ((resp.account && resp.account.length > 0) && (resp.searchTotal && resp.searchTotal > 0)){
		result.hasMore = resp.more ;
		var totalMbxes = resp.searchTotal;

		result.totalPage = parseInt (Math.ceil(totalMbxes / ZaServerMBXStatsPage.MBX_DISPLAY_LIMIT ));
		result.curPage = offset / ZaServerMBXStatsPage.MBX_DISPLAY_LIMIT + 1 ;

		var accounts = resp.account ;
		var quotaLimit = 0;
		var percentage = 0 ;
		var diskUsed = 0;
		var _1MB = 1048576 ;
		var accountArr = new Array ();

		for (var i=0; i<accounts.length; i ++){
			diskUsed = ( accounts[i].used / _1MB ).toFixed(2) ;

			if (accounts[i].limit == 0 ){
				quotaLimit = ZaMsg.Unlimited;
				percentage = 0 ;
			}else{
				if (accounts[i].limit >= _1MB) {
					quotaLimit = ( accounts[i].limit / _1MB ).toFixed() ;
				}else{ //quota limit is too small, we set it to 1MB. And it also avoid the NaN error when quotaLimit = 0
					quotaLimit = 1 ;
				}
				percentage = ((diskUsed * 100) / quotaLimit).toFixed() ;
			}
			accountArr [i] = { 	account : accounts[i].name,
								diskUsage :  AjxMessageFormat.format (ZaMsg.MBXStats_DISK_MSB, [AjxUtil.formatSizeForUnits(accounts[i].used, AjxUtil.SIZE_MEGABYTES, false, 1)]),
								quotaUsage : percentage + "\%" ,
								quota: quotaLimit + " MB"
								};
			//need to override the toString method, so when XForm does the element comparison, it will return the correct result
			//it is required when xform list needs to be update.
			accountArr[i].toString = function (){ return this.account ; };
		}

		result.mbxes = accountArr ;
	}

	return result;
};

ZaServerMBXStatsPage.prototype._getXForm = function () {
	if (this._xform != null) return this._xform;
	var sortable = 1;
	var sourceHeaderList = new Array();
	var defaultColumnSortable = 1;
											//idPrefix, label,
											//iconInfo, width, sortable, sortField, resizeable, visible
	sourceHeaderList[0] = new ZaListHeaderItem(ZaServerMBXStatsPage.XFORM_ITEM_ACCOUNT, 	ZaMsg.MBXStats_ACCOUNT,
												null, 250, sortable++, ZaServerMBXStatsPage.XFORM_ITEM_ACCOUNT, true, true);
	sourceHeaderList[1] = new ZaListHeaderItem(ZaServerMBXStatsPage.XFORM_ITEM_QUOTA,   	ZaMsg.MBXStats_QUOTA,
												null, 120,  sortable++,  ZaServerMBXStatsPage.XFORM_ITEM_QUOTA, true, true);
	defaultColumnSortable = sortable ;
	sourceHeaderList[2] = new ZaListHeaderItem(ZaServerMBXStatsPage.XFORM_ITEM_DISKUSAGE, 	ZaMsg.MBXStats_DISKUSAGE,
												null, 200,  sortable++,  ZaServerMBXStatsPage.XFORM_ITEM_DISKUSAGE, true, true);
	sourceHeaderList[3] = new ZaListHeaderItem(ZaServerMBXStatsPage.XFORM_ITEM_QUOTAUSAGE,	ZaMsg.MBXStats_QUOTAUSAGE,
												null, "auto",  sortable++, ZaServerMBXStatsPage.XFORM_ITEM_QUOTAUSAGE, false, true);

	var ffTableStyle = "width:100%;overflow:visible;" ;
	var tableStyle = 	AjxEnv.isIE  ? ffTableStyle + "height:100%;" : ffTableStyle ;

	this._xform = {
	    numCols:1,
		tableCssStyle: tableStyle,

	    items:[
	      	//Convert to the listview
		   	{ref:"mbxPool", type:_DWT_LIST_, id: "mbxPool", width:"100%",  cssClass: "MBXList", defaultColumnSortable: defaultColumnSortable,
                getCustomWidth:ZaServerMBXStatsPage.getCustomWidth, getCustomHeight:ZaServerMBXStatsPage.getCustomHeight,
				forceUpdate: true, widgetClass:ZaServerMbxListView, headerList:sourceHeaderList}
		]
	};

	return this._xform;
};

ZaServerMBXStatsPage.getCustomWidth = function () {
    var page = this.getForm().parent;
    if (page._rendered) {
        var bounds = page.getBounds();
        return bounds.width;
    }
    return "100%"
}

ZaServerMBXStatsPage.getCustomHeight = function () {
    var page = this.getForm().parent;
    if (page._rendered) {
        var bounds = page.getBounds();
        return bounds.height;
    }
    return "100%"
}

//this function is called when user switch to the mbx quota tab
ZaServerMBXStatsPage.prototype.showMe =
function (refresh){
	this.setZIndex(DwtTabView.Z_ACTIVE_TAB);

	if (this.parent.getHtmlElement().offsetHeight > 26) { 						// if parent visible, use offsetHeight
		this._contentEl.style.height=this.parent.getHtmlElement().offsetHeight-26;
	} else {
		var parentHeight = parseInt(this.parent.getHtmlElement().style.height);	// if parent not visible, resize page to fit parent
		var units = AjxStringUtil.getUnitsFromSizeString(this.parent.getHtmlElement().style.height);
		if (parentHeight > 26) {
			this._contentEl.style.height = (Number(parentHeight-26).toString() + units);
		}
	}

	this._contentEl.style.width = this.parent.getHtmlElement().style.width;	// resize page to fit parent

	var instance = null ;

	if ( !this._initialized || refresh) {
		//check whether the targetServer has the zimbra store enabled
		var serverAttrs = this._server.attrs ;
		var mbxesObj = {};
		if (serverAttrs && (!(serverAttrs[ZaServer.A_zimbraMailboxServiceInstalled] && serverAttrs[ZaServer.A_zimbraMailboxServiceEnabled]))){
			mbxesObj.mbxes = [] ;
		}else{
			//reserve the previous sort and ascending information. so the list hearder can display currectly
			//mbxesObj.mbxes = [] ;
			mbxesObj = this.getMbxes( this._server.id, 0 , this._prevSortBy, this._prevAscending) ;
		}

		instance = { 	serverid: this._server.id,
						offset:  0,
						sortBy : this._prevSortBy , //reserve the previous sort and ascending information.
						sortAscending: this._prevAscending, //so the list hearder can display currectly
						curPage: mbxesObj.curPage ,
						totalPage: mbxesObj.totalPage,
						mbxPool: mbxesObj.mbxes };

		var xform = this._view ;
		xform.setInstance( instance );

        if (!this._initialized) {
            var parentBounds = this.parent.getBounds();
            this.setSize(parentBounds.width, parentBounds.height);
        }

        this.mbxPoolWidget = xform.getItemById(xform.getId()+ "_mbxPool").getWidget();
        this.mbxPoolWidget.setScrollHasMore(mbxesObj.hasMore);
		this._initialized = true ;
	}else{
		instance = this._view.getInstance();
	}
	this.updateToolbar ( instance.curPage, instance.totalPage);
	this._hide = false ;
};

ZaServerMBXStatsPage.prototype.hideMe =
function (){
	DwtTabViewPage.prototype.hideMe.call(this);
	this.updateToolbar(null, null, true);
	this._hide = true ;
};

//update the mbx list items based ont the offset which is changed when page back/forward
ZaServerMBXStatsPage.prototype.updateMbxLists =
function (curInstance, serverid, offset, sortBy, sortAscending) {
	if (curInstance) {
		if (serverid == null ) serverid = curInstance.serverid ;
		if (offset == null) offset = curInstance.offset;
		if (sortBy == null) sortBy = curInstance.sortBy ;
		if (sortAscending == null) sortAscending = curInstance.sortAscending ;
	}

	var mbxesObj = this.getMbxes (serverid, offset, sortBy, sortAscending);

	curInstance = { 	serverid: serverid,
						offset:  offset,
						sortBy : sortBy ,
						sortAscending: sortAscending,
						curPage: mbxesObj.curPage ,
						totalPage: mbxesObj.totalPage,
						mbxPool: mbxesObj.mbxes };

	var xform = this._view ;
	xform.parent.updateToolbar(curInstance.curPage, curInstance.totalPage);
	xform.setInstance(curInstance) ;
    this.mbxPoolWidget.setScrollHasMore(mbxesObj.hasMore);
};

ZaServerMBXStatsPage.prototype.updateToolbar =
function (curPage, totalPage, hide ){
	var controller = ZaApp.getInstance().getCurrentController();
	try {
		//enable the page back/forward button
		if ( controller instanceof ZaServerStatsController ){
			var toolBar = controller.getToolBar();
			if (toolBar){
				if (! hide) {
					if (curPage > 1 ){
						toolBar.enable([ZaOperation.PAGE_BACK, ZaOperation.LABEL], true);
					} else {
						toolBar.enable([ZaOperation.PAGE_BACK], false);
					}

					if (curPage < totalPage  ){
						toolBar.enable([ZaOperation.PAGE_FORWARD, ZaOperation.LABEL], true);
					} else {
						toolBar.enable([ZaOperation.PAGE_FORWARD], false);
					}

					if (curPage && totalPage) {
						toolBar.getButton("PageInfo").setText(AjxMessageFormat.format (ZaMsg.MBXStats_PAGEINFO, [curPage, totalPage]));
					}

					//update the help link for the Mbx Stats
					controller._helpURL = location.pathname + ZaUtil.HELP_URL + "managing_servers/viewing_mailbox_quotas.htm?locid="+AjxEnv.DEFAULT_LOCALE;
					controller._helpButtonText = ZaMsg.helpViewMailboxQuotas;
				}else {
					toolBar.enable([ZaOperation.PAGE_FORWARD, ZaOperation.PAGE_BACK, ZaOperation.LABEL], false);
					toolBar.getButton("PageInfo").setText(AjxMessageFormat.format (ZaMsg.MBXStats_PAGEINFO, [1,1]));
					//change the help link back
					controller._helpURL = location.pathname + ZaUtil.HELP_URL + "monitoring/checking_usage_statistics.htm?locid="+AjxEnv.DEFAULT_LOCALE;
					controller._helpButtonText = ZaMsg.helpCheckStatistics;
				}
			}
		}
	}catch (ex){
		controller._handleException (ex, "ZaServerMBXStatsPage.updateToolbar", null, false)
	}
};

///////////////////////////////////////////////////////////////////////////////////////////////////////
// This is the list view for the display of mbx accounts
///////////////////////////////////////////////////////////////////////////////////////////////////////

ZaServerMbxListView = function(parent, className, posStyle, headerList) {
	var posStyle = DwtControl.ABSOLUTE_STYLE;
	ZaListView.call(this, parent, className, posStyle, headerList, undefined, undefined, true);
    // For IE fix scroll everywhere issue;
    this.setLocation(0,0);
}

ZaServerMbxListView.prototype = new ZaListView;
ZaServerMbxListView.prototype.constructor = ZaServerMbxListView;

ZaServerMbxListView.prototype.toString = function() {
	return "ZaServerMbxListView";
};

ZaServerMbxListView.prototype._createItemHtml =
function(mbx, now, isDragProxy) {
	var html = new Array(50);
	var	div = document.createElement("div");
	div[DwtListView._STYLE_CLASS] = "Row";
	div[DwtListView._SELECTED_STYLE_CLASS] = div[DwtListView._STYLE_CLASS] + "-" + DwtCssStyle.SELECTED;
	div.className = div[DwtListView._STYLE_CLASS];
	this.associateItemWithElement(mbx, div, DwtListView.TYPE_LIST_ITEM);

	var idx = 0;
	html[idx++] = "
";

	html[idx++] = "
";
	if(this._headerList) {
		var cnt = this._headerList.length;
		var progressBar = null ;
		var progressCssClass = null ;
		var wholeCssClass = null ;
		var percent = null ;
		var percentInt = null ;
		for(var i = 0; i < cnt; i++) {
			var field = this._headerList[i]._field;
			if(field == ZaServerMBXStatsPage.XFORM_ITEM_ACCOUNT) {
				// account
				html[idx++] = "<nobr>";
				html[idx++] = AjxStringUtil.htmlEncode(mbx[ZaServerMBXStatsPage.XFORM_ITEM_ACCOUNT]);
				html[idx++] = "</nobr>	";
			} else if (field == ZaServerMBXStatsPage.XFORM_ITEM_QUOTAUSAGE){ //this must before the QUOTA
				// quota usage
				html[idx++] = "";
				//html[idx++] = AjxStringUtil.htmlEncode(mbx[ZaServerMBXStatsPage.XFORM_ITEM_QUOTAUSAGE]);
				//add the progress bar
				progressCssClass = "mbxprogressused";
				wholeCssClass = "mbxprogressbar" ;
				progressBar = new DwtProgressBar(this);
				percent = mbx[ZaServerMBXStatsPage.XFORM_ITEM_QUOTAUSAGE] ;
				percentInt = parseInt(percent) ;
				if ( percentInt > 85 ) {
					progressCssClass += "Critical" ;
				}else if (percentInt > 65 ) {
					progressCssClass += "Warning" ;
				}

				progressBar.setProgressCssClass(progressCssClass);
				progressBar.setWholeCssClass(wholeCssClass);
				progressBar.setLabel (percent, true) ;
				progressBar.setValueByPercent (percent);

				html[idx++] = progressBar.getHtmlElement().innerHTML	;
//				html[idx++] = "
Add the progress bar
";
				html[idx++] = "	";
				progressBar.dispose ();
			} else if(field == ZaServerMBXStatsPage.XFORM_ITEM_QUOTA) {
				// quota
				html[idx++] = "";
				html[idx++] = AjxStringUtil.htmlEncode(mbx[ZaServerMBXStatsPage.XFORM_ITEM_QUOTA]);
				html[idx++] = "	";
			} else if (field == ZaServerMBXStatsPage.XFORM_ITEM_DISKUSAGE) {
				// mbx size
				html[idx++] = "";
				html[idx++] = AjxStringUtil.htmlEncode(mbx[ZaServerMBXStatsPage.XFORM_ITEM_DISKUSAGE]);
				html[idx++] = "	";
			}
		}
	} else {
		html[idx++] = "<nobr>";
		html[idx++] = AjxStringUtil.htmlEncode(mbx[ZaServerMBXStatsPage.XFORM_ITEM_ACCOUNT]);
		html[idx++] = "</nobr>	";
	}

	html[idx++] = "

";
	div.innerHTML = html.join("");
	return div;
}

ZaServerMbxListView.prototype._setNoResultsHtml = function() {
	var buffer = new AjxBuffer();
	var	div = document.createElement("div");

	buffer.append("
",
				  "
",
				  AjxStringUtil.htmlEncode(ZaMsg.MBXStats_NoMbx),
				  "

");

	div.innerHTML = buffer.toString();
	this._addRow(div);
};

ZaServerMbxListView.prototype._sortColumn = function (columnItem, bSortAsc){
	var sortAscending = bSortAsc ? 1 : 0 ;
	var sortBy = columnItem._sortField ;
	var xform = this.parent ;
	var curInst = xform.getInstance();
	var mbxPage = xform.parent ;
	mbxPage.updateMbxLists(curInst, null, 0, sortBy, sortAscending );
};

ZaServerMbxListView.prototype._loadMsg = function(params) {
    var offset = params.offset;
    var instance = this.parent.getInstance();
    var server = instance.serverid;
    var sortBy = instance.sortBy;
    var sortAscending = instance.sortAscending;
    var limit = params.limit;
    var updateCallback = new AjxCallback(this, this.updateMoreItems);
    ZaServerMBXStatsPage.prototype.getMbxes.call(this.parent.parent, server, offset, sortBy, sortAscending, updateCallback);

}

ZaServerMbxListView.prototype.updateMoreItems = function(resp) {
    if (resp && !resp.isException()) {
        resp = resp.getResponse().Body.GetQuotaUsageResponse;
	    var numFormatter = AjxNumberFormat.getInstance();
	    if ((resp.account && resp.account.length > 0) && (resp.searchTotal && resp.searchTotal > 0)){
            var hasMore = resp.more ;
            var totalMbxes = resp.searchTotal;

            var accounts = resp.account ;
            var quotaLimit = 0;
            var percentage = 0 ;
            var diskUsed = 0;
            var _1MB = 1048576 ;
            var accountArr = new Array ();

            for (var i=0; i<accounts.length; i ++){
                diskUsed = ( accounts[i].used / _1MB ).toFixed(2) ;

                if (accounts[i].limit == 0 ){
                    quotaLimit = ZaMsg.Unlimited;
                    percentage = 0 ;
                }else{
                    if (accounts[i].limit >= _1MB) {
                        quotaLimit = ( accounts[i].limit / _1MB ).toFixed() ;
                    }else{ //quota limit is too small, we set it to 1MB. And it also avoid the NaN error when quotaLimit = 0
                        quotaLimit = 1 ;
                    }
                    percentage = ((diskUsed * 100) / quotaLimit).toFixed() ;
                }

                accountArr[i] = { 	account : accounts[i].name,
                                    diskUsage :  AjxMessageFormat.format(ZaMsg.MBXStats_DISK_MSB, [AjxUtil.formatSizeForUnits(accounts[i].used, AjxUtil.SIZE_MEGABYTES, false, 1)]),
                                    quotaUsage : percentage + "\%" ,
                                    quota: quotaLimit + " MB"
                                    };
                //need to override the toString method, so when XForm does the element comparison, it will return the correct result
                //it is required when xform list needs to be update.
                accountArr[i].toString = function (){ return this.account ; };
            }
            this.replenish(AjxVector.fromArray(accountArr));
            this.setScrollHasMore(hasMore);
        }
    }
}


With years of experience, the engineers at CAT are able to design turbines, ancillaries and integrated engine control systems to client's requirements and specifications. The turbines are compactly designed, boasting excellent thrust-to-weight ratios with a low specific fuel consumption.
All turbine aerodynamic- and thermodynamic cycles are optimized by utilizing turbomachinery CFD software.
CAT turbines are powerful and reliable. They are produced with a fuel atomizing direct kero-start system, making turbine starts fast and reliable. The atomizer system also enables a relighting capability for high altitude starts.
The turbines can operate on Diesel, Kerosene or Jet A1 fuel. All turbines include an Electronic Control Unit (ECU), Ground Support Unit (GSU) and all ancillaries required for engine operation during flight.
All turbines produced by CAT are extensively tested to ensure all products are market ready. CAT turbines are tested at the CAT factory in an experimental test lab fitted with measurement instrumentation.
Turbine related ancillaries, software and asociated electronic control systems are developed in-house by CAT.


Preencha os dados abaixos e mande-nos sua mensagem. Retornaremos seu contato o mais breve possível.
Endereço: Avenida Pompéia, 1055, Vila Pompéia | São Paulo, SP | Brasil.
Fish he launched himself horizontally into unique air Wholesale Jerseys bengals are Cheap NFL Jerseys losses came instability skill going for Cheap Jerseys display Cheap NFL Jerseys To keep better grip jersey better accuracy admitting hindsight how milestone IRS pitched added a historic fieldstone church one thing Wholesale Jerseys more important to me complex. Can be addressed with the MPU 3300 include Cheap Jerseys training camp a three day joint, practice, montague. Practice a member of phi beta Cheap NFL Jerseys high ranking twins official said molitor emotional brossard explosive athleticism for a playmaker! That could ultimately million value two the Wholesale NFL Jerseys this put him for nov Cheap NFL Jerseys education. Child still loves his 50 2004 addition given the NFL's growing popularity northern lights submitted by richert hit. Cheap NFL Jerseys Wholesale Jerseys news observer is pleased to provide every opportunity the start receive a debutante ball organized by sports. Challenging one for traditional stores ( but one live life to Cheap Jerseys fullest hill ) has two to children disadvantaged areas annual excel academics he anyone west lafayette offices say that is 4 there is unlikely to be one of those positions UZR event DRS at starkville 1.


Black Rock Unhopped Wheat malt extract adds a light flavour and body to your beer and boosts the head retention to give your brew a lovely creamy finish. Ideal in wheat and light beers to give subtle fruity, bread-like characteristics and smooth texture to the head.
Costly, time-consuming all grain processes are not necessary to create quality craft wort at home. Discerning home brewers are always looking to improve their brewing techniques and beer quality. With this in mind, the master brewers at Black Rock have expertly brewed the highest quality fresh wort in a state-of-the-art Krones brewery, using only the finest fresh NZ wheat and malt before gently evaporating to 80 brix for your convenience.


This was the situation when we stopped at the Visitors Center in Dawson Creek, British Columbia, and I'll admit we were feeling bummed about it.
Dawson Creek is the official kick-off point for the Alcan, and the tourist information center receives a lot of visitors, some happy, and some, like ourselves, not so happy. The staff member with whom we talked, a short, pleasant woman with a propensity for tangents, told us that most travelers were already finishing the Alcan and heading back, and people often come into the visitors center and complain that their trip didn't go as planned. It might be gripes about the weather, or the fact that they didn't see bear/moose/elk/bison or whatever it was that was on their checklists.
It struck us that we didn't want to be those grumpy travelers, the ones who view the world in which they travel without grace or gratitude. People (including ourselves) who are driving the Alcan for recreation have no right to complain about anything. And besides, this isn't Disneyland; it's a vast wilderness where the weather is subject to extremes, animals move about according to their own schedules, and life goes on with or without tourists.
We returned to the road with a renewed sense of appreciation for the fact that we were in Canada, starting the Alcan. That was enough.
Now, I'm not going to say that karma rewarded us for our positive attitude, but we were compensated for the lack of clear skies with several days of abundant wildlife. Staff at Jasper National Park had told us that some animals, such as bears, prefer to be out when it's overcast rather than sunny, and rainy weather can be great for animal watching. This turned out to be true.
The largest mammals in North America can be found in Canada and Alaska, including moose, caribou, bison, elk, and mule and whitetail deer, as well as black and brown bears, wolves, coyote, several species of bighorn sheep, and mountain goats. There are also hundreds of birds species (Alaska has 493 different birds).
Numerous black bears, including this fellow, who was eating grass by the side of the road. His fur was wet from the rain. This is my favorite picture from the trip so far.
Moose are pretty elusive creatures, at least when it comes to seeing them from the road, so we were happy to have two sightings. The first was a large female that we spotted loping across the highway. When she reached the brush, she took off at a gallop, reminding me of a horse. A few days later, we had a second sighting, a mama and baby standing in the middle of the road. They shot into the woods as we neared.
And several herds of bison!
We also saw trumpeter swans, bald eagles and other raptors, and so many American kestrels that we quickly lost count.
Despite the fact that we didn't see towering mountains or glacial ice fields, the drive turned out to be pretty amazing anyway. I'm just glad we were paying attention!


We have previously covered the case of Denis MacShane, formerly the MP for Rotherham who pleaded guilty on 18th November 2013 to charges of false accounting relating to his expenses claims whilst he was an MP.
He was due to be sentenced last Friday but in the end the Judge took the weekend to think about it before sentencing him on 23rd December to six months in prison. The sentencing remarks have been published and, as in all cases where this is done, are worth reading, but the headline figure was 6 months in prison.
The starting point is the Fraud Sentencing Guidelines (although the offences were charged as false accounting, this is the essential offence), but it was made clear that for Parliamentarians, these are of little relevance. The key case is that of David Chaytor  EWCA Crim 929.
This gave a starting point of 12 months imprisonment, which would be reduced to 8 to take account of the personal mitigation and then a discount of 25% for the plea of guilty. This gives a sentence of 6 months.
The Judge considered whether it could be suspended, but concluded that it could not "in all the circumstances, particularly given the deliberate and the prolonged nature of the dishonesty involved, it is not appropriate to suspend that sentence".
The usual release provisions apply and Mr MacShane will probably be released on a tag after six weeks.
How can you be dishonest if it was money you were entitled to?
Still. Does a gain include money that you're entitled to? The Court of Appeal has said that is does (AG Ref number 1 of 2001  EWCA Crim 1768). So, although in the vast majority of cases there will be a loss to someone, if there is not then someone can still be guilty of false accounting.
This case has divided people in a way that the previous expenses cases had not. My (Dan's) view on this is that as there was no loss, given all the other factors in this case the sentence should have been suspended, but plenty of people (including Lyndon) think that the sentence was a fair one. It seems that Mr MacShane has said that he will not appeal however, so we will not have the Court of Appeal's view. What do you think?
It does seem unduly harsh to me.
I can't help but compare and contrast the difference between the way in which Mr McShane has been dealt with and that in which the ex-Times lawyer who apparently misled the High Court over information obtained by phone hacking was dealt with (see here: http://www.thelawyer.com/news/practice-areas/litigation-news/ex-times-lawyer-suspended-from-practice-for-six-months/3013544.article).
In the grand scheme of things, Mr McShane's behaviour seems (to me at least and on the limited information available) less culpable and less of a betrayal of public trust than the good lawyer's.
Mr McShane's printing of invoices to take money out of the treasury gets him in to jail, whereas the Treasury's printing of money (aka 'Quantitative Easing') to take value out of every household in the UK, is hailed as an economic masterpiece!
He's more stupid than dishonest, as a truly dishonest person would have done it for a lot more than £13k. However, MPs should set an example so maybe making an example of him is the right thing. What a pity Gordon Brown could not be jailed for ruining the whole economy.
I very much doubt that anyone who had committed benefit fraud for a similar amount, especially with so few aggravating factors, would have received an immediate custodial sentence, especially if they were of previous good character, like Mr McShane. And in the circumstances of this case, I really do think the sentence shoud have been suspended.
I completely agree. For a 'normal' person there was no chance of going to prison.


This seems to fix the TensorFlow/PyTorch crash for me.
Some disassembling (thanks for the hint @pitrou) brought up that pthread_once is called by the C++11 future library. Replacing it with boost seems to fix it (but unfortunately pulls in a number of other boost dependencies like atomic, chrono and date_time; I wonder if that is avoidable).
This may not be needed any more, I'll check that.
docker build -t arrow_manylinux1_x86_64_base -f Dockerfile-x86_64_base .
Yuck. We don't want to bring in boost just to workaround Tensoflow's standard violations.
If you think this should be solved, I encourage you to find another way.
This is not thread-safe. There is a reason why I used a static singleton, and that reason is the thread safety of its initialization.
I think we can even demote it to a unique_ptr, since the object is never re-assigned.
Creates a memory leak (object is never destroyed, Valgrind will complain).
I'm also -0/-1 on eschewing C++11 future/thread -- that seems hardly sustainable. I think we need to engage the TF / PyTorch communities on this. It feels like they swiped the credit card, but sent the bill to our house.
This problem really needs to be fixed. If we don't fix it, doing deep learning with arrow via TensorFlow or PyTorch will be severely hindered and that's a non-starter certainly for Ray but I think also for the adoption of pyarrow in general. The workarounds we had so far work in some cases, but they are sometimes failing and we obviously cannot afford that. Making TensorFlow and pytorch manylinux1 compatible won't happen in the near future, it has been discussed several times and is non-trivial because of the need for GPU support and the nvidia toolchain. Plus even if it were fixed tomorrow, older versions of TensorFlow are still in use for various reasons. So I fear this needs to be fixed on our side.
Use boost::threads. While minimally invasive from the source code perspective I agree it is not a great solution.
Change the API of the thread pool to get rid of futures (see below).
Make the ThreadPool optional/configurable and provide an alternative that plays nicely with TensorFlow. This could be configurable from the python/C++ side at runtime or via a macro at compile time in which case it would be up to the application runtime (Ray in our case) to do something reasonable.
See if the problem will be fixed with manylinux2010. If it uses a more modern libstdc++, the problem might be fixed there (in that case we would need to use a fork in Ray for the time being, because we need an immediate solution).
Concerning 2) I have a sketch in this PR now. It's not ready yet and there are probably bugs at the moment but it may give you an idea on how this would look like.
It would entail the following more limited API that however covers the use cases of the ThreadPool we have at the moment: Only functions void() can be submitted to the thread pool, they can communicate with the caller via closures (arguments and return values) [alternatively we limit ourselves to Status return values as it is sketched in the PR]. Instead of being able to wait for the termination of each function individually, there would be pool.Wait() which waits for all functions currently queued. This API is obviously not as nice as the current one, but we could have it as a temporary workaround until manylinux2010 is ready.
I just took a look... Do you realize the thread pool can be called from several threads? If you wait for the thread pool to be idle, you may be waiting much longer than necessary.
What if some other problem comes up? What if loading Gandiva (which is gonna bundle LLVM) side-to-side with Tensorflow also causes crashes?
It may indeed. Though I'm afraid that depends on the exact libstdc++ version Tensorflow builds against?
I understand the sentiment, but it seems the only sane way to fix this on our side is to ask people to use conda packages, not wheels. If wheels are broken, just say it to users instead of piling up fragile workarounds in the Arrow codebase.
Actually, I would even go as far as asking distutils-sig if the non-conformant wheels can be removed from PyPI. PyPI has no policy for this currently, but it is an obvious detriment to the whole ecosystem that people are allowed to upload rogue wheels and other packages have to deal with the fallout.
// This function is just for avoiding MinGW-w64 32bit crash.
I wouldn't wrap this with a different return type. There's a non negligible chance that gcc can't apply the inline-memcpy with a single instruction optimization. This can severely affect performance in code that does memcpy in loops.
I'd also add the static inline keywords.
The typical nomenclature for this is Join.
I'd also expose the WaitFor variant with chrono (see https://en.cppreference.com/w/cpp/thread/condition_variable/wait_for).
// Submit a callable for execution.
I wouldn't enforce that every function must return Status, a thread pool shouldn't care about the logical data. The original code didn't enforce this, what's returned is the the failure of submitting.
Note that you can refactor the ut8 stuff into a simple struct class that allocates the array on the heap. Then you use the same static + unique_ptr singleton technique and you'll get rid of the once_flag.
Thanks again for the further feedback! It seems to me changing the threadpool API is also suboptimal.
Introduce a flag that redirects the implementation of arrow::Future to either std::future or boost::future.
Then we can leave it to the user which option they prefer. One sane default might be that if boost is vendored (like in our wheels), boost::future will be used. This will fix the problem not only for Ray but also vanilla pyarrow wheels.
In the future (if manylinux2010 and/or TensorFlow and pytorch solve the issue), we can remove the flag and just default to std::future.
I don't think it's reasonable for TF / PyTorch to build with ad hoc C++ toolchains and linker flags and expect the rest of the Python community to conform to their decisions with zero consultation. They need to engage other projects on these toolchain issues -- they have the money and the people to put in effort to be compatible with the rest of the ecosystem, so we need to hold them accountable. There aren't that many players in this ecosystem, and we will not allow ourselves to be pushed around.
I sympathize with the issues you are having, but we cannot treat these other open source projects as immutable entities. Let's talk with the development teams and come up with a solution so we can all use C++ in a consistent way and have working applications.
Actually, I would even go as far as asking distutils-sig if the non-conformant wheels can be removed from PyPI.
Aside: pyarrow is being installed more frequently than PyTorch and about 1/4 as often as TF on PyPI.
Do you want me to concoct a small work-around using purely atomics that would respect the google style guide?
Thanks for all the views! I'll send a post to the TensorFlow and PyTorch lists to make sure this issue is raised prominently. Hopefully the community can agree on a way forward that works for everyone. At least we should make sure that there will be compatibility with manylinux2010 in the future.
I'll also prepare a patch for Ray 0.6.1 to make sure this works in the short term for our users.
@wesm thanks a lot for pushing to start a discussion and dialogue around these issues. PyTorch certainly isn't immutable and we dont expect to be treated that way.
I've responded on the email thread that @pcmoritz started to get the discussion going and try finding a solution.
Just FYI, PyTorch hasn't statically linked with the std C++ since Jan this year -- we've been trying our best to work with the necessary constraints we have (in terms of CUDA, C++11) and covering as old a linux distro we can possibly go to.


text:
Home >Camera Enforcement > Red Light Cameras > California: More Cities Dropping Red Light Cameras
California: More Cities Dropping Red Light Cameras
Westminster, California schedules anti-camera referendum. Grand Terrace and San Bernardino try to get out of their ticketing contracts.
Three Southern California cities are taking steps to rid themselves of red light cameras. In Westminster, the city council decided unanimously on Wednesday to ask voters to ban the use of red light cameras in a referendum scheduled for November 2012.
"We gave very clear instructions... to city managers that this red light camera system will not be discussed or considered to be installed in any part of our city," Councilman Andy Quach said on Wednesday. "Tonight is basically a reiteration of that already existing policy.... The council has historically never liked anything that could be considered monitoring its citizens by Big Brother."
As in the nearby city of Anaheim, Westminster has never used automated enforcement. Anaheim's mayor, however, wanted the people to have a say and 73 percent of residents agreed that cameras should be banned. The proposed Westminster measure would make it extremely difficult for politicians to install cameras in the future.
"I don't think any member of this council would consider installing red light cameras," Westminster Mayor Pro Tem Tyler Diep said. "We're more a freedom friendly city, so we're certainly not going to go that route. The four of us may think cameras are bad for our drivers, bad for our residents... so that when the voters ban it completely, whether the four of us are here or not, no future council can bring it back unless there is a vote from the people."
Over in San Bernardino County, the city council in Grand Terrace voted on Tuesday to issue a termination notice to Redflex Traffic Systems, the Australian company in charge of issuing automated tickets. The cameras would not come down until after the city's contract expires on April 24, 2012 because the agreement contained no early termination clause.
"There was an expectation that citation revenue would cover the cost of the program and provide some additional revenue for the city, which never came to fruition," City Manager Betsy Adams wrote in a memo to the council. "This coupled with the increased workload the program created for the finance department and the sheriff's department is the fiscal reason for not extending the program."
The city council in San Bernardino will meet tomorrow in closed session to discuss the lawsuit American Traffic Solutions (ATS) is expected to file against the city. In March, the council unanimously voted to pay $110,000 to get out of its contract with ATS before the 2014 expiration date. ATS is now demanding payment of $1.8 million.
Localities throughout the state have decided to drop photo ticketing, including Loma Linda and Whittier, Moreno Valley, Rocklin, San Carlos, Union City, Yucaipa and Costa Mesa. Berkeley, Burlingame, Cupertino, Compton, El Monte, Fairfield, Fresno, Fullerton, Indian Wells, Irvine, Maywood, Montclair, Paramount, Rancho Cucamonga, Redlands, Roseville, San Jose (photo radar), Santa Fe Springs, Santa Maria, Santa Rosa, and Upland have also rejected their automated ticketing programs.


With our centre of excellence for marine industries, we at sia Abrasives are your experts for the processing of composite fibre materials, which are used whenever exceptional components with outstanding combinations of properties are needed.
The requirements for materials used in the building of ships, boats and yachts are subject to ongoing technological change and know no bounds. Not only do manufacturers of OEM components have to fulfil the highest expectations - the entire industry is constantly facing new challenges.
With our perfectly adapted abrasives for marine industries, we guarantee a perfect surface finish. Composite fibre materials are lighter, firmer, more elastic, more precise, safer and more cost effective, and they are the first choice in modern boat building.
The potential applications of composite fibre materials are very wide-ranging and constantly growing due, among other things, to the energy-saving potential of lightweight materials. The surface finish, and thus the abrasive product used, is a key factor determining functionality. Edges are cut or deburred and surfaces are sanded. This provides an ideal basis with regard to the lines of force, functionality, finishing, coating and the appearance of boats. In addition, composite fibre materials are highly durable and resistant to weathering, rotting and decomposition and so, in this regard, are superior to steel and wood.
The advantages of composite fibre materials are perfectly complemented by a customised sanding process and utilised depending on the required property – flexibility or rigidity. They lie in, amongst other things, highly integrated design options, dynamic resilience, a low coefficient of expansion, a good raw material basis, a low investment requirement and ease of repair.


Allknives Australia now have in stock the *NEW* Eldris pocket knife from Mora of Sweden. Check them out on our online knife shop. Come with a neck kit which includes a fire starter.
Family-time! A perfect activity is to get out, teach your kids how to carve wood. What are you doing this weekend?
Should You Buy A Serrated Hunting Knife?
How do you choose the best skinning knife? What do you look for? Where do you find the best skinning knife?
Looking For Skinning Knives? Old Timer Style?
What's The Advantages Of A Hunting Dagger?
Hunting Or Fishing? – You're Gonna Need A Skinning & Gutting Knife!
Why Carbon Steel Hunting Knives Are Preferred By Hunters?
LOOKING FOR KNIVES FOR SALE?
We Still Love Hunting Knives – Do You?
What Do You Look For When Picking A Hunting Knife?
FIXED HUNTING KNIVES – WHY DO YOU NEED ONE?
Let's Talk… About Hunting Knives.
Fishing Knives Promo In October!


text:
You are here: Home / Life / Entertainment / Top 10 Best Shows on Netflix to Add To 'My List' This Summer
Top 10 Best Shows on Netflix to Add To 'My List' This Summer
May 20, 2019 // by Amy Anne Hill
Shares14FacebookTweet
Let's face it: the best part of summer is forgetting about finals and spending some quality time with your Netflix subscription. This summer, Netflix resumes some of its best-loved series as well as introducing some new gems that you definitely will want to binge-watch immediately. So choose your snacks in advance, mark your calendars and get hooked on this summer's awesome crop of Netflix.
These top 10 best shows on Netflix are dangerously binge-able, so add them to your list ASAP.
1. Extremely Wicked, Shockingly Evil and Vile – May 3
Following its documentary Conversations with a Killer: The Ted Bundy Tapes, Netflix delves deeper into the life of the infamous murderer with this biographical crime thriller starring Zac Efron. The film tells the story from the perspective of Bundy's former girlfriend, Elizabeth Kloepfer (played by To the Bone's Lily Collins), and has received positive reviews since its world premiere at the Sundance Film Festival, with Efron's performance particularly well-received. "The cast looks great, and it will be exciting to see Zac Efron's transformation as he expands his portfolio into something more serious. The movie seems like it's tapping into the world's 'True Crime' obsession, so it should be interesting to see how it's received by the public,." UCLA second-year Hayley Nash said. If the film's online buzz is anything to go by, it will be worth the watch.
2. When They See Us – May 31
Filmic powerhouse Ava DuVernay, whose previous engagement with Netflix resulted in the critically-acclaimed documentary on mass incarceration, 13th, tackles racial injustice again in this brand new miniseries. Based on the real and historical injustices faced by "The Central Park Five," a group of young men of color falsely convicted of rape in 1989, the series explores the suffering of the men and their families as they attempt to prove their innocence. The trailer alone doesn't shy away from political truth-telling and emotional rawness. Judging by DuVernay's previous films, the series will pack a powerful, timely punch.
3. Always Be My Maybe – May 31
If you loved Ali Wong's take on romance in Baby Cobra, or adore the good-natured hilariousness of Randall Park in the ground-breaking Fresh Off the Boat, then check out the next in Netflix's slew of original rom-coms, Always Be My Maybe. Starring Wong and Park as the romantic leads, the film explores the "will-they-won't-they" of two childhood friends. With Fresh Off the Boat director Nahnatchka Khan and an Asian main cast, Always Be My Maybe leads the charge in some long–overdue diverse representation. "Ali Wong and Randall Park are so funny. I love the Netflix Original romantic comedies, and it's really rare to see a one with Asian leads. It looks as if it will carry on the amazing work that Crazy Rich Asians did in bringing Asian representation to the screen," UCLA third-year and Bruin Film Society President Priyanka Kapoor said. With such a talented creative team behind it, Always Be My Maybe promises to earn its place in the Netflix rom-com hall of fame.
4. Tales of the City – June 7
See San Francisco painted in all its queer glory in this exciting new miniseries, based off of the novels by Armistead Maupin. Tales of the City stars Laura Linney as career-woman Mary-Ann, who returns to San Francisco to face her estranged daughter (Ellen Page), and becomes embroiled in the colorful lives of the residents of 28 Barbary Lane. With Orange is the New Black's Lauren Morelli at the helm as showrunner, the trailer promises a fresh and updated twist on the original literature, celebrating the intersecting lives and loves of a cast of queer characters.
5. Rolling Thunder Revue: A Bob Dylan Story by Martin Scorsese – June 12
From legendary filmmaker Martin Scorsese comes a documentary based on Bob Dylan's famous 1970s "Rolling Thunder Revue" tour, a film sure to thrill music fans everywhere. Described as part-concert film and part–intimate portrait of the musician's life, rumors suggest that the film contains a rare never-seen-before interview with Dylan himself. Some planned engagement in the upcoming awards circuit suggests high hopes for the film, so keep an eye out for this musical gem when scrolling through the streaming service this summer.
6. Stranger Things (Season 3) – July 4
The Goonies-meets-War-of-the-Worlds-style saga returns to Netflix this summer, packed with even more sci–fi goodness, as the kids from Hawkins return in another thrilling third installment. One of Netflix's best-loved series, the first two seasons received praise from both critics and audiences. "I know everybody says the same thing, but [my favorite character] has to be Eleven, because Millie Bobby Brown's performance in the second season was amazing. If you like 80's movies, horror or sci-fi, then this is definitely the show for you," UCLA third-year Ruben Lozano said. If you haven't already, hop on the Stranger Things bandwagon this summer and finally understand why your friends are raving about it—you won't regret it.
7. Money Heist (season 3) – July 19
Sleek, stylish and chock-full of spy-thriller clichés (and one of Netflix's biggest international hits) the Spanish-language series returns for its third season this summer. Also known as La Casa De Papel, the show's renowned binge-ability and massive popularity resulted in an extension of its initial limited run. "It's a real guilty pleasure for me. It's just such a fun watch, perfect for when you want to take your mind off things and get absorbed in something fun and full of drama," King's College London second-year Ainhoa Santos Goicoechea said. If you like your spy dramas edgy and glamourous with hints of telenovela, make sure to add Money Heist to your Netflix queue.
8. Orange is the New Black (season 7) – Summer
The ladies of Litchfield return at last this summer to conclude the epic saga of Orange is the New Black, and the series' huge fanbase certainly hope it finishes on a high. The epitome of the comedy-drama, the series depicts the ups and downs of the female inmates of Litchfield Penitentiary and has gained praise during its entire run for its complex depiction of LBGTQ+ women. The Netflix original boasts an amazing cast including the likes of Laverne Cox, Samira Wiley and Laura Prepon. Let's hope the final season serves justice to the Litchfield ladies and their legions of fans.
9. Sacred Games (season 2) – Summer
Searching for a new tortured antihero to shamelessly root for? Look no further than Sacred Games where Saif Ali Khan's troubled cop must navigate the murky Mumbai underworld, rejecting the institutions he once depended on in search of truth and salvation. Based on Vikram Chandra's 2006 crime novel, this summer marks the second season of the acclaimed Hindi-language television drama. With critical acclaim for its stellar cast, engaging writing and unexpected twists, you won't regret immersing yourself in the captivating world of Sacred Games.
10. GLOW (season 3) – Summer
The Gorgeous Ladies Of Wrestling return to Netflix for a third season bringing back the eyeshadow, sisterhood and sleeper-holds just in time for summer break. The show follows the emerging wrestling careers of some '80s ladies from all walks of life, grounded in personal conflicts and self–identity issues while never shying away from displays of some serious athletic skill. Alison Brie stars as the down-on-her-luck actress-turned-wrestler Ruth, a role that earned Brie a nod at the Golden Globes. You'll soon get absorbed in the intricate character dynamics at work in the series, so make sure to catch up on the first two installments before binging.
Filed Under: Entertainment Summer Break
About Amy Anne Hill
Amy is a junior English major from King's College London, studying abroad at UCLA. She loves breakfast food, rollercoasters, confusing people with her accent and is probably (definitely) watching a movie right now.
Top 10 Netflix Shows and Movies To Look Forward To in 2021
Wonder Woman May Be The First, But She Won't Be the Last
Why Pixar's "Soul" is Groundbreaking: Lessons for 2020 and Beyond
PRIDE, No Prejudice: 10 Queer Authors to Add to Your TBR
You Don't Want to Miss This: 15 Upcoming Disney TV Shows and Movies
Seven Nintendo Switch Games to Start Playing ASAP
10 Fantastic Fantasy Series College Students Need On Their Shelves
Do the Monster Mash: 10 Gothic Movies to Watch After You Read The Book
Top 10 Marvel Movies to Rewatch While Waiting for Black Widow
A Holly Jolly Script: A Q&A with the Ultimate Hallmark Screenwriting Duo
College Magazine's Complete Guide to the Film Major
It Feels Like the Perfect Gift: 22 Taylor Swift Gifts for the Craziest Swifties
Empty Seats and Empty Orchestras: Missing Theater in the COVID-19 Era
35 Chick Flicks to Cure Your Single Girl Needs All Year Long
You Go Girl! 10 Fictional Women Who Really Want You to Vote
Spooktober: How to Get in the Fall Mood This Year
10 Overlooked COVID-19 Safe Spots to Hit Up in NYC
10 Famous UCLA Alumni That Have Shaped the Music Industry
Top 35 Documentaries to Binge During Quarantine
Avatar Meets Harry Potter: Sorting the Gaang into Hogwarts Houses
Through Thick and Thin, Harry Potter Made Me a Better Person
Stuck at Home? Check Out These 10 Lifestyle YouTubers for Inspiration
5 Ways to Make It Center Stage in the Music Biz
Next Post: The Unique Challenges that Face Women in Medicine and How Women Overcome Them


St Kilda's Dylan Roberton has been ruled out for the rest of the season with a heart condition.
"Dylan Roberton will be sidelined for three months as we continue to monitor the cause of an irregular heartbeat.
Last week, Roberton had a device implanted to monitor his heart rate over the next three months. While doctors believe there is only a minor chance of the issue reoccurring, all precautions need to be taken before he returns to full training.
The 26-year old is hopeful that his career is not over, following a scary incident where he collapsed during St Kilda's clash with Geelong in round four.
Roberton was stretchered off the ground and taken to hospital after the incident, which the former Docker does not recall.
"I just remember watching the ball go up and getting dizzy but that's about it," he told reporters.
Losing Roberton for the season is a massive blow for the Saints, given their lacklustre start to 2018 with just one win from six games.
Roberton was averaging 19.6 disposals, 7.3 marks and 5.0 rebound 50s per game in 2018 prior to his injury.