The day began with a clear blue sky. Everybody had hope that things are getting better today. By seeing the weather condition, the camp leader fixed the time for starting the next part of the trek to reach Fual Pani a little late. We had enough time to spend taking photographs of the beautiful nature around us. Finally, after the routine jobs like morning tea, break fast, lunch pack etc... our call came for starting the trek. Almost all kept their camera outside unless like the one happened during the previous day where due to rain most of the trekkers didn't venture into photography. The OM peak was clearly visible and became the center point of attraction for professional photographers. There was a thin layer of cloud pattern over the Himalayan mountain range and gave a very scenic look.
We started the trek at 10.20am. Initial part was a little tiring because of the steep hills. No view of surroundings as the place was covered with trees. In between we used to see the camp site of Guna Pani. We moved slowly and none of us faced any problems and everybody gained confidence. Many local village ladies and girls were on their work. Porter was available in this area too. Just like other areas of Himachal, these people here too were co operative for taking photographs, they didn't object. Few of us offered some snacks and articles to kids. Kids of Himachal Pradesh are very cute and charming. We had tough time with our guide in this part of trekking. He was very tough and stubborn. He wanted all of us to reach Fual Pani as early as possible. That made the group to rush in the trekking while enjoying the nature. He was harsh if somebody goes against his instructions. We had to salute him for his stamina. We were moving only in one direction where as he used to go till he finds the first person and comes back to the last person to confirm whether all are safe and following the queue. He used to shout on a person who delays the trekking for any reason.
Around 11.00am we reached a plain ground which is just gorgeous. For the first time, everybody in our group sensed the beauty of Himalayan range in the dense forest and valleys. Finally Mother Nature showed her beautiful side to all of us. That was the rest point for us. Butter milk and snacks were available. The tent was arranged by some local people just like in other areas. While many trekkers took rest here, most the people took out their camera and shot almost all kind of picutres. The light was very good and the sky was reasonable clear with a little hint of clouds. We were almost nearer to the glacier which was visible from Unchdhar where we got down from the bus. Some slept for a while. Some took the details of the area from the guide. He was very co operative in this aspect.
After 15mins of rest, we continued our trekking. This part was very easy just passing through a plain ground. But there was nothing interesting in the initial part but for some beautiful birds. We could not catch these birds in our camera as those were very fast. Very soon, around 11.30am, we reached a place which made everybody spell bound. The place was too scenic and nobody has any words to explain. The environment was very pleasant with bright green around, some huts here and there, some crops in between, valleys around, view of snow capped mountains, ohhh it was just stunning. The place was just like a dream for any artiste to sit and make images. We had to take a half circle around the ground and proceed further to reach Fual Pani. We had to descend a little here passing through the huts. Many of us took rest in between inspite of the guide shouting on us to move. We didn't know that there is one more rest point here. When we reached the ground one more tea point was found. Most of the photographers reached the place late and so had less time to take rest. By the time we reached, already trekkers who reached early left the place. We reached this point at 11.50am. Tea, snacks were available. This was our lunch point. Everybody opened their lunch pack and had their food. The local girls were very beautiful and many photographers took portraits of them. In front of the tea point, there was an area where some crop was grown and a beautiful spot for photography.
We took rest for 15mins and continued the trekking at 12.05pm. After Guna Pani there was no electric power available. The main fuel used is dead wood only. The ground was very huge and we had to take a circle around and proceed into a valley. It took 30mins to complet and circle before entering the valley. There was a small water stream which we had to cross. It was rocky and easy to cross. As per the guide this was the most difficult part to cross during starting days of Sarpass trekking schedule as the water flow was more. Our guide started cautioning us about the weather forecast. Within no time the clouds gathered and there was a threat of rain soon. We didn't get the depth of difficulty until we entered the valley area. We entered the valley around 1.00pm. Suddenly drizzling started. Many managed with the jerkin and others took out the rain sheet and put it over the head. The left side of the valley was too steep and scary. The sand became slippery because of the rain. We sensed the dangerous situation we were in. Any slipping into the left side makes one getting vanished in the valley. All our cameras went inside the bag. Many hobbiest had real photography experience in the wild. We had to use one hand holding the stick and other hand supporting and holding the plants to avoid slipping. Many slipped and fell but fortunately nobody had any accident. We had to descend a little and in between steep climbing. On the way we came across one tea point (at 2.30pm) but we were not allowed to take rest as we had to rush to Fual Pani. It took quite a long time to reach the next rest point at 3.00pm. Not much of photography was possible in this area. The rest point was a small area inside thick forest with huge trees and rocks.
After 5mins we had to continue. Fortunately rain stopped. Though we got relaxed, very soon we realized that the next part is going to be more tough. We had to climb a steep valley. For the first time, we came to know the difficulties in trekking a steep hill. We had to climb a little and take rest for a while and continue. The journey became further difficult because of few trekkers who didn't have any previous experience. We had to stand in an inclined position to balance the load at the back and the gravitational force due to steepness. The stick helped a lot to get support. Some had nightmare experience here and used both legs and hands to climb the valley just like crawling. It was a real test for our fitness. After the tough trekking for 45mins we reached the next tea point. This area was dry and didn't get affected from the rain we saw earlier. We had 20mns of rest here as we got tired too much. We further continued our trekking after tea and snacks. All of our water bottles became empty. Next part of the trekking, though not steep, it was difficult because of the narrow path and fallen trees. We had to go through a small cave like area. The trees were so huge, one could not see the tip of those. Exactly at 4.15pm, we saw the welcome banner of YHAI welcoming the trekkers to Fual Pani. Another 2mins of trekking, we saw the second higher camp site Fual Pani.


This year's 80th edition of the Tour de Suisse again starts with a prologue. Just like last year, the 6.4 kilometre route, with a start and finish in Baar, will provide short intervals and an exciting first race day. It is very possible that one or two Swiss cyclists will play a part in the fight for the daily victory and could even be the first to wear the yellow leader's jersey.


I am interested in the applications of nonlinear dynamics to biological problems. My main focus is in the area of mathematical neuroscience where I try to understand the patterns of activity in networks of neurons. I model recurrent activity, waves, and oscillations in a variety of neural systems including olfaction (sense of smell), rat whisker barrels, cortical slices, and working memory. I am also interested in problems from physiology, immunology, and cell biology all of which I have modeled with students and postdocs.


text:
"""Helper functions for mysensors package."""
from __future__ import annotations

from collections import defaultdict
from collections.abc import Callable
from enum import IntEnum
import logging

from mysensors import BaseAsyncGateway, Message
from mysensors.sensor import ChildSensor
import voluptuous as vol

from homeassistant.const import CONF_NAME
from homeassistant.core import HomeAssistant, callback
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.util.decorator import Registry

from .const import (
    ATTR_DEVICES,
    ATTR_GATEWAY_ID,
    DOMAIN,
    FLAT_PLATFORM_TYPES,
    MYSENSORS_DISCOVERY,
    MYSENSORS_ON_UNLOAD,
    TYPE_TO_PLATFORMS,
    DevId,
    GatewayId,
    SensorType,
    ValueType,
)

_LOGGER = logging.getLogger(__name__)
SCHEMAS = Registry()

@callback
def on_unload(hass: HomeAssistant, gateway_id: GatewayId, fnct: Callable) -> None:
    """Register a callback to be called when entry is unloaded.

    This function is used by platforms to cleanup after themselves.
    """
    key = MYSENSORS_ON_UNLOAD.format(gateway_id)
    if key not in hass.data[DOMAIN]:
        hass.data[DOMAIN][key] = []
    hass.data[DOMAIN][key].append(fnct)

@callback
def discover_mysensors_platform(
    hass: HomeAssistant, gateway_id: GatewayId, platform: str, new_devices: list[DevId]
) -> None:
    """Discover a MySensors platform."""
    _LOGGER.debug("Discovering platform %s with devIds: %s", platform, new_devices)
    async_dispatcher_send(
        hass,
        MYSENSORS_DISCOVERY.format(gateway_id, platform),
        {
            ATTR_DEVICES: new_devices,
            CONF_NAME: DOMAIN,
            ATTR_GATEWAY_ID: gateway_id,
        },
    )

def default_schema(
    gateway: BaseAsyncGateway, child: ChildSensor, value_type_name: ValueType
) -> vol.Schema:
    """Return a default validation schema for value types."""
    schema = {value_type_name: cv.string}
    return get_child_schema(gateway, child, value_type_name, schema)

@SCHEMAS.register(("light", "V_DIMMER"))
def light_dimmer_schema(
    gateway: BaseAsyncGateway, child: ChildSensor, value_type_name: ValueType
) -> vol.Schema:
    """Return a validation schema for V_DIMMER."""
    schema = {"V_DIMMER": cv.string, "V_LIGHT": cv.string}
    return get_child_schema(gateway, child, value_type_name, schema)

@SCHEMAS.register(("light", "V_PERCENTAGE"))
def light_percentage_schema(
    gateway: BaseAsyncGateway, child: ChildSensor, value_type_name: ValueType
) -> vol.Schema:
    """Return a validation schema for V_PERCENTAGE."""
    schema = {"V_PERCENTAGE": cv.string, "V_STATUS": cv.string}
    return get_child_schema(gateway, child, value_type_name, schema)

@SCHEMAS.register(("light", "V_RGB"))
def light_rgb_schema(
    gateway: BaseAsyncGateway, child: ChildSensor, value_type_name: ValueType
) -> vol.Schema:
    """Return a validation schema for V_RGB."""
    schema = {"V_RGB": cv.string, "V_STATUS": cv.string}
    return get_child_schema(gateway, child, value_type_name, schema)

@SCHEMAS.register(("light", "V_RGBW"))
def light_rgbw_schema(
    gateway: BaseAsyncGateway, child: ChildSensor, value_type_name: ValueType
) -> vol.Schema:
    """Return a validation schema for V_RGBW."""
    schema = {"V_RGBW": cv.string, "V_STATUS": cv.string}
    return get_child_schema(gateway, child, value_type_name, schema)

@SCHEMAS.register(("switch", "V_IR_SEND"))
def switch_ir_send_schema(
    gateway: BaseAsyncGateway, child: ChildSensor, value_type_name: ValueType
) -> vol.Schema:
    """Return a validation schema for V_IR_SEND."""
    schema = {"V_IR_SEND": cv.string, "V_LIGHT": cv.string}
    return get_child_schema(gateway, child, value_type_name, schema)

def get_child_schema(
    gateway: BaseAsyncGateway,
    child: ChildSensor,
    value_type_name: ValueType,
    schema: dict,
) -> vol.Schema:
    """Return a child schema."""
    set_req = gateway.const.SetReq
    child_schema = child.get_schema(gateway.protocol_version)
    schema = child_schema.extend(
        {
            vol.Required(
                set_req[name].value, msg=invalid_msg(gateway, child, name)
            ): child_schema.schema.get(set_req[name].value, valid)
            for name, valid in schema.items()
        },
        extra=vol.ALLOW_EXTRA,
    )
    return schema

def invalid_msg(
    gateway: BaseAsyncGateway, child: ChildSensor, value_type_name: ValueType
) -> str:
    """Return a message for an invalid child during schema validation."""
    pres = gateway.const.Presentation
    set_req = gateway.const.SetReq
    return (
        f"{pres(child.type).name} requires value_type {set_req[value_type_name].name}"
    )

def validate_set_msg(gateway_id: GatewayId, msg: Message) -> dict[str, list[DevId]]:
    """Validate a set message."""
    if not validate_node(msg.gateway, msg.node_id):
        return {}
    child = msg.gateway.sensors[msg.node_id].children[msg.child_id]
    return validate_child(gateway_id, msg.gateway, msg.node_id, child, msg.sub_type)

def validate_node(gateway: BaseAsyncGateway, node_id: int) -> bool:
    """Validate a node."""
    if gateway.sensors[node_id].sketch_name is None:
        _LOGGER.debug("Node %s is missing sketch name", node_id)
        return False
    return True

def validate_child(
    gateway_id: GatewayId,
    gateway: BaseAsyncGateway,
    node_id: int,
    child: ChildSensor,
    value_type: int | None = None,
) -> defaultdict[str, list[DevId]]:
    """Validate a child. Returns a dict mapping hass platform names to list of DevId."""
    validated: defaultdict[str, list[DevId]] = defaultdict(list)
    pres: type[IntEnum] = gateway.const.Presentation
    set_req: type[IntEnum] = gateway.const.SetReq
    child_type_name: SensorType | None = next(
        (member.name for member in pres if member.value == child.type), None
    )
    if not child_type_name:
        _LOGGER.warning("Child type %s is not supported", child.type)
        return validated

    value_types: set[int] = {value_type} if value_type else {*child.values}
    value_type_names: set[ValueType] = {
        member.name for member in set_req if member.value in value_types
    }
    platforms: list[str] = TYPE_TO_PLATFORMS.get(child_type_name, [])
    if not platforms:
        _LOGGER.warning("Child type %s is not supported", child.type)
        return validated

    for platform in platforms:
        platform_v_names: set[ValueType] = FLAT_PLATFORM_TYPES[
            platform, child_type_name
        ]
        v_names: set[ValueType] = platform_v_names & value_type_names
        if not v_names:
            child_value_names: set[ValueType] = {
                member.name for member in set_req if member.value in child.values
            }
            v_names = platform_v_names & child_value_names

        for v_name in v_names:
            child_schema_gen = SCHEMAS.get((platform, v_name), default_schema)
            child_schema = child_schema_gen(gateway, child, v_name)
            try:
                child_schema(child.values)
            except vol.Invalid as exc:
                _LOGGER.warning(
                    "Invalid %s on node %s, %s platform: %s",
                    child,
                    node_id,
                    platform,
                    exc,
                )
                continue
            dev_id: DevId = (
                gateway_id,
                node_id,
                child.id,
                set_req[v_name].value,
            )
            validated[platform].append(dev_id)

    return validated

redpajama_set_name: RedPajamaGithub


One Week to go until Save the Children's #ChristmasJumperDay!
Next Friday is Save the Children's annual Christmas Jumper Day; a chance for you to put on your favourite festive knit and help save children's lives, by donating £2 to Save the Children.
Now in it's fifth year, this has got to be one of the best days in the lead up to Christmas. I love seeing people making their way to work and school wearing brightly coloured knitwear, with silly characters and patterns; you can't help but smile!
Please consider getting involved this year - and rope your friends, family and colleagues in too! Don't forget to share photos of yourselves in your jumpers using the #ChristmasJumperDay hashtag - you can follow Save the Children on Facebook here, Twitter here and Instagram here.
You'll be in excellent company too, as a whole host of celebrities have popped on festive pullovers of their own to show their support of the campaign, including a few of my favourite celebrity mums; Sophie Ellis-Bextor, Lauren Laverne and Anna Friel.
And if you want to take part but bright and bold isn't your thing, then take a look at the Save the Children X Selfish Mother collaboration, with no less than twelve designs to choose from - thought up by the likes of Poppy Delevigne, Laura Bailey, Erin O'Connor and Karen Elson.
In simple block colours, and adorned with festive words and slogans, 50% from the sale of each sweater will be donated to Save the Children. Sounds like a good reason to go shopping if you ask me! Check out The FMLY Store here.


text:
New report highlights list of top 10 apps in terms of downloads and sales generated by them
apps, chart, news, Social-Media, Technology
As analysis by AppAnnie shows, TikTok turned out to be the most installed app of 2021. During the month of April, May, and June, TikTok was downloaded in insane number. Whereas, YouTube stands on top in terms of sales generated by it. Which indicates that TikTok being the most downloaded app, was not able to generate sales as much as YouTube.
It is worthy to note that YouTube and HBO Max, both shared some rare significance. Both of these apps are the only apps that were listed on highest profitable apps list as well as on most installed apps list.
App Annie presented its trend analysis report which covers the top trending apps in the United States and all around the world. The history repeats itself as Facebook along with its three apps ruled the top 10 most downloaded apps list. In this particular category, TikTok is on top followed by YouTube and Facebook. After which HBO Max, Instagram, and Facebook messenger occupied the list. On seventh position is Snapchat, followed by ZOOM and Cash App. Netflix is the last one in the line.
However, as most profitable apps are concerned, the list is usually occupied by dating apps. On tenth position is Bumble App, ninth place is secured by Hulu. While, on the top of the list is YouTube as it makes the most money out of all. HBO Max, Tinder, Disney+, Google One are also among the profitable apps of 2021.
According to App Annie, the worldwide app market shattered its all-time spending milestone once again. At $34 billion, the second-quarter tally was about $7 billion higher than the second-quarter total in 2020 and $2 billion more than the first-quarter total in 2021.
App Annie additionally looked into how much hours a person probably waste on the phone and also found out whether it has diminished since the lockdowns of 2021 has ended in 2021.Surprisingly, there is also a disappointing information for those who believe that sitting in front of smartphones and staring on the screen for hours is not good for the body health as well as social existence.
All the additional hour people spent on their phones amid lockdown has essentially developed into a habit. The amount of time people waste using apps on a daily basis is absolutely enormous. And it's still increasing over 40% in nations like Russia and Turkey particularly in comparison to the same period last year.
Unexpectedly, the leading breakthrough business apps in the United States vary markedly from those in other nations, particularly Europe. Like PictureThis app and Poparazzi are among two apps in the United States which are growing significantly.
Read next: After Facebook's Family of Apps, TikTok is the Latest Social Media App That Reached 3 Billion Downloads On Android and iOS Devices
Labels: apps chart news Social-Media Technology

redpajama_set_name: RedPajamaCommonCrawl


text:
All Power to Working People!
About The Red Phoenix
About The American Party of Labor
Workers and Labor
Women and LGBTQ+
APL Shop
Home › International › "For the Motherland! For Stalin!": A History of Protests Against Revisionism in the USSR
"For the Motherland! For Stalin!": A History of Protests Against Revisionism in the USSR
By Polina Brik on April 13, 2017
The following PDF contains a newly translated writing on the subject of opposition to Khrushchevite and Gorbachevite revisionism in the Soviet Union. These works are in the public domain. You can freely copy, distribute and display this work; as well as make derivative and commercial works. Please credit The Red Phoenix or the American Party of Labor as your source, include the URL to this work, and note any of the transcribers, editors & proofreaders indicated in the file.
Click here to open the PDF
‹ Statement of the American Party of Labor on the U.S. Aggression Against Syria
Betsy DeVos, Education, and the War On Students ›
Categories: International, Soviet Union (USSR), Theory, Workers Struggle
International Conference of Maxist-Leninist Parties and Organizations: Hundredth Anniversary of the Third, Communist, International
The Rise and Fall of Third Worldism – Part 1
New Munich agreement
Reformism: the Gateway to Fascism
Follow the Red Phoenix on Twitter
Follow the Red Phoenix on Facebook
Subscribe to the print Red Phoenix
Donate to the American Party of Labor and the Red Phoenix
Click to follow the Red Phoenix and receive notifications of new articles by email.
Sort Articles by Category
Sort Articles by Category Select Category American Party of Labor (4) Anti-Fascism (22) Editorials (52) education (3) Español (13) History (458) Cold War Killer File (3) Revolutionary History (149) Second World War (43) United States History (230) World History (264) Imperialism (1,287) Colonialism (403) Economic Exploitation (402) Imperialist War (618) Racist Oppression (281) International (1,243) Afghanistan (131) Albania (12) Algeria (11) Angola (3) Argentina (13) Armenia (7) Bahrain (12) Bangladesh (5) Belarus (1) Belgium (1) Belize (1) Bolivia (10) Bosnia and Herzegovina (1) Brazil (19) Britain (12) Bulgaria (2) Burkina Faso (2) Cambodia (7) Cameroon (1) Canada (11) Côte d'Ivoire (4) Central African Republic (1) Chile (36) China (55) Colombia (12) Congo (10) Croatia (1) Cuba (51) Czechoslovakia (5) Democratic People's Republic of Korea (51) Dominican Republic (5) Ecuador (26) Egypt (50) El Salvador (12) England (6) Eritrea (1) Ethiopia (4) Former Eastern Bloc (16) France (56) Georgia (2) Germany (35) Ghana (1) Greece (39) Grenada (2) Guatemala (10) Haiti (15) Honduras (10) Hong Kong (5) Hungary (4) India (15) Indonesia (15) Iran (72) Iraq (108) Ireland (6) Israel (167) Italy (11) Japan (18) Jordan (8) Kazakhstan (3) Kenya (3) Kosova (3) Kurdistan (6) Kuwait (2) Laos (1) Lebanon (24) Liberia (1) Libya (127) Malaysia (2) Mali (22) Mauritania (1) Mexico (26) Mozambique (3) Myanmar (1) Namibia (1) Netherlands (5) New Zealand (2) Nicaragua (11) Niger (3) Nigeria (4) Norway (3) Pakistan (42) Palestine (136) Panama (2) Peru (4) Philippines (7) Poland (8) Portugal (4) Puerto Rico (8) Qatar (14) Republic of Korea (35) Romania (3) Russia (68) Rwanda (5) Saudi Arabia (36) Serbia (5) Somalia (12) South Africa (22) Soviet Union (USSR) (57) Spain (26) Sudan (13) Sweden (5) Syria (161) Taiwan (2) Tajikistan (1) Tanzania (1) Thailand (3) Tibet (4) Tunisia (21) Turkey (86) Uganda (13) Ukraine (32) United Kingdom (52) Uruguay (3) Venezuela (32) Vietnam (24) Yemen (31) Yugoslavia (16) Zaire (3) Zimbabwe (4) Interview (10) LGBTQ Rights (64) Media & Culture (553) Books (35) Internet (137) Movies (55) Music (19) Political Cartoons (70) Talk Radio (33) TV (103) Video Games (5) Videos (152) Police Brutality (277) Reactionary Watch (472) Statements (688) Students (5) Theory (264) Dialectics (22) Economics (100) Myths About Socialism (16) Science (71) U.S. News (1,597) Anti-War (378) Discrimination (386) Economy (332) Environment (43) Government (849) Elections (118) Prisons (112) Health Care (108) Immigration (66) Labor (420) Racism (411) U.S. Military (206) Uncategorized (111) Women and LGBTQ+ (139) Workers Struggle (821) Zionism (179)
Anti-War Colonialism Discrimination Economic Exploitation Economy Government History Imperialism Imperialist War International Internet Israel Labor Media & Culture Police Brutality Racism Racist Oppression Reactionary Watch Revolutionary History Statements Syria Theory U.S. Military U.S. News United States History Videos Women and LGBTQ+ Workers Struggle World History Zionism


text:
ALA Annual Conference 2011: Your Library on High Tech
There probably are still plenty of people who think of nothing but printed books and being shushed when they hear the word "library." But you won't find many of them here in New Orleans attending the American Library Association (ALA) 2011 Annual Conference.
A 90-minute session yesterday, organized by ALA's Office for Information Technology Policy, highlighted and celebrated four innovative projects designed to meet library users' needs with varying degrees of creativity and playfulness: North Carolina State University Library's web redesign program, which gave the library's online presence a cleaner and more dynamic look than it previously sported; the OhioLINK Digital Resource Commons (DRC); the Creekview High School (Canton, Georgia) Media 21 project which helps students match technology with learning opportunities; and Orange County (Florida) Library System's Shake It! mobile app to match readers with the books they are likely to enjoy.
Technology and library users come together very effectively in Media 21's transformation of a school library into a first-rate social learning center and Orange County's Shake It! Project. Media 21 makes at least some of us wish we were back in high school again—admittedly a major accomplishment in itself—and Shake It! appears to be so playfully addictive that it could easily make us want to read even more books than we already do just so we can shake our mobile devices again and see what reading recommendation the app will offer next.
But we're talking about far more than diversions here. ALA Learning Round Table colleague Buffy Hamilton, who was founding librarian of that social learning center at Creekview High, sees the project as a setting in which "students are helping us create the library of the future," she told her ALA audience yesterday. "I was struggling with two questions: how to create flexible and fluid learning spaces, and how to embed the library in the lives and learning spaces of students."
The result has students engaged in learning via a huge variety of social media tools including, but far from limited to, Netvibes to curate and collect information; Google Docs so students use the same tools found in the contemporary business world to collaborate and share; Skype to have live conversations with experts around the world; Prezi, Animoto, and Wordle to more effectively present their ideas; and social bookmarking tools including Diigo and Evernote.
"For these students to see that the library is a learning space…was very powerful for them," she concluded.
The sense of fun for library users at Creekview is equally apparent in the Orange County Shake It! app, Library Director and CEO Mary Anne Hodel told and showed her audience through a brief presentation that included videos documenting the playful approach to bringing books to library users. The most difficult part of developing the app, which works when the user shakes a mobile device with the app installed and causes three wheels to turn until they come to a rest displaying a book based on three elements: audience, genre, and preferred medium.
"We launched this in July 2010," she told her audience. "There have been over 4,000 downloads of the app" and coverage of the popular innovation in the Orlando Sentinel and USA Today.
She also displayed a solid vision of where she expects the library to continue going: "We have a lot of fun things on our website [but]… we're definitely going in the direction of mobile apps for as many things as we can think up. We think that is the next wave and that's where we want to be."
Leave a Comment »	| libraries, technology	| Tagged: #ala11, ala, ALA Learning Round Table, american library association, animoto, buffy hamilton, conferences, creativity, creekview high school, digital resource commons, diigo, drc, evernote, google docs, innovation, leaders, learning, libraries, mary anne hodel, media 21, mobile apps, netvibes, north carolina state university libraries, office for information technology policy, ohiolink, oitp, orange county library system, orlando sentinel, paul signorelli, prezi, shake it!, skype, social learning centers, technology, usa today, wordle	| Permalink


text:
{-# OPTIONS_GHC -Wall -Werror -funbox-strict-fields #-}
{-# LANGUAGE FlexibleInstances, DeriveDataTypeable, OverloadedStrings #-}

-- | Basic definitions for the HUnitPlus library.
--
-- This module contains what you need to create assertions and test
-- cases and combine them into test suites.
--
-- The assertion and test definition operators are the same as those
-- found in the HUnit library.  However, an important note is that the
-- behavior of assertions in HUnit-Plus differs from those in HUnit.
-- HUnit-Plus assertions do /not/ stop executing a test if they fail,
-- and are designed so that multiple assertions can be made by a
-- single test.  HUnit-Plus contains several \"abort\" functions,
-- which can be used to terminate a test immediately.
--
-- HUnit-Plus test execution handles exceptions.  An uncaught
-- exception will cause the test to report an error (along with any
-- failures and/or errors that have occurred so far), and test
-- execution and reporting will continue.
--
-- The data structures for describing tests are the same as those in
-- the "Distribution.TestSuite" module used by cabal's testing
-- facilities.  This allows for easy interfacing with cabal's
-- @detailed@ testing scheme.
--
-- This gives rise to a grid possible use cases: creating a test using
-- the HUnit-Plus facilities vs. executing an existing
-- "Distribution.TestSuite" test which was not created by the
-- facilities in this module, and executing a test with HUnit-Plus vs
-- executing it with another test framework.  The 'executeTest'
-- function is designed to cope with either possible origin of a test,
-- and the 'Testable' instances are designed to produce tests which
-- work as expected in either possible execution environment.
module Test.HUnitPlus.Base(
       -- * Test Definition
       Test(..),
       TestInstance(..),
       TestSuite(..),
       testSuite,

       -- ** Extended Test Creation
       Testable(..),

       (~=?),
       (~?=),
       (~:),
       (~?),

       -- * Assertions
       Assertion,
       assertSuccess,
       assertFailure,
       abortFailure,
       abortError,
       assertBool,
       assertString,
       assertStringWithPrefix,
       assertEqual,
       assertThrows,
       assertThrowsExact,

       -- ** Extended Assertion Functionality
       Assertable(..),
       (@=?),
       (@?=),
       (@?),

       -- * Low-level Test Functions
       heartbeat,
       executeTest,
       logSyserr,
       logSysout,
       logAssert,
       logFailure,
       logError,
       withPrefix,
       getErrors,
       getFailures
       ) where

import Control.Exception hiding (assert)
import Data.Foldable
import Data.IORef
import Data.Typeable
import Data.Word
import Distribution.TestSuite
import Prelude hiding (concat, sum, sequence_)
import System.IO.Unsafe
import System.TimeIt
import Test.HUnitPlus.Reporting

import qualified Data.Text as Strict

-- | An 'Exception' used to abort test execution immediately.
data TestException =
  TestException {
    -- | Whether this is a failure or an error.
    teError :: !Bool,
    -- | The failure (or error) message.
    teMsg :: !Strict.Text
  } deriving (Show, Typeable)

instance Exception TestException

-- Test Wrapper Definition
-- =====================
data TestInfo =
  TestInfo {
    -- | Current counts of assertions, tried, failed, and errors.
    tiAsserts :: !Word,
    -- | Events that have been logged
    tiEvents :: ![(Word, Strict.Text)],
    -- | Whether or not the result of the test computation is already
    -- reflected here.  This is used to differentiate between black
    -- box test and tests we've built with these tools.
    tiIgnoreResult :: !Bool,
    -- | 'Text' to attach to every failure message as a prefix.
    tiPrefix :: !Strict.Text,
    tiHeartbeat :: !Bool
  }

errorCode :: Word
errorCode = 0

failureCode :: Word
failureCode = 1

sysOutCode :: Word
sysOutCode = 2

sysErrCode :: Word
sysErrCode = 3

{-# NOINLINE testinfo #-}
testinfo :: IORef TestInfo
testinfo = unsafePerformIO $! newIORef TestInfo { tiAsserts = 0, tiEvents = [],
                                                  tiIgnoreResult = False,
                                                  tiHeartbeat = False,
                                                  tiPrefix = "" }

-- | Does the actual work of executing a test.  This maintains the
-- necessary bookkeeping recording assertions and failures, It also
-- sets up exception handlers and times the test.
executeTest :: Reporter us
            -- ^ The reporter to use for reporting results.
            -> State
            -- ^ The HUnit internal state.
            -> us
            -- ^ The reporter state.
            -> IO Progress
            -- ^ The test to run.
            -> IO (Double, State, us)
executeTest rep @ Reporter { reporterCaseProgress = reportCaseProgress }
            ss usInitial runTest =
  let
    -- Run the test until a finished result is produced
    finishTestCase time us action =
      let
        handleExceptions :: SomeException -> IO Progress
        handleExceptions ex =
          case fromException ex of
            Just TestException { teError = True, teMsg = msg } ->
              do
                logError msg
                return (Finished (Error (Strict.unpack msg)))
            Just TestException { teError = False, teMsg = msg } ->
              do
                logFailure msg
                return (Finished (Fail (Strict.unpack msg)))
            Nothing ->
              do
                TestInfo { tiIgnoreResult = ignoreRes } <- readIORef testinfo
                if ignoreRes
                  then do
                    logError (Strict.concat ["Uncaught exception in test: ",
                                             Strict.pack (show ex)])
                    return (Finished (Error ("Uncaught exception in test: " ++
                                             show ex)))
                  else
                    return (Finished (Error ("Uncaught exception in test: " ++
                                             show ex)))

        caughtAction = catch action handleExceptions
      in do
        (inctime, progress) <- timeItT caughtAction
        case progress of
          Progress msg nextAction ->
            do
              usNext <- reportCaseProgress (Strict.pack msg) ss us
              finishTestCase (time + inctime) usNext nextAction
          Finished res -> return (res, us, time + inctime)
  in do
    resetTestInfo
    (res, usFinished, time) <- finishTestCase 0 usInitial runTest
    (ssReported, usReported) <- reportTestInfo res rep ss usFinished
    return (time, ssReported, usReported)

-- | Interface between invisible 'TestInfo' and the rest of the test
-- execution framework.
reportTestInfo :: Result -> Reporter us -> State -> us -> IO (State, us)
reportTestInfo result Reporter { reporterError = reportError,
                                 reporterFailure = reportFailure,
                                 reporterSystemOut = reportSystemOut,
                                 reporterSystemErr = reportSystemErr }
               ss @ State { stCounts = c @ Counts { cAsserts = asserts,
                                                    cFailures = failures,
                                                    cErrors = errors } }
               initialUs =
  let
    handleEvent (us, hasFailure, hasError) (code, msg)
      | code == errorCode =
        do
          us' <- reportError msg ss us
          return (us', hasFailure, True)
      | code == failureCode =
        do
          us' <- reportFailure msg ss us
          return (us', True, hasError)
      | code == sysOutCode =
        do
          us' <- reportSystemOut msg ss us
          return (us', hasFailure, hasError)
      | code == sysErrCode =
        do
          us' <- reportSystemErr msg ss us
          return (us', hasFailure, hasError)
      | otherwise = fail ("Internal error: bad code " ++ show code)
  in do
    TestInfo { tiAsserts = currAsserts,
               tiEvents = currEvents,
               tiIgnoreResult = ignoreRes } <- readIORef testinfo
    (eventsUs, hasFailure, hasError) <-
      foldlM handleEvent (initialUs, False, False) (reverse currEvents)
    case result of
      Error msg | not ignoreRes ->
        do
          finalUs <- reportError (Strict.pack msg) ss eventsUs
          return (ss { stCounts =
                         c { cAsserts = asserts + fromIntegral currAsserts,
                             cCaseAsserts = fromIntegral currAsserts,
                             cErrors = errors + 1 } },
                  finalUs)
      Fail msg | not ignoreRes ->
        do
          finalUs <- reportFailure (Strict.pack msg) ss eventsUs
          return (ss { stCounts =
                         c { cAsserts = asserts + fromIntegral currAsserts,
                             cCaseAsserts = fromIntegral currAsserts,
                             cFailures = failures + 1 } },
                  finalUs)
      _ -> return (ss { stCounts =
                          c { cAsserts = asserts + fromIntegral currAsserts,
                              cCaseAsserts = fromIntegral currAsserts,
                              cFailures =
                                if hasFailure
                                  then failures + 1
                                  else failures,
                              cErrors =
                                if hasError
                                  then errors + 1
                                  else errors } },
                   eventsUs)

-- | Indicate that the result of a test is already reflected in the testinfo.
ignoreResult :: IO ()
ignoreResult = modifyIORef testinfo (\t -> t { tiIgnoreResult = True })

resetTestInfo :: IO ()
resetTestInfo = writeIORef testinfo TestInfo { tiAsserts = 0,
                                               tiEvents = [],
                                               tiIgnoreResult = False,
                                               tiHeartbeat = False,
                                               tiPrefix = "" }

-- | Indicate test progress.
heartbeat :: IO ()
heartbeat = modifyIORef testinfo (\t -> t { tiHeartbeat = True })

-- | Execute the given computation with a message prefix.
withPrefix :: Strict.Text -> IO () -> IO ()
withPrefix prefix c =
  do
    t @ TestInfo { tiPrefix = oldprefix } <- readIORef testinfo
    writeIORef testinfo t { tiPrefix = Strict.concat [prefix, oldprefix] }
    c
    modifyIORef testinfo (\t' -> t' { tiPrefix = oldprefix })

-- | Record sysout output.
logSysout :: Strict.Text -> IO ()
logSysout msg =
  modifyIORef testinfo (\t -> t { tiEvents = (sysOutCode,
                                              Strict.concat [tiPrefix t, msg]) :
                                             tiEvents t })

-- | Record sysout output.
logSyserr :: Strict.Text -> IO ()
logSyserr msg =
  modifyIORef testinfo (\t -> t { tiEvents = (sysErrCode,
                                              Strict.concat [tiPrefix t, msg]) :
                                             tiEvents t })

-- | Record that one assertion has been checked.
logAssert :: IO ()
logAssert = modifyIORef testinfo (\t -> t { tiAsserts = tiAsserts t + 1 })

-- | Record an error, along with a message.
logError :: Strict.Text -> IO ()
logError msg =
  modifyIORef testinfo (\t -> t { tiEvents = (errorCode,
                                              Strict.concat [tiPrefix t, msg]) :
                                             tiEvents t })

-- | Record a failure, along with a message.
logFailure :: Strict.Text -> IO ()
logFailure msg =
  modifyIORef testinfo (\t -> t { tiEvents = (failureCode,
                                              Strict.concat [tiPrefix t, msg]) :
                                             tiEvents t })

-- | Get a combined failure message, if there is one.
getFailures :: IO (Maybe Strict.Text)
getFailures =
  do
    TestInfo { tiEvents = events } <- readIORef testinfo
    case map snd (filter ((== failureCode) . fst) events) of
      [] -> return $ Nothing
      fails -> return $ Just (Strict.concat (reverse fails))

-- | Get a combined failure message, if there is one.
getErrors :: IO (Maybe Strict.Text)
getErrors =
  do
    TestInfo { tiEvents = events } <- readIORef testinfo
    case map snd (filter ((== errorCode) . fst) events) of
      [] -> return $ Nothing
      errors -> return $ Just (Strict.concat (reverse errors))

-- Assertion Definition
-- ====================

type Assertion = IO ()

-- Conditional Assertion Functions
-- -------------------------------

-- | Unconditionally signal that a failure has occurred.  This will
-- not stop execution, but will record the failure, resulting in a
-- failed test.
assertFailure :: Strict.Text
              -- ^ The failure message
              -> Assertion
assertFailure msg = logAssert >> logFailure msg

-- | Signal that an assertion succeeded.  This will log that an
-- assertion has been made.
assertSuccess :: Assertion
assertSuccess = logAssert

-- | Signal than an error has occurred and stop the test immediately.
abortError :: Strict.Text -> Assertion
abortError msg = throw TestException { teError = True, teMsg = msg }

-- | Signal that a failure has occurred and stop the test immediately.
-- Note that if an error has been logged already, the test will be
-- reported as an error.
abortFailure :: Strict.Text -> Assertion
abortFailure msg = throw TestException { teError = False, teMsg = msg }

-- | Asserts that the specified condition holds.
assertBool :: Strict.Text
           -- ^ The message that is displayed if the assertion fails
           -> Bool
           -- ^ The condition
           -> Assertion
assertBool msg b = if b then assertSuccess else assertFailure msg

-- | Signals an assertion failure if a non-empty message (i.e., a message
-- other than @\"\"@) is passed.
assertString :: String
             -- ^ The message that is displayed with the assertion failure
             -> Assertion
assertString = assertStringWithPrefix ""

-- | Signals an assertion failure if a non-empty message (i.e., a
-- message other than @\"\"@) is passed.  Allows a prefix to be
-- supplied for the assertion failure message.
assertStringWithPrefix :: Strict.Text
                       -- ^ Prefix to attach to the string if not null
                       -> String
                       -- ^ String to assert is null
                       -> Assertion
assertStringWithPrefix prefix s =
  assertBool (Strict.concat [prefix, Strict.pack s]) (null s)

-- | Asserts that the specified actual value is equal to the expected value.
-- The output message will contain the prefix, the expected value, and the
-- actual value.
--
-- If the prefix is the empty string (i.e., @\"\"@), then the prefix is omitted
-- and only the expected and actual values are output.
assertEqual :: (Eq a, Show a)
            => Strict.Text
            -- ^ The message prefix
            -> a
            -- ^ The expected value
            -> a
            -- ^ The actual value
            -> Assertion
assertEqual preface expected actual =
  let
    msg = Strict.concat [if Strict.null preface
                           then ""
                           else Strict.concat [preface, "\n"],
                         "expected: ", Strict.pack (show expected),
                         "\nbut got: ", Strict.pack (show actual)]
  in
    assertBool msg (actual == expected)

-- | Assert that the given computation throws a specific exception.
assertThrowsExact :: (Exception e, Show e, Eq e)
                  => e
                  -- ^ Exception to be caught
                  -> IO a
                  -- ^ Computation that should throw the exception
                  -> Assertion
assertThrowsExact ex comp =
  let
    normalmsg = Strict.concat ["expected exception ", Strict.pack (show ex),
                               " but computation finished normally"]
    runComp = comp >> assertFailure normalmsg
    handler ex' =
      let
        msg = Strict.concat ["expected exception ", Strict.pack (show ex),
                             " but got ", Strict.pack (show ex')]
      in
       if ex == ex'
         then assertSuccess
         else assertFailure msg
  in
    handle handler runComp

-- | Assert that the given computation throws an exception that
-- matches a predicate.
assertThrows :: (Exception e, Show e)
             => (e -> Assertion)
             -- ^ Exception to be caught
             -> IO a
             -- ^ Computation that should throw the exception
             -> Assertion
assertThrows check comp =
  let
    runComp =
      do
        _ <- comp
        assertFailure "expected exception but computation finished normally"
  in
    handle check runComp

-- Overloaded `assert` Function
-- ----------------------------

-- | Allows the extension of the assertion mechanism.
--
-- Since an 'Assertion' can be a sequence of @Assertion@s and @IO@
-- actions, there is a fair amount of flexibility of what can be
-- achieved.  As a rule, the resulting 'Assertion' should not assert
-- multiple, independent conditions.
--
-- If more complex arrangements of assertions are needed, 'Test's and
-- 'Testable' should be used.
class Assertable t where
  -- | Assertion with a failure message
  assertWithMsg :: String -> t -> Assertion

  -- | Assertion with no failure message
  assert :: t -> Assertion
  assert = assertWithMsg ""

instance Assertable () where
  assertWithMsg _ = return

instance Assertable Bool where
  assertWithMsg = assertBool . Strict.pack

instance Assertable Result where
  assertWithMsg _ Pass = assertSuccess
  assertWithMsg "" (Error errstr) = logError (Strict.pack errstr)
  assertWithMsg prefix (Error errstr) =
    logError (Strict.pack (prefix ++ errstr))
  assertWithMsg "" (Fail failstr) = assertFailure (Strict.pack failstr)
  assertWithMsg prefix (Fail failstr) =
    assertFailure (Strict.pack (prefix ++ failstr))

instance Assertable Progress where
  assertWithMsg msg (Progress _ cont) = assertWithMsg msg cont
  assertWithMsg msg (Finished res) = assertWithMsg msg res

instance (ListAssertable t) => Assertable [t] where
  assertWithMsg = listAssert

instance (Assertable t) => Assertable (IO t) where
  assertWithMsg msg t = t >>= assertWithMsg msg

-- | A specialized form of 'Assertable' to handle lists.
class ListAssertable t where
  listAssert :: String -> [t] -> Assertion

instance ListAssertable Char where
  listAssert = assertStringWithPrefix . Strict.pack

instance ListAssertable Assertion where
  listAssert msg asserts = withPrefix (Strict.pack msg) (sequence_ asserts)

-- Assertion Construction Operators
-- --------------------------------

infix  1 @?, @=?, @?=

-- | Shorthand for 'assertBool'.
(@?) :: (Assertable t) =>
        t
     -- ^ A value of which the asserted condition is predicated
     -> String
     -- ^ A message that is displayed if the assertion fails
     -> Assertion
predi @? msg = assertWithMsg msg predi

-- | Asserts that the specified actual value is equal to the expected value
-- (with the expected value on the left-hand side).
(@=?) :: (Eq a, Show a)
      => a
      -- ^ The expected value
      -> a
      -- ^ The actual value
      -> Assertion
expected @=? actual = assertEqual "" expected actual

-- | Asserts that the specified actual value is equal to the expected value
-- (with the actual value on the left-hand side).
(@?=) :: (Eq a, Show a)
         => a
         -- ^ The actual value
         -> a
         -- ^ The expected value
         -> Assertion
actual @?= expected = assertEqual "" expected actual

-- Test Definition
-- ===============

-- | Definition for a test suite.  This is intended to be a top-level
-- (ie. non-nestable) container for tests.  Test suites have a name, a
-- list of options with default values (which can be overridden either
-- at runtime or statically using 'ExtraOptions'), and a set of
-- 'Test's to be run.
--
-- Individual tests are described using definitions found in cabal's
-- "Distribution.TestSuite" module, to allow for straightforward
-- integration with cabal testing facilities.
data TestSuite =
  TestSuite {
    -- | The name of the test suite.
    suiteName :: !Strict.Text,
    -- | Whether or not to run the tests concurrently.
    suiteConcurrently :: !Bool,
    -- | A list of all options used by this suite, and the default
    -- values for those options.
    suiteOptions :: ![(Strict.Text, Strict.Text)],
    -- | The tests in the suite.
    suiteTests :: ![Test]
  }

-- | Create a test suite from a name and a list of tests.
testSuite :: String
          -- ^ The suite's name.
          -> [Test]
          -- ^ The tests in the suite.
          -> TestSuite
testSuite suitename testlist =
  TestSuite { suiteName = Strict.pack suitename, suiteConcurrently = True,
              suiteOptions = [], suiteTests = testlist }

-- Overloaded `test` Function
-- --------------------------

{-# NOINLINE syntheticName #-}
syntheticName :: String
syntheticName = "__synthetic__"

wrapTest :: IO a -> IO Progress
wrapTest t =
  do
    ignoreResult
    _ <- t
    checkTestInfo

checkTestInfo :: IO Progress
checkTestInfo =
  do
    errors <- getErrors
    case errors of
      Nothing ->
        do
          failures <- getFailures
          case failures of
            Nothing -> return $ (Finished Pass)
            Just failstr -> return $ (Finished (Fail (Strict.unpack failstr)))
      Just errstr -> return $ (Finished (Error (Strict.unpack errstr)))

-- | Provides a way to convert data into a @Test@ or set of @Test@.
class Testable t where
  -- | Create a test with a given name and tag set from a @Testable@ value
  testNameTags :: String -> [String] -> t -> Test

  -- | Create a test with a given name and no tags from a @Testable@ value
  testName :: String -> t -> Test
  testName testname = testNameTags testname []

  -- | Create a test with a given name and no tags from a @Testable@ value
  testTags :: [String] -> t -> Test
  testTags = testNameTags syntheticName

  -- | Create a test with a synthetic name and no tags from a @Testable@ value
  test :: t -> Test
  test = testNameTags syntheticName []

instance Testable Test where
  testNameTags newname newtags g @ Group { groupTests = testlist } =
    g { groupName = newname, groupTests = map (testTags newtags) testlist }
  testNameTags newname newtags (Test t @ TestInstance { tags = oldtags }) =
    Test t { name = newname, tags = newtags ++ oldtags }
  testNameTags newname newtags (ExtraOptions opts t) =
    ExtraOptions opts (testNameTags newname newtags t)

  testTags newtags g @ Group { groupTests = testlist } =
    g { groupTests = map (testTags newtags) testlist }
  testTags newtags (Test t @ TestInstance { tags = oldtags }) =
    Test t { tags = newtags ++ oldtags }
  testTags newtags (ExtraOptions opts t) =
    ExtraOptions opts (testTags newtags t)

  testName newname g @ Group {} = g { groupName = newname }
  testName newname (Test t) = Test t { name = newname }
  testName newname (ExtraOptions opts t) =
    ExtraOptions opts (testName newname t)

  test = id

instance (Assertable t) => Testable (IO t) where
  testNameTags testname testtags t =
    let
      unrecognized optname _ = Left ("Unrecognized option " ++ optname)
      out = TestInstance { name = testname, tags = testtags,
                           run = wrapTest (t >>= assert),
                           options = [], setOption = unrecognized }
    in
      Test out

instance (Testable t) => Testable [t] where
  testNameTags testname testtags ts =
    Group { groupName = testname, groupTests = map (testTags testtags) ts,
            concurrently = True }

-- Test Construction Operators
-- ---------------------------

infix  1 ~?, ~=?, ~?=
infixr 0 ~:

-- | Creates a test case resulting from asserting the condition obtained
--   from the specified 'AssertionPredicable'.
(~?) :: (Assertable t)
     => t
     -- ^ A value of which the asserted condition is predicated
     -> String
     -- ^ A message that is displayed on test failure
     -> Test
predi ~? msg = test (predi @? msg)

-- | Shorthand for a test case that asserts equality (with the expected
--   value on the left-hand side, and the actual value on the right-hand
--   side).
(~=?) :: (Eq a, Show a)
      => a
      -- ^ The expected value
      -> a
      -- ^ The actual value
      -> Test
expected ~=? actual = test (expected @=? actual)

-- | Shorthand for a test case that asserts equality (with the actual
--   value on the left-hand side, and the expected value on the right-hand
--   side).
(~?=) :: (Eq a, Show a)
      => a
      -- ^ The actual value
      -> a
      -- ^ The expected value
      -> Test
actual ~?= expected = test (actual @?= expected)

-- | Creates a test from the specified 'Testable', with the specified
--   label attached to it.
--
-- Since 'Test' is @Testable@, this can be used as a shorthand way of
-- attaching a 'TestLabel' to one or more tests.
(~:) :: (Testable t) => String -> t -> Test
label ~: t = testName label t


1.Wide loose fitting maxi skirt, made with high quality and really comfortable to wear. Perfect pair with crop tops, denim shirts, romper top, tees, tanks and so on. 3.Suit for most occasions such as Night Club, Homecoming Prom, Weekend Party etc.


text:
Stay & Explore
Language: EN GR
RACE PACK COLLECTION
When and where do I collect my Race Pack from?
Race pack collection for all participants will take place from the 19th until the 21st of March 2020 from our Registration Offices. Our Registration Offices will be located at the old Port square, Limassol and they will be open on Thursday 11:00am - 19:00pm, Friday 09:00am – 18:00pm and Saturday 09:00am – 18:00pm.
What is included in my Race Pack?
Customised BIB Number
Official Limassol City Guide
2-Day Public transport pass
What do I do if I cannot collect my race pack?
You can nominate someone else to collect your race pack, such as a friend or a family member, by giving them your confirmation email printed.An alternative would be for a courier to pick it up on behalf of you from our Registration Offices.
Why do we have to collect our race packs?
In previous years many Race Packs have not been received on time by our runners using the postal service. This has led to an increase in work load for the Limassol Marathon team and frustration for our runners.
To ensure that we do not have any issues in the future we have decided to ask our runners (or a friend, family member, running buddy or colleague) to collect their number instead. This should ensure that every runner wakes up on race day morning with the correct information, number, race chip and kit bag.
OPAP LIMASSOL MARATHON GSO
Fully accredited by AIMS, the OPAP Limassol Marathon GSO is a flat course which follows the Mediterranean coastline. From the centre of the city, along the beachfront, to the ruins of the ancient Royal city of Amathus, and back to the city. 42.195 kilometres. 26.2188 miles. 26.2188 smiles.
Way we use the data
D.M.C.- S.A.S.EVENT LTD
Franklin Roosevelt 86, 3011, Petra Business Centre, 2&3 Floor. P.O. Box 51623, 3507 Limassol, Cyprus
info@limassolmarathon.com
For all press and media enquiries in the UK please contact:
Breathe Unity | COLONY | Jactin House | 24 Hood Street | Ancoats | Manchester | M4 6WX
info@breatheunity.com
© OPAP Limassol Marathon GSO | Created by . Powered by .
Cookies are tiny text files stored on your computer when you visit certain web pages, which we use to keep track of what you have in your basket, and to remember you when you return to our site. So what are they and why do we use them?
When you visit our website you may notice some cookies that aren't related with us. If you go on to a web page that contains embedded content, for example from YouTube, you may be sent cookies from these websites. We don't control the setting of these cookies, so please check the third-party websites for more information about their cookies and how to manage them.
'SHARE' TOOLS
If you take the opportunity to 'share' our content with friends through social networks – such as Facebook and Twitter - you may be sent cookies from these websites. We don't control the setting of these cookies, so please check the third-party websites for more information about their cookies and how to manage them.
If you'd like to learn more about cookies in general and how to manage them, aboutcookies.org (opens in a new window). If you'd like to opt out of cookies, please go to the Network Advertising Initiative website (opens in a new window). Please note that we're not responsible for the content of external websites.
To make full use of the online shopping and personalised features on our website, your computer, tablet or mobile phone will need to accept cookies, as we can only provide you with certain personalised features of this website by using them. Our cookies don't store sensitive information such as your name, address or payment details: they simply hold the 'key' that, once you're signed in, is associated with this information. However, if you'd prefer to restrict, block or delete cookies from our website, or any other website, you can use your browser to do this. Each browser is different, so check the 'Help' menu of your particular browser (or your mobile phone's handset manual) to learn how to change your cookie preferences.
We respect your privacy. Our website is using cookies for 3rd party advertising, analytics, language and user settings. By continuing to browse our site you agree to our use of cookies and Terms and Conditions. That's Fine


text:
Home Op-Ed World is failing newborn babies, says UNICEF
World is failing newborn babies, says UNICEF
Babies from the best places to be born up to 50 times less likely to die in the first month of life
Somalilandsun – Global deaths of newborn babies remain alarmingly high, particularly among the world's poorest countries, UNICEF said today in a new report on newborn mortality. Babies born in Japan, Iceland and Singapore have the best chance at survival, while newborns in Pakistan, the Central African Republic and Afghanistan face the worst odds.
"While we have more than halved the number of deaths among children under the age of five in the last quarter century, we have not made similar progress in ending deaths among children less than one month old," said Henrietta H. Fore, UNICEF's Executive Director. "Given that the majority of these deaths are preventable, clearly, we are failing the world's poorest babies."
Globally, in low-income countries, the average newborn mortality rate is 27 deaths per 1,000 births, the report says. In high-income countries, that rate is 3 deaths per 1,000. Newborns from the riskiest places to give birth are up to 50 times more likely to die than those from the safest places.
The report also notes that 8 of the 10 most dangerous places to be born are in sub-Saharan Africa, where pregnant women are much less likely to receive assistance during delivery due to poverty, conflict and weak institutions. If every country brought its newborn mortality rate down to the high-income average by 2030, 16 million lives could be saved.
More than 80 per cent of newborn deaths are due to prematurity, complications during birth or infections such as pneumonia and sepsis, the report says. These deaths can be prevented with access to well-trained midwives, along with proven solutions like clean water, disinfectants, breastfeeding within the first hour, skin-to-skin contact and good nutrition. However, a shortage of well-trained health workers and midwives means that thousands don't receive the life-saving support they need to survive. For example, while in Norway there are 218 doctors, nurses and midwives to serve 10,000 people, that ratio is 1 per 10,000 in Somalia.
This month, UNICEF is launching Every Child ALIVE, a global campaign to demand and deliver solutions on behalf of the world's newborns. Through the campaign, UNICEF is issuing an urgent appeal to governments, health care providers, donors, the private sector, families and businesses to keep every child alive by:
• Recruiting, training, retaining and managing sufficient numbers of doctors, nurses and midwives with expertise in maternal and newborn care;
• Guaranteeing clean, functional health facilities equipped with water, soap and electricity, within the reach of every mother and baby;
• Making it a priority to provide every mother and baby with the life-saving drugs and equipment needed for a healthy start in life; and
• Empowering adolescent girls, mothers and families to demand and receive quality care.
"Every year, 2.6 million newborns around the world do not survive their first month of life. One million of them die the day they are born," said Ms. Fore. "We know we can save the vast majority of these babies with affordable, quality health care solutions for every mother and every newborn. Just a few small steps from all of us can help ensure the first small steps of each of these young lives."
For rankings of all countries, click here
UNICEF works in some of the world's toughest places, to reach the world's most disadvantaged children. Across 190 countries and territories, we work for every child, everywhere, to build a better world for everyone. For more information about UNICEF and its work for children, visit www.unicef.org. Learn about the Every Child ALIVE campaign.
Read full report titled Every child alive
Previous articleWho is Likely to Replace Desalegn as Prime Minister of Ethiopia
Next articleThe Somalia-Somaliland Talks. A Crossroads or a Dead End?


text:
Life of the celebration
by Scott M. Long October 8, 2019 Featured
Don't we all just love the ones impromptu evenings spent with friends, performing some of the craziest matters: consuming, drinking, gambling charades and Pictionary, and, as the night time wears on, making up our very own phrases to antique tunes. We did this one evening in university, and as we got extra raucous, the neighbors, in the end, got here around, asking if a cat had died. Avoid this eventuality and download a karaoke app to hit the proper notes and phrases and even record your tries. Here are some you might need to check out.
The app helps you to download a song to keep in your library, to absolutely plug and play the following time making a decision to have an impromptu karaoke session. It also helps you to get right of entry to lyrics via www.Gosing.Com. With over 357 pages of karaoke and instrumentals, there's a quite marvelous line-up. The quality element: it helps offline use.
Have you visible movies of humans channeling their inner Beyonce and Justin Biebers of past due? That's possible thanks to Smule. The app is going past being only a Karaoke tool. It affords a platform to singers to connect to like-minded people throughout musical genres. There are network tune books, vocal consequences and messaging services too.
Life and loss of life in Apple's forbidden metropolis
Hospitals are seeking out the killer Amazon Alexa app
Moreish and Moorish: a foodie excursion of Andalucía
The fight to shield the Internet of Things
Analysing the performance of schooling in K-P
And in case you're not lots of a singer, there's no need to worry. The app could make you sound like a pro with its studio polish effects. And if the singing solo is boring, truly collaborate with different singers for a duet. Sounds a laugh?
This app helps you to sing songs with YouTube and channel your internal rockstar. It helps you to browse thru an impressive catalog of tune films across genres and languages. Once you've selected your track, you could additionally choose to file your performance. The app also lets you upload results, such as echo and reverberate, and of the route, it also lets you proportion your recordings across social media systems.
The app has over million users around the sector and integrates with Facebook for a social media revel in.
It has thousands of songs, with new ones being up to date on a regular basis, and shall we users sing and record their voices.
You also can enhance your recording with filters and sound effects earlier than you proportion it with buddies. Go on, make yourself sound just like the subsequent pop superstar.
Recently launched demographic data shows the wide variety of married couples with school-age kids rose 10 to 20 percent throughout middle- and higher earnings neighborhoods of New York City simply inside the first 1/2 of this decade, accelerating a trend that began inside the mid-2000s. Similar will increase has been found in urban regions of Hudson County in New Jersey.
At the identical time, the wide variety of such families continued to dip across a lot of Bergen, Passaic, Morris and other suburban counties in New Jersey and New York, consistent with an analysis of the records by using The Record and NorthJersey.Com.
While towns toward the city — and with shorter commutes — have largely escaped the trend, a number of the vicinity's extra upscale communities, especially people with longer commutes to jobs in Manhattan, had been hit the hardest.
Across the river, households are putting down roots from Riverdale within the Bronx to the Upper West Side of Manhattan to Park Slope in Brooklyn, wherein toddler carriages have come to be as not unusual as taxis.
"It's completely distinctive from where I grew up," said Maya Levin, who spent her teenage years inside the metropolis of Passaic and now squeezes right into a two-room Park Slope condominium along with her husband and the little one. "It's sincerely night and day, in phrases of the variety of human beings, the things to do, the lifestyle, the lifestyle, the whole lot."
A Tiny Tweak to Gut Bacteria Can Extend an Animal's Life
Learning to Think Like a Computer
Life on Mars: Elon Musk well-knownshows information of his colonisation vision
Tips to gamble safely on the internet
Dodge Challenger Demon: So Fast, You Have to Sign a Waiver to Buy It
Software tool could help architects design efficient buildings
Stock-market bulls are 'playing with hearth,' says economic blogger


To add a new Site Column that can be used universally, follow these steps.
Under Galleries, click "Site columns".
In the menu bar, click "Create".
Under the Name and Type section, set the "Column name" to the name you wish to use for this column. In our case, we're just using TestSiteColumn as the name.
In the "Type of information in this column" field, select the type of field you wish to use. For our example, I'm just using the default "Single line of text".
In the Group section, select the Group in which you wish to place the new Site Column. For our example, I'm just going to leave it in the default "Custom Columns" group.
In the Additional Column Settings section, you can add a Description for your new Site Column.
By default the "Require that this column contains information" field is set to "No". If you wish the site column to be required, set this value to "Yes" now.
For a "Single line of text" field, the default length is 255 characters. If you wish to shorten the field, you can do so by changing this value.
The "Default value" setting is set to "Text" by default, but there's no value in the text box. Set the default value you wish to use for this field here, if you want.
Lastly, click the "OK" button to add the new Site Column.
The new Site Column should now show up in the Site Column list under the "Custom Columns" group.


text:
Q: How to scroll in both directions horizontally and vertically at the same time in react native? I am trying to scroll in both directions horizontally and vertically at the same time in react native app, where i have scrollview contains group of horizontal flatlists.
However I need to stop scrolling horizontally in order to be able to scroll vertically.
<ScrollView>
<ItemComponent dataState={this.state.Homepage} renderItemProp={renderItem}/>
<ItemComponent dataState={this.state.Politik}  renderItemProp={renderItem} />
......
....
</ScrollView>

ItemComponent :
<View >
  <FlatList
  horizontal={true}
  style={{ marginTop:10,marginLeft:15,marginBottom:10 }}
  showsHorizontalScrollIndicator={false}
  data={dataState}
  renderItem={renderItemProp}
             />
</View>

redpajama_set_name: RedPajamaStackExchange


text:
Q: How to prevent kdevelop showing "Unable to load the project file ...." for non-existing project When I start kdevelop (4.3.1) on Ubuntu (12.04) it is always showing a message twice
Unable to load the project file ...

I once created a project kdevelop is trying to find, but I moved files around and now the project's location has changed. As this project is not important at all, I want kdevelop to prevent looking for this project at the non-existing location. Can I configure kdevelop accordingly to 'remove' the project from a 'look-up' list? Or can I edit a kdevelop configuration file to tahe the project out?

A: This sounds like a bug. Please report it at bugs.kde.org.
As a workaround you can create a new session - that won't contain any open files.
(and delete the old one)

A: Just change the permission of the project directory where you want to create the configuration file.
chmod -R 777 source_directory_path


text:
Q: Extension of an Isomorphism
Suppose $E_1, E_2 \subset E$ are proper subfields. In general, if one has an isomorphism $\sigma:E_1\to E_2$, is it possible to extend it to an isomorphism $\psi:E\to E$ s.t. $\psi|_{E_1} = \sigma$ ?

Ideally, is it possible to get such a $\psi$ that also does not "affect" elements in $E\backslash E_1$ ? I thought
$$
\psi(e):=\begin{cases} e, & e \in E\backslash E_1, \\ \sigma(e), & e \in E_1,\end{cases}
$$
might work but unfortunately it looks like it does not in general.

A: Yes, if  $E$ is an algebraic and normal  extension of the fixed subfield of the morphism $E_1\to E_2$, but not in general.
Here is an example when you can't extend. Consider $E = \mathbb{Q}( \sqrt{1+ \sqrt{2}})\ $,
$E_1 = E_2 = \mathbb{Q}(\sqrt{2}) $ and $E_1 \to E_2$, $\sqrt{2} \mapsto - \sqrt{2}$.
Let's show the existence of an extension. There are two fundamental facts about algebraic extensions of fields.

*

*If $E/E_1$ is an algebraic extension then any $E_1 \to F$ is a morphism to an algebraically closed field $F$ can be extended to a morphism from $E$ to $F$.

*Let $E/E'$ an algebraic normal extension and $F\supset E$ an extension of $E$. Let $\phi \colon E \to F$ a morphism of fields such that $\phi_{|E'} = Id_{E'}$. Then $\phi(E) = E$.
We are ready for the proof: Consider an extension of the morphism $E_1\to E_2$ from $E$ to an algebraic closure of $E$. Since the extesion $E/E'$ is algebraic and normal image of $E$ will conincide with $E$. Done.


text:
Visit Wolfville
October 20-25, 2020 | Nova Scotia
Colibri Software Partners with Devour! The Food Film Fest
devourfest
Oct. 29, 2013, Wolfville, NS – Colibri Software, the Wolfville-based rural development technology company, has announced its partnership with the Devour! The Food Film Fest.
Colibri Software will launch the Devour! App Powered by Strollopia, a mobile application that allows users to explore the festival through the application's geo-located content messaging. The company is proud to be a part of Devour! The Food Film Festival and is excited to launch this application.
"We are proud to partner with the Devour! The Food Film Fest and launch the application to enhance the on-site experience of event participants," says John Read, President of Colibri Software. "The app will enable users to explore not only the festival but also Wolfville and the surrounding communities. The goal is to make learning and exploring the festival fun and seamless."
The third annual Devour! The Food Film Fest (formerly the Slow Motion Food Film Fest) is an international festival celebrating cinema, food and wine. It takes place in the culinary epicenter of the province–Wolfville, Nova Scotia November 13-17, 2013.
"Devour Looks forward to collaborating with Colibri Software in bringing their Strollopia product to market," says Michael Howell, Executive Director of Devour! "This opportunity to utilize a multi-event Festival in testing their product should prove a good opportunity for Colibri and provide Devourfest with new technology of interest to our visitors."
In addition to the planned 70 films from around the world, the festival will expand to include an Opening Gala Reception hosted by Food Network's Bob Blumer, a program of industry sessions featuring food, film and blogger all-stars, top chefs from the region and beyond, decadent five-course meals inspired by films, wine tours, sweet dessert finish at the Closing Gala & Awards and much, much more.
Colibri Software was created to open up the space of complex and cutting edge technology to people in rural communities. The company prides itself on repeatedly using only the most powerful, open source, and user friendly technology in its projects. Colibri Software is focused on growing the rural economy and creating jobs for Nova Scotia's youth. For more information please visit the website at www.colibri-software.com.
Broadcast Copy:
Colibri Software is launching their newest mobile application at the Devour! The Food Film Fest in Wolfville on November 13, 2013. The application uses a mobile phone GPS to give each user a custom festival experience.
The application provides hand-picked strolls that take the user through a variety of different events throughout the festival, as well as provides the user with event schedules, service locations, and more.
John Read, president of Colibri Software said "We are proud to partner with the Devour! Food Film Fest and launch the application to enhance the on-site experience of event participants".
The third annual Devour! Food Film Fest (formerly the Slow Motion Food Film Fest) is an international festival celebrating cinema, food and wine, takes place in the culinary epicenter of the province–Wolfville, Nova Scotia November 13-17, 2013.
For more information on Colibri software, please visit the website at www dot colibri dash software dot com.
Sara Nelson, Colibri Software
Email: sara.nelson@colibri-software.com
Daphne North, Devour
Email: media@devourfest.com
Telephone: (902.809.3274)
Newsletter/Subscribe
Copyright ©2020 Devour! The Food Film Fest
Design and build by Spectacle Group | Privacy Policy


text:
Число Бонда ( ; )- критерій подібності – міра відношення сили тяжіння fg і сили поверхневого натягу fσ:

Bo = fg/fσ

Назване на честь англ. фізика Вілфріда Ноеля Бонда (Wilfrid Noel Bond).

Число Бонда по суті еквівалентне Числу Етвеша. Першим більше користуються у США, другим – у Європі.

Див. також
 Число Етвеша

Література

 Бойко В.С., Бойко Р.В. Тлумачно-термінологічний словник-довідник з нафти і газу. Тт. 1-2, 2004-2006 рр.  560 + 800 с.

Критерії подібності

redpajama_set_name: RedPajamaWikipedia


text:
Submit A Production
Belle et Bum 16 - MN
Region: N/A
Once again this year, the Belle et Bum website provides visitors with useful information about the show. Each week, a new episode profile is posted online, featuring upcoming guests and their photos, as well as a selection of video clips, including the trailer and excerpts from their performances. Once an episode is broadcast, the webcast is added to the corresponding file. The box office is back in service, allowing users to reserve their places online. The section dedicated to the presentation of the band is also updated. The musical performance competition is back and with a new formula for Season 16. The "J'ai le rythme dans le sang" competition encourages public participation to identify the most talented amateur percussionist. Users submit their nominations and then vote for the best videos.
PRODUCTION COMPANY: Datsit Studios Quinze Inc.
Recommended Projects
Personnalités VII / Lumière sur...VII - MN
COMO PEZ EN EL HIELO - DM
Sexandviolence.tv
MI NOMBRE ES RIPLEY II (7-12)
Brought to you by the Government of Canada and Canada's cable, satellite and IPTV distributors.
© 2017 Canada Media Fund, Telefilm Canada and Canadian Media Production Association. All Rights Reserved.
Design by Exclaim Solutions Inc


VTPL will help you to find relevant domain registration of your business. Domain purchases or transfers will be taken care with providing secured information. Your business starts with a meaningful domain name. VTPL provides easy access to get the domain you want. We offer all major domain levels including; .COM, .IN, .CO.IN, .ORG, .NET and more..
It's challenge to choose the right hosting services of your domain, website and email. It will take much time to find different solutions or services being offered, if you are eager to find genuine Hosting providers in your city that offers best price and quality of services. It includes; number website to be host, storage capacity, bandwidth, number of emails, backup & restore, security and more..


A federal interagency working group is working to identify ways that agencies can leverage their collective buying power to get better prices from vendors, an Office of Management and Budget official said today at the IRMCO conference in Cambridge, Md.
Robert Burton, associate administrator of OMB's Office of Federal Procurement Policy, said a small group of agency executives will identify best practices in what he called strategic sourcing.
The group will then recommend policy and regulatory changes that will institutionalize those best practices, Burton said.
The interagency working group is led by officials at OFPP and the Homeland Security Department, Burton said.
"I'd like to see regulatory and policy changes that will leverage buying power within agencies and then governmentwide, which is not being done well," he said.
Burton said the working group might recommend other projects like SmartBuy, a governmentwide software licensing project begun earlier this year by OMB.
"There's no question a lot of folks are paying list price," Burton said. "We can get a lot more bang for our buck."
For example, Burton said one office supply vendor has reconfigured its computer systems so government employees buying supplies with government credit cards automatically get a discount at checkout.
"They want to keep the government's business," Burton said. "It's a start. All I had to do was ask."
Tom Kirellis, program manager of the SmartBuy initiative, said federal officials hope to meet with Oracle Corp. officials this month to iron out details of a SmartBuy agreement.
The two sides' major point of contention is software maintenance fees. Federal chief information officers want the fees included in the SmartBuy deal, Kirellis said, but officials of Redwood Shores, Calif., Oracle have balked at negotiating the fees as part of a governmentwide purchase of Oracle software.
"They fear they'll have to restate their earnings, and they've convinced their customers that this is how they do business," Kirellis said. "We're bringing agencies together to say we demand this. By leveraging their buying power, we can push back on Oracle."


For years researchers have been puzzled by the number of bats killed by wind turbines. Birds, yes. But bats, in theory, should be able to avoid the towers because of their innate sonar systems that orient them in space. Nonetheless, they die in the thousands, in far greater numbers than birds. Some research found that they died because the enormous changes in pressure as the blades sweep through the air ruptured their delicate ear drums, causing a hemorrhage known as barotrauma. Now, a new study based on bat autopsies from the University of Wisconsin found that the problem is far more complicated.
The scientists found 41 dead bats over three months beneath 29 turbines in Wisconsin. They conducted autopsies, including X-rays, on the animals to determine precisely why they died.
"Half the bats had trauma to the inner ear – their ear drums blew out," said David Drake, one of the researchers on the study published this week in the journal of Mammology. And three fourths had broken bones, primarily wings, he said.
Why does it matter? Because knowing why they die might help in designing towers and blades that are not quite so lethal, he said. For example, changing the shape of a blade could reduce the pressure gradient enough to prevent trauma to their ear canals, he said. Maybe changing the height of the tower would help avoid fatal collisions.
But the science is in its infancy, Drake said. in addition, not much is known about bats, much less about how they behave around wind towers or why they get close to them at all.
In the Midwest, migrating tree roosting bats are the ones that are killed most often. Drake said one theory is that they look for the tallest thing on the landscape – often a wind turbine – in which to roost and mate. There are also studies that correlate bat deaths with low wind, perhaps because that's the best time for bats to feed. "They are so focused on feeding that they don't pay attention to the blades until it's too late, Drake said. Even so, the bats need 20 meters to sense to a moving object. But the blades of a turbine move so fast they have only a quarter second to move out of the way.
Drake said no one has a good estimate of how many bats are killed by wind turbines. But now it matters more than ever because bats are being decimated by a disease called white nose syndrome that destroys whole colonies. The disease is common in east, and is steadily moving west. So the total impact on bats is worrisome.


text:
Australian economy tanking at the halfway mark
By Alan Austin | 12 July 2015, 2:00pm | comments
(Image via @ahhonga)
Australia economy tumbles down the economic tables
Simply comparing numbers now with numbers at the 2013 election shows Australia's economy has deteriorated. But when we examine rankings across the world – which is now recovering steadily – the position is truly alarming.
We can now track most variables over the first 18 months since September 2013 for the entire Organisation for Economic Cooperation and Development (OECD). That is the group of 34 western democracies with comparable mixed free enterprise economies.
So how is Australia travelling? Badly. How can we tell? Ten variables can readily be compared across nations. On each of these prime minister Tony Abbott and treasurer Joe Hockey promised improvement when in Opposition. On each there has been demonstrable decay – if not in the raw figures then certainly in relative performance.
Economic growth: 9th down to 19th
Joe Hockey said in 2013:
"It will be my number one imperative to safeguard the economy against a significant downturn and to turbo charge economic growth and jobs."
The annual growth rate of Australia's gross domestic product (GDP) in September 2013 was 2.3%, ranking equal ninth in the OECD with the USA. It rose through 2014 but fell back to 2.3% in March this year. During that period, the rest of the world advanced. Australia is now in the bottom half of the table, ranking 19th behind Spain, the Czech Republic, Hungary, the USA and 14 other countries. (Figures are found at tradingeconomics.com, except where indicated.)
We know who the clown is, Joe. It's a treasurer who cut spending facing a slowing economy. http://t.co/EPNjYoLEgT pic.twitter.com/DlHHVc6viP
— Christopher Scott (@Orringa) June 4, 2015
Unemployment: 8th down to 13th
Australia's jobless rate in September 2013 was 5.7%, ranked a creditable eighth in the OECD, equal with Denmark. Only Chile, Germany, Japan, South Korea, Mexico, Norway and Switzerland were lower. By March this year, the rate had increased marginally to 6.1%. But the rest of the world had progressed, leaving Australia in 13th place, overtaken by Iceland, Israel, New Zealand, the UK and the USA.
Youth unemployment: 6th down to 12th
This is one area where OECD countries appear to have focused attention with success. The average rate of 21.61% in September 2013 was reduced by March this year to just 19.38%. Still too high, but declining. Australia's rate was 12.65% in September 2013, ranking a creditable sixth. In defiance of the global trend, it had expanded by March this year to 13.6%, now ranking 12th.
Deficits: 10th down to 22nd
Australia's budget deficit in 2013 was 1.2% of Australia's GDP, ranking equal tenth in the OECD. That was the same as Turkey and lower than 23 other countries. The average deficit for the 34 economies then was 2.78% of GDP.
In 2014, the OECD average dropped to 2.1% as the global recovery gained pace. Defying the trend, Australia's deficit blew out to 3.1%, falling from tenth-ranked to 22nd. Italy, Ireland, New Zealand, Turkey, the USA and 16 other OECD countries had lower 2014 deficits than Australia.
Debt: 4th down to 9th
Australia's gross debt in 2013 was 28.6% of GDP, ranking equal fourth lowest with Mexico. Only Chile, Estonia and Luxembourg had lower gross debt to income. Now, Australia ranks ninth with debt at 34.5%, having fallen behind Mexico and also South Korea, Norway, Switzerland and Turkey. (Some 2014 debt figures are from the CIA factbook.)
This is not to imply Australia has a debt problem. It doesn't now, and certainly didn't in 2013. Just noting that rapid debt expansion is the opposite of what the Coalition and the mainstream media promised.
Libs have added $100b to our debt in 18 months. Not Labor, the Libs. #auspol pic.twitter.com/GZ1PbLJHF5
— Nick (@NSunners) July 1, 2015
Terms of trade: disastrously down
This measure – which reflects the relative price of exports in terms of imports – has retreated alarmingly in the first 18 months of the Abbott Government, falling from 98.3 index points at the last election to a lowly 85.7 in the 2015 March quarter.
Meanwhile, global trade has advanced. The OECD average (for the 26 countries that record this indicator) rose over that period from 98.81 to 101.67. Australia has thus gone from about average to well below. Only six of those 26 countries experienced a significant decline over the period. Australia's was by far the worst.
Only Australia and Poland maintained interest rates within the optimum band 2.75% to 4.75% through the entire global financial crisis from 2009 to 2012. In August 2013, however, Australia's rate fell to 2.5%, prompting then shadow treasurer Joe Hockey to warn:
"If interest rates come down today, it is because the economy is struggling, not because it's doing well."
His clear message was that a rate lower than 2.75% offers little reward for savers and is a government fail. The 2.5% rate remained for 19 months. Hockey could not restore the higher level. It then fell to 2.25% in February this year and was cut again to 2.0% in May.
In March this year, three OECD countries had interest rates back within the optimum band, with others not far off. Australia was not one of them.
The World Economic Forum's Global Competitiveness Report ranks 144 countries. Australia's ranking fell, in 2014-15, to 22nd place, from 21st in 2013-14 and 20th in 2012-13.
Areas of regression highlighted included infrastructure, innovation, technological readiness and the macroeconomic environment.
Australia's declining global competitiveness summarised @The_AiGroup http://t.co/qTAILLV9v3 & the original http://t.co/rtUkNNOSiT #ausbiz
— Tony Boyd (@TonyBoydAFR) September 2, 2014
Economic freedom
Measured by the Washington-based Heritage Foundation, economic freedom was high in Australia throughout the Labor years, ranking first in the OECD and third in the world behind Hong Kong and Singapore.
The 2015 ranking, however, saw Australia slip 0.6 of a point and lose third spot to New Zealand. The foundation noted
'... declines in investment freedom, freedom from corruption, and the control of government spending.'
Heritage's downgrade was confirmed in the Corruption Perceptions Index reported by Transparency International, which showed Australia's global ranking falling from ninth in 2013 to 11th in 2014.
It seems that on every indicator for which global comparisons can be made, Australia has fallen in the rankings since the last election and is continuing to slide. This is not what voters were promised.
In his February 2013 state of the nation address, Tony Abbott assured the Committee for Economic Development:
"Should there be a change of government later in the year, there will be an instantaneous adrenaline charge in our economy."
The opposite has occurred.
You can follow Alan Austin on Twitter @AlanTheAmazing.
Enduring Aussie myth: Coalition better at the economy. Who promotes this lie? Please read and share. https://t.co/w9fWQ8pS3P @IndependentAus
— Alan Austin (@alantheamazing) June 14, 2015
Don't blow the budget. Subscribe to IA for just $5.
POLITICS ECONOMICS
Alan Austin OECD Australian economy Joe Hockey Tony Abbott unemployment economic growth GDP World Economic forum competitiveness
Recent articles by Alan Austin
Americans (and others) duped by fake news and tweets
15 July 2019, 8:00am Most recent news on the U.S. economy has been upbeat and triumphant but the real ...
The Coalition now serves foreign corporations first and foremost
8 July 2019, 12:30pm The accumulation of evidence that the Liberal and National parties work for foreign ...
House prices and household income plummet under the Coalition
1 July 2019, 4:30pm The latest data from the Bureau of Statistics shows current policy settings are ...
view all 266 articles by Alan Austin


House-like apartments, in a variety of sizes, surrounding a broad courtyard that includes a playground and swings. The Auburn Boys & Girls Club provides youth programs on site. Firwood Circle is located on a quiet, wooded street in southern Auburn, within a couple of blocks of Mt. Baker Middle School. White River Junction, a shopping plaza, is nearby on A Street.
The overall score is based on the walkability of several types of amenities, including groceries (79), shopping & errands (42), schools (84), dining (70), and parks (65).
KCHA provides reasonable accommodations to qualified persons with disabilities. This makes their living arrangements, as a whole, comparable to that of other residents. To learn more about accessibility at Firwood Circle, contact the office listed below.


text:
Conflicting Interpretations of Falsity Preclude Knowledge Under FCA, Tenth Circuit Holds
Kristin Graham Koehler and William Hochul III
10th Circuit, False Certification, False Statements, Knowledge/Scienter, Relators
In a victory for government contractors, the U.S. Court of Appeals for the Tenth Circuit held that vendors and their suppliers cannot knowingly submit false claims under the False Claims Act where the knowing falsity is premised on lack of compliance with government regulations that are subject to differing, good-faith interpretations. The case, U.S. ex rel. Smith v. Boeing, No. 14-3247, 2016 WL3244862 (10th Cir. 2016), involved an appeal by relators, three former Boeing employees, of summary judgment for Boeing and Ducommun, Inc.
From 1997–2002, Boeing contracted with Ducommun to supply parts for several aircraft that Boeing sold to the Department of Defense. The parts contract required Ducommun to use automated manufacturing processes as a quality control measure. Ducommun initially complied, but its employees eventually reverted to less precise, manual processes to build the parts. Boeing detected irregularities, so it investigated Ducommun and discovered the nonconforming practices.
Three of Boeing's employees then filed a $4.8 billion qui tam action against Boeing and Ducommun under the False Claims Act. The relators alleged that Boeing obtained the required regulatory approval for the aircraft from the Federal Aviation Administration (FAA) by certifying that the Ducommun parts were manufactured by automated processes. Because Ducommun produced the parts manually, Boeing's sales formed the basis of false claims.
After the relators served the complaint, the FAA conducted a two-year investigation into Ducommun's production processes. Finding no violations, the FAA closed its investigation in 2004 and reported that the parts met FAA regulations. The government decided not to intervene in the case, and the relators voluntarily dismissed their first action.
The relators filed a second complaint in 2005, which they supplemented with two expert opinions challenging the FAA's conclusion. The experts asserted that the Ducommun parts were non-compliant because they were manufactured by hand tools that were incapable of collecting the process data that Boeing promised to the FAA in its certifications.
The district court granted summary judgment for the defendants because the relators did not establish Boeing's knowledge of the false certifications. U.S. ex rel. Smith v. The Boeing Company, No. 05-1073-MLB, 2014 WL 5025782 (D. Kan. Oct. 8, 2014). The relators' "evidence of good-faith differences of opinion" about FAA requirements "will not suffice." Id. at *22.
The Tenth Circuit agreed: "at best, evidence shows conflicting opinions" as to whether Ducommun's manual processes failed to meet FAA requirements. U.S. ex rel. Smith, No. 14-3247, at *10. And, even assuming they did not, "there are simply no facts supporting the relators' contention that Boeing knew about the nonconformities when submitting the claims for payment." Id. at *9.
The decision is a win for government contractors, requiring more than conflicting evidence of falsity where the claimant cannot otherwise establish knowledge.
The Tenth Circuit's opinion can be found here.
Kristin Graham Koehler
kkoehler@sidley.com
William Hochul III
whochul@sidley.com
https://fcablog.sidley.com/wp-content/uploads/sites/5/2022/08/sidleyLogo-e1643922598198.png 0 0 Kristin Graham Koehler https://fcablog.sidley.com/wp-content/uploads/sites/5/2022/08/sidleyLogo-e1643922598198.png Kristin Graham Koehler2016-06-24 20:45:012016-06-24 20:45:01Conflicting Interpretations of Falsity Preclude Knowledge Under FCA, Tenth Circuit Holds
September 2022 Fourth Circuit En Banc Vacates Application of Safeco to FCA Cases
The Fourth Circuit, evenly divided while sitting en banc, recently unwound a panel decision finding that Safeco's "reckless disregard" standard applies to the False Claims Act ("FCA").
In January 2022, a panel of the Fourth Circuit held, joining every other circuit to have considered the issue, that when allegations of false claims are premised on violations of ambiguous laws or regulations, the defendant's scienter is properly assessed using the standard for "reckless disregard" established by the Supreme Court in Safeco Insurance Company of America v. Burr, 551 U.S. 47 (2007). Under Safeco, courts ask whether a defendant's interpretation of the ambiguous law or regulation at issue was objectively reasonable and whether authoritative guidance might have warned the defendant away from that interpretation. As discussed here, applying Safeco, the panel affirmed the district court's dismissal of the case.
4th CircuitKnowledge/Scienter
April 2022 New Pharmacy, Same Result: Seventh Circuit Holds That Objective Reasonableness Dooms "Usual and Customary" Pricing Case
On April 5, 2022, in a 2-1 decision, the Seventh Circuit applied the precedent it set in United States ex. rel. Schutte v. SuperValu Inc., 9 F.4th 455 (7th Cir. 2021) (discussed here) and found once again that a defendant retail pharmacy did not act with "reckless disregard" under the False Claims Act ("FCA") by interpreting Medicare Part D and Medicaid "usual and customary" price requirements as allowing it to charge those programs its retail cash prices rather than prices offered through discount programs. United States ex rel. Proctor v. Safeway, Inc., No. 20-3425, 2022 WL 1012256 (7th Cir. Apr. 5, 2022).
7th CircuitIL-NDKnowledge/Scienter
January 2022 Fourth Circuit Applies Safeco to FCA Claims, Accuses CMS of "Maintaining Strategic Ambiguity" Around Medicaid Drug Rebate Program Requirements
In a recent 2-1 decision, the Fourth Circuit joined every other circuit to have considered the issue in applying Safeco's "reckless disregard" standard to legally false FCA claims based on alleged violations of ambiguous laws and regulations. Under Safeco, courts ask whether a defendant's interpretation of the ambiguous law or regulation at issue was objectively reasonable and whether authoritative guidance might have warned the defendant away from that interpretation. The Fourth Circuit found that the Safeco standard "duly ensures that defendants must be put on notice before facing liability for allegedly failing to comply with complex legal requirements. Without such notice, defendants are not likely to receive due process."