text:
Home Who We Are Maureen C. Kassner
mkassner@kassgen.com
Mauri was born and raised in Baltimore, Maryland and first lived in Philadelphia as an undergraduate studying marketing and advertising at The University of Pennsylvania. She has held a variety of jobs, including in the bookkeeping department at Merrill Lynch, clerking in The Antitrust Division of the United States Department of Justice, and a little- publicized stint in its Organized Crime Strike Force. After graduating from The Georgetown University Law Center and a short period of residence in New York where she worked with a small intellectual property boutique law firm, she relocated to Philadelphia where she has remained ever since.
Her Philadelphia experience started with another intellectual property boutique firm, Panitch Schwarze Jacobs & Nadel, where she worked before becoming the first in-house intellectual property specialist in the law department of Tyco Toys, Inc., which subsequently merged into Mattel, Inc. Mauri was responsible for advising all East Coast operations with respect to trademark, copyright and unfair competition matters. She was also responsible for searching, prosecuting, maintaining and enforcing the company's trademark, trade dress and domain name portfolios worldwide. In this capacity she developed a network of trusted international counsel with whom she partnered in protecting the Company's assets and redressing infringements overseas. Her nearly 10 years of experience working directly with the business operations of a consumer products manufacturer with a streamlined law department, combined with her musical background, has informed the way she approaches the practice of law, giving her a keen sense of practical considerations affecting business operations and a sensitivity to cost containment. As a result, among her job responsibilities were many areas that fall outside of traditional intellectual property practice, including music licensing, inventor licensing, oversight of advertising and packaging review and compliance, fact-finding in infringement actions, along with both in- and out-licensing of branding, character, entertainment property and product design. She represented the Company prosecuting and defending claims for false or deceptive advertising brought before the National Advertising Review Board (NARB) of the Better Business Bureau and its Children's Advertising Review Unit (CARU), which work she has continued throughout her career.
This skill set has served her clients well in private practice, where she returned to work first with Akin Gump Strauss Hauer & Feld and then Panitch Schwarze Belisario & Nadel, before co-founding K & G Law LLC. She focuses on global trademark and copyright prosecution, advertising compliance, intellectual property counseling, strategic brand development and both merchandise and music licensing, and protection of domain names under The Uniform Domain-Name Dispute Resolution Policy (UDRP). An inveterate shopper, as well as a student of marketing, she has honed strong instincts about consumer behavior and regulation of the marketplace that allow her to guide clients in the selection, protection, preservation and exploitation of trademarks and other proprietary indicia of origin.
[Her] level of professionalism is top notch, but she isn't distant; she understands and protects the attorney-client relationship. Her diligence and personal attention are big attractions. She is a thorough client counsellor who recognizes that unusual courses of action may well be the best way forward—in other words, she attends to the business realities her patrons face and acts accordingly.
The Secondary School Interview Committee, University of Pennsylvania.
Georgetown University Law School Alumni Admissions Interviewer.
Fundraising Committee. Delaware County Youth Orchestra.
Trained in classical piano and mandolin.
Mauri can write backwards in cursive, a skill for which she has yet to find any commercial application.
Commonwealth of Pennsylvania, State of New York.
American Bar Association and its Intellectual Property Section
World Trademark Review 1000, a ranking of leading trademark professionals.


In this captivating presentation, you'll discover how Fr. Jose Antonio Fortea, preparing to seek his doctorate in Church History was compelled by his bishop to pursue the world's first PhD in Exorcism. With disarming humility and good humour, the unassuming Spanish priest catalogues an array of strange phenomena surrounding demonic possession. Fr. Fortea frequently stresses the importance and power of the sacraments in the battle against evil. Fr. Fortea is sought out by exorcists around the globe to offer his expert diagnosis and counsel. As you watch this presentation, you'll understand the importance of exorcism and experience the triumph of Jesus Christ over evil in its most visible form.


text:
Q: CPU usage per application in android I am new for android programming.How can we get CPU usage per application in android?
your help will be more helpful

A: Use adb Commands:
adb shell top -m 10

A: Source:
Technique for indentifying android app CPU usage

*

*Linux:

adb shell top -m 10 | grep packagename

*Windows:

adb shell top -m 10 | FINDSTR packagename

A: Using the new Android Studio 3.0 profiler you can achieve a higher information about the CPU usage and CPU inspection of your APP.

A: Go to Settings -> Developer Tools -> Show CPU Usage
Then run the app
EDIT: This has to be done in the app. If you are reading this in 2019, use CPU Profiler

A: two approaches:

*

*adb shell "top -n 1"

*adb shell dumpsys cpuinfo

A: there are a few ways.
the first one is to open the CPU usage in the Jelly Bean developer options.
the second option is to run the adb shell top -m 10 function in your windows Android SDK folder or ./adb shell top -m 10 in your Mac/Linux.

A: You can use app to access these kinds of information. Such as Simple System Monitor, Simple System Monitor.

A: This let's you monitor in a more top-esque manner
watch -n 0.5 adb shell top -n 1

0.5 is the polling interval

redpajama_set_name: RedPajamaStackExchange


text:
package org.finra.herd.service.helper;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;

import org.finra.herd.core.HerdDateUtils;
import org.finra.herd.model.api.xml.Attribute;
import org.finra.herd.model.api.xml.BusinessObjectDataKey;
import org.finra.herd.model.api.xml.BusinessObjectDataStorageUnitKey;
import org.finra.herd.model.api.xml.Storage;
import org.finra.herd.model.api.xml.StorageDirectory;
import org.finra.herd.model.api.xml.StorageFile;
import org.finra.herd.model.api.xml.StorageUnit;
import org.finra.herd.model.api.xml.StorageUnitStatusChangeEvent;
import org.finra.herd.model.dto.StorageUnitAvailabilityDto;
import org.finra.herd.model.jpa.BusinessObjectDataEntity;
import org.finra.herd.model.jpa.StorageAttributeEntity;
import org.finra.herd.model.jpa.StorageEntity;
import org.finra.herd.model.jpa.StorageFileEntity;
import org.finra.herd.model.jpa.StorageUnitEntity;
import org.finra.herd.model.jpa.StorageUnitStatusHistoryEntity;

/**
 * A helper class for storage unit related code.
 */
@Component
public class StorageUnitHelper
{
    @Autowired
    private AlternateKeyHelper alternateKeyHelper;

    @Autowired
    private BusinessObjectDataHelper businessObjectDataHelper;

    @Autowired
    private StorageFileHelper storageFileHelper;

    /**
     * Creates a business object data storage unit key from business object data key and storage name.
     *
     * @param businessObjectDataKey the business object data key
     * @param storageName the storage name
     *
     * @return the storage unit key
     */
    public BusinessObjectDataStorageUnitKey createBusinessObjectDataStorageUnitKey(BusinessObjectDataKey businessObjectDataKey, String storageName)
    {
        return new BusinessObjectDataStorageUnitKey(businessObjectDataKey.getNamespace(), businessObjectDataKey.getBusinessObjectDefinitionName(),
            businessObjectDataKey.getBusinessObjectFormatUsage(), businessObjectDataKey.getBusinessObjectFormatFileType(),
            businessObjectDataKey.getBusinessObjectFormatVersion(), businessObjectDataKey.getPartitionValue(), businessObjectDataKey.getSubPartitionValues(),
            businessObjectDataKey.getBusinessObjectDataVersion(), storageName);
    }

    /**
     * Creates a storage unit key from a business object data key and a storage name.
     *
     * @param businessObjectDataKey the business object data key
     * @param storageName the storage name
     *
     * @return the storage unit key
     */
    public BusinessObjectDataStorageUnitKey createStorageUnitKey(BusinessObjectDataKey businessObjectDataKey, String storageName)
    {
        return new BusinessObjectDataStorageUnitKey(businessObjectDataKey.getNamespace(), businessObjectDataKey.getBusinessObjectDefinitionName(),
            businessObjectDataKey.getBusinessObjectFormatUsage(), businessObjectDataKey.getBusinessObjectFormatFileType(),
            businessObjectDataKey.getBusinessObjectFormatVersion(), businessObjectDataKey.getPartitionValue(), businessObjectDataKey.getSubPartitionValues(),
            businessObjectDataKey.getBusinessObjectDataVersion(), storageName);
    }

    /**
     * Creates a storage unit key from a storage unit entity.
     *
     * @param storageUnitEntity the storage unit entity
     *
     * @return the storage unit key
     */
    public BusinessObjectDataStorageUnitKey createStorageUnitKeyFromEntity(StorageUnitEntity storageUnitEntity)
    {
        // Get the business object data entity.
        BusinessObjectDataEntity businessObjectDataEntity = storageUnitEntity.getBusinessObjectData();

        // Create and initialize the storage unit key.
        BusinessObjectDataStorageUnitKey storageUnitKey = new BusinessObjectDataStorageUnitKey();
        storageUnitKey.setNamespace(businessObjectDataEntity.getBusinessObjectFormat().getBusinessObjectDefinition().getNamespace().getCode());
        storageUnitKey.setBusinessObjectDefinitionName(businessObjectDataEntity.getBusinessObjectFormat().getBusinessObjectDefinition().getName());
        storageUnitKey.setBusinessObjectFormatUsage(businessObjectDataEntity.getBusinessObjectFormat().getUsage());
        storageUnitKey.setBusinessObjectFormatFileType(businessObjectDataEntity.getBusinessObjectFormat().getFileType().getCode());
        storageUnitKey.setBusinessObjectFormatVersion(businessObjectDataEntity.getBusinessObjectFormat().getBusinessObjectFormatVersion());
        storageUnitKey.setPartitionValue(businessObjectDataEntity.getPartitionValue());
        storageUnitKey.setSubPartitionValues(businessObjectDataHelper.getSubPartitionValues(businessObjectDataEntity));
        storageUnitKey.setBusinessObjectDataVersion(businessObjectDataEntity.getVersion());
        storageUnitKey.setStorageName(storageUnitEntity.getStorage().getName());

        return storageUnitKey;
    }

    /**
     * Creates a list of storage units from the list of storage unit entities.
     *
     * @param storageUnitEntities the storage unit entities
     * @param includeStorageUnitStatusHistory specifies to include storage unit status history for each storage unit in the response
     * @param excludeBusinessObjectDataStorageFiles specifies to exclude storage files in the response
     *
     * @return the list of storage units
     */
    List<StorageUnit> createStorageUnitsFromEntities(Collection<StorageUnitEntity> storageUnitEntities, Boolean includeStorageUnitStatusHistory,
        Boolean excludeBusinessObjectDataStorageFiles)
    {
        List<StorageUnit> storageUnits = new ArrayList<>();

        for (StorageUnitEntity storageUnitEntity : storageUnitEntities)
        {
            StorageUnit storageUnit = new StorageUnit();
            storageUnits.add(storageUnit);

            Storage storage = new Storage();
            storageUnit.setStorage(storage);

            StorageEntity storageEntity = storageUnitEntity.getStorage();
            storage.setName(storageEntity.getName());
            storage.setStoragePlatformName(storageEntity.getStoragePlatform().getName());

            // Add the storage attributes.
            if (!CollectionUtils.isEmpty(storageEntity.getAttributes()))
            {
                List<Attribute> storageAttributes = new ArrayList<>();
                storage.setAttributes(storageAttributes);
                for (StorageAttributeEntity storageAttributeEntity : storageEntity.getAttributes())
                {
                    Attribute attribute = new Attribute();
                    storageAttributes.add(attribute);
                    attribute.setName(storageAttributeEntity.getName());
                    attribute.setValue(storageAttributeEntity.getValue());
                }
            }

            // Add the storage directory.
            if (storageUnitEntity.getDirectoryPath() != null)
            {
                StorageDirectory storageDirectory = new StorageDirectory();
                storageUnit.setStorageDirectory(storageDirectory);
                storageDirectory.setDirectoryPath(storageUnitEntity.getDirectoryPath());
            }

            // Add the storage files, is they are not excluded and present in the database.
            if (BooleanUtils.isNotTrue(excludeBusinessObjectDataStorageFiles) && CollectionUtils.isNotEmpty(storageUnitEntity.getStorageFiles()))
            {
                List<StorageFile> storageFiles = new ArrayList<>();
                storageUnit.setStorageFiles(storageFiles);

                for (StorageFileEntity storageFileEntity : storageUnitEntity.getStorageFiles())
                {
                    storageFiles.add(storageFileHelper.createStorageFileFromEntity(storageFileEntity, storageUnitEntity.getDirectoryPath()));
                }
            }

            // Set the storage unit status.
            storageUnit.setStorageUnitStatus(storageUnitEntity.getStatus().getCode());

            // If specified, add storage unit status history.
            if (BooleanUtils.isTrue(includeStorageUnitStatusHistory))
            {
                List<StorageUnitStatusChangeEvent> storageUnitStatusChangeEvents = new ArrayList<>();
                storageUnit.setStorageUnitStatusHistory(storageUnitStatusChangeEvents);
                for (StorageUnitStatusHistoryEntity storageUnitStatusHistoryEntity : storageUnitEntity.getHistoricalStatuses())
                {
                    storageUnitStatusChangeEvents.add(new StorageUnitStatusChangeEvent(storageUnitStatusHistoryEntity.getStatus().getCode(),
                        HerdDateUtils.getXMLGregorianCalendarValue(storageUnitStatusHistoryEntity.getCreatedOn()),
                        storageUnitStatusHistoryEntity.getCreatedBy()));
                }
            }

            // Set the number of failed attempts to execute a storage policy transition.
            storageUnit.setStoragePolicyTransitionFailedAttempts(storageUnitEntity.getStoragePolicyTransitionFailedAttempts());

            if (storageUnitEntity.getRestoreExpirationOn() != null)
            {
                storageUnit.setRestoreExpirationOn(HerdDateUtils.getXMLGregorianCalendarValue(storageUnitEntity.getRestoreExpirationOn()));
            }
        }

        return storageUnits;
    }

    /**
     * Excludes storage unit availability DTOs from the list with business object data status matching to the specified value.
     *
     * @param storageUnitAvailabilityDtos the list of storage unit availability DTOs
     * @param excludedBusinessObjectDataStatus the business object data status to be excluded
     *
     * @return the updated list of storage unit availability DTOs
     */
    public List<StorageUnitAvailabilityDto> excludeBusinessObjectDataStatus(List<StorageUnitAvailabilityDto> storageUnitAvailabilityDtos,
        String excludedBusinessObjectDataStatus)
    {
        List<StorageUnitAvailabilityDto> result = new ArrayList<>();

        for (StorageUnitAvailabilityDto storageUnitAvailabilityDto : storageUnitAvailabilityDtos)
        {
            if (!storageUnitAvailabilityDto.getBusinessObjectDataStatus().equalsIgnoreCase(excludedBusinessObjectDataStatus))
            {
                result.add(storageUnitAvailabilityDto);
            }
        }

        return result;
    }

    /**
     * Excludes storage unit availability DTOs from the list with primary and sub-partition values matching one of the excluded partitions.
     *
     * @param storageUnitAvailabilityDtos the list of storage unit availability DTOs
     * @param excludedPartitions list of excluded partitions, where each partition consists of primary and optional sub-partition values
     *
     * @return the updated list of storage unit availability DTOs
     */
    public List<StorageUnitAvailabilityDto> excludePartitions(List<StorageUnitAvailabilityDto> storageUnitAvailabilityDtos,
        List<List<String>> excludedPartitions)
    {
        List<StorageUnitAvailabilityDto> result = new ArrayList<>();

        for (StorageUnitAvailabilityDto storageUnitAvailabilityDto : storageUnitAvailabilityDtos)
        {
            if (!excludedPartitions.contains(businessObjectDataHelper.getPrimaryAndSubPartitionValues(storageUnitAvailabilityDto.getBusinessObjectDataKey())))
            {
                result.add(storageUnitAvailabilityDto);
            }
        }

        return result;
    }

    /**
     * Gets a business object data key from a storage unit key.
     *
     * @param businessObjectDataStorageUnitKey the storage unit key
     *
     * @return the business object data key
     */
    public BusinessObjectDataKey getBusinessObjectDataKey(BusinessObjectDataStorageUnitKey businessObjectDataStorageUnitKey)
    {
        return new BusinessObjectDataKey(businessObjectDataStorageUnitKey.getNamespace(), businessObjectDataStorageUnitKey.getBusinessObjectDefinitionName(),
            businessObjectDataStorageUnitKey.getBusinessObjectFormatUsage(), businessObjectDataStorageUnitKey.getBusinessObjectFormatFileType(),
            businessObjectDataStorageUnitKey.getBusinessObjectFormatVersion(), businessObjectDataStorageUnitKey.getPartitionValue(),
            businessObjectDataStorageUnitKey.getSubPartitionValues(), businessObjectDataStorageUnitKey.getBusinessObjectDataVersion());
    }

    /**
     * Creates a list of storage unit ids from a list of storage unit availability DTOs.
     *
     * @param storageUnitAvailabilityDtos the list of storage unit availability DTOs
     *
     * @return the list of storage unit ids
     */
    public List<Long> getStorageUnitIds(List<StorageUnitAvailabilityDto> storageUnitAvailabilityDtos)
    {
        List<Long> storageUnitIds = new ArrayList<>(storageUnitAvailabilityDtos.size());

        for (StorageUnitAvailabilityDto storageUnitAvailabilityDto : storageUnitAvailabilityDtos)
        {
            storageUnitIds.add(storageUnitAvailabilityDto.getStorageUnitId());
        }

        return storageUnitIds;
    }

    /**
     * Validates the business object data storage unit key. This method also trims the request parameters.
     *
     * @param key the business object data storage unit create request
     */
    public void validateBusinessObjectDataStorageUnitKey(BusinessObjectDataStorageUnitKey key)
    {
        Assert.notNull(key, "A business object data storage unit key must be specified.");
        key.setNamespace(alternateKeyHelper.validateStringParameter("namespace", key.getNamespace()));
        key.setBusinessObjectDefinitionName(
            alternateKeyHelper.validateStringParameter("business object definition name", key.getBusinessObjectDefinitionName()));
        key.setBusinessObjectFormatUsage(alternateKeyHelper.validateStringParameter("business object format usage", key.getBusinessObjectFormatUsage()));
        key.setBusinessObjectFormatFileType(
            alternateKeyHelper.validateStringParameter("business object format file type", key.getBusinessObjectFormatFileType()));
        Assert.notNull(key.getBusinessObjectFormatVersion(), "A business object format version must be specified.");
        key.setPartitionValue(alternateKeyHelper.validateStringParameter("partition value", key.getPartitionValue()));
        businessObjectDataHelper.validateSubPartitionValues(key.getSubPartitionValues());
        Assert.notNull(key.getBusinessObjectDataVersion(), "A business object data version must be specified.");
        key.setStorageName(alternateKeyHelper.validateStringParameter("storage name", key.getStorageName()));
    }
}

redpajama_set_name: RedPajamaGithub


PLYMOUTH, Wis. (AP) - Twelve-year-old Andrew Gray loves trains - so much so that he and his family recently finished building a 250-foot railroad at their campsite at Plymouth Rock Camping Resort.
Julie Gray and her husband Bill, of McHenry, Illinois, designed the project as a type of therapy for their son, who was diagnosed with Asperger's when he was 8 years old.
According to the Austism Society of America, Asperger's is a mild form of autism that affects a child's ability to communicate and socialize.
"Autism is on a scale that goes from low functioning to high functioning and Asperger's has typically been those children who speak early and have characteristics of austism, but can function fairly normally," said Austism Source Specialist Anne Nebeker.
Nebeker said children with Asperger's do not experience the speech delays associated with austism. While they have trouble with social interaction, they tend to do well academically and often become obsessive about a particular skill or interest.
For Andrew, that interest is trains, Sheboygan Press Media reported (https://shebpr.es/1vSrF2Z).
Andrew's love of trains, like the interests of other children with Asperger's, serves as a sort of security blanket for him.
Installation for the railroad began in June with Andrew working intensely to get it up and running. He came up with the idea to have an open house for other campers to come enjoy lunch and see the completed project.
In addition to wanting to teach others about trains, Andrew's passion has evolved into his own educational pursuit.
"We're members of a model railroad club in Illinois and many of the guys are in their 60s and 70s and used to work on the railroad … and he'll go toe-to-toe with them on knowledge and often wins," said Bill.
Andrew's knowledge of trains has translated to other subjects as well. By becoming familiar with train routes all over the country, he has been able to learn all of the state capitals and knows a lot about geography in areas where railroads are located.
While the Grays live in Illinois during the year, Julie said they have fallen in love with the area and hope to move within the next five to ten years.
Despite the difficulty of dealing with Asperger's, the Grays have taught their son to focus on the positive and say they have learned a lot from him.
"Hopefully we're giving him all the right tools to do that," said Julie.


text:
from abc import ABC, abstractmethod
from enum import Enum
from typing import Any, Awaitable, Callable, Generic, Iterable, TypeVar, get_origin

from expression.core import SupportsMatch

from .types import AsyncObserver

_TSource = TypeVar("_TSource")

class MsgKind(Enum):
    ON_NEXT = 1
    ON_ERROR = 2
    ON_COMPLETED = 3

class Notification(Generic[_TSource], ABC):
    """Represents a message to a mailbox processor."""

    def __init__(self, kind: MsgKind):
        self.kind = kind  # Message kind

    @abstractmethod
    async def accept(
        self,
        asend: Callable[[_TSource], Awaitable[None]],
        athrow: Callable[[Exception], Awaitable[None]],
        aclose: Callable[[], Awaitable[None]],
    ) -> None:
        raise NotImplementedError

    @abstractmethod
    async def accept_observer(self, obv: AsyncObserver[_TSource]) -> None:
        raise NotImplementedError

    def __repr__(self) -> str:
        return str(self)

class OnNext(Notification[_TSource], SupportsMatch[_TSource]):
    """Represents an OnNext notification to an observer."""

    def __init__(self, value: _TSource) -> None:
        """Constructs a notification of a new value."""
        super().__init__(MsgKind.ON_NEXT)
        self.value = value  # Message value

    async def accept(
        self,
        asend: Callable[[_TSource], Awaitable[None]],
        athrow: Callable[[Exception], Awaitable[None]],
        aclose: Callable[[], Awaitable[None]],
    ) -> None:
        await asend(self.value)

    async def accept_observer(self, obv: AsyncObserver[_TSource]) -> None:
        await obv.asend(self.value)

    def __match__(self, pattern: Any) -> Iterable[_TSource]:
        origin: Any = get_origin(pattern)
        try:
            if isinstance(self, origin or pattern):
                return [self.value]
        except TypeError:
            pass
        return []

    def __eq__(self, other: Any) -> bool:
        if isinstance(other, OnNext):
            return self.value == other.value  # type: ignore
        return False

    def __str__(self) -> str:
        return f"OnNext({self.value})"

class OnError(Notification[_TSource], SupportsMatch[Exception]):
    """Represents an OnError notification to an observer."""

    def __init__(self, exception: Exception) -> None:
        """Constructs a notification of an exception."""
        super().__init__(MsgKind.ON_ERROR)
        self.exception = exception

    async def accept(
        self,
        asend: Callable[[_TSource], Awaitable[None]],
        athrow: Callable[[Exception], Awaitable[None]],
        aclose: Callable[[], Awaitable[None]],
    ) -> None:
        await athrow(self.exception)

    async def accept_observer(self, obv: AsyncObserver[_TSource]) -> None:
        await obv.athrow(self.exception)

    def __match__(self, pattern: Any) -> Iterable[Exception]:
        origin: Any = get_origin(pattern)
        try:
            if isinstance(self, origin or pattern):
                return [self.exception]
        except TypeError:
            pass
        return []

    def __eq__(self, other: Any) -> bool:
        if isinstance(other, OnError):
            return self.exception == other.exception
        return False

    def __str__(self) -> str:
        return f"OnError({self.exception})"

class _OnCompleted(Notification[_TSource], SupportsMatch[bool]):
    """Represents an OnCompleted notification to an observer.

    Note: Do not use. Use the singleton `OnCompleted` instance instead.
    """

    def __init__(self) -> None:
        """Constructs a notification of the end of a sequence."""

        super().__init__(MsgKind.ON_COMPLETED)

    async def accept(
        self,
        asend: Callable[[_TSource], Awaitable[None]],
        athrow: Callable[[Exception], Awaitable[None]],
        aclose: Callable[[], Awaitable[None]],
    ) -> None:
        await aclose()

    async def accept_observer(self, obv: AsyncObserver[_TSource]) -> None:
        await obv.aclose()

    def __match__(self, pattern: Any) -> Iterable[bool]:
        if self is pattern:
            return [True]

        origin: Any = get_origin(pattern)
        try:
            if isinstance(self, origin or pattern):
                return [True]
        except TypeError:
            pass
        return []

    def __eq__(self, other: Any) -> bool:
        if isinstance(other, _OnCompleted):
            return True
        return False

    def __str__(self) -> str:
        return "OnCompleted"

OnCompleted: _OnCompleted[Any] = _OnCompleted()
"""OnCompleted singleton instance."""


I've wanted to do an all-music Friday video post for a while now, but I was looking for the perfect topic. A friend of mine mentioned that she plays a ceramic doumbek in her folk band, which gave me the idea for this post. I've collected videos of fun ceramic drum solos, plus a studio video of people throwing and sculpting their own ceramic drums.
Speaking of melodic: here are a few videos of Pejman Hadadi and some collaborators playing Udu drums. The drum comes from Nigeria and it takes its name from "vessel." You can guess its history by looking at it. It's easy to imagine someone playing music on a plain ol' water jug and adapting that idea just a little to give us the instrument we know today. I really like the minimalism of these udu drums.
I don't have much of a commentary for this video; I just love the atmosphere. The campfire really ties everything together.
Maybe you're more into the construction of drums than you are the playing, but Janis Wilson Hughes of Evolution Stoneware has a few talents up her sleeve. In this video she walks you through the creation of a ceramic drum and then goes on to play it once it's out of the kiln.
Those are all the videos I have for this week. Check back here in seven days for a few new ceramic videos to help ease you into the weekend!
2 thoughts on "Video | The Music and Rhythm of Clay Drums (plus How to Make Your Own)"
Hi I'm an Irish woman, drummer and ceramicist and that article and videos are on ceramics drums was class. Well done.


This Pecan Coffee Cake is a low carb breakfast cake with an almond butter cinnamon swirl and sweet buttery vanilla drizzle. It makes a great brunch with a hot cup of coffee, but also can be served as an after dinner dessert!
Our favorite time to have this Pecan Coffee Cake is for a weekend brunch with a steaming hot cup of coffee. I love making it at the beginning of the weekend so we can have breakfast in the morning, and dessert in the evening, both weekend days!
Keto Pecan Coffee Cake for the Weekend win!
Weekends are always relaxed in our home. While I have always been an early riser, Grumpy is not! As a result, I like to have something like this Pecan Coffee Cake for breakfast on the weekend. That way, we can both enjoy a piece whenever we feel ready to eat!
I also try to make smaller batch recipes, however, for this particular recipe, I decided to go full sized. With only two of us in the house, usually a full 12 serving size recipe is too much. However, in this case, it didn't turn out that way. Grumpy loved this so much, it was breakfast and dessert! So, this Pecan Coffee Cake lasted a little more than two days for us. Win for me since I only had to bake once for the weekend. And, win for Grumpy since he was satisfied all weekend long!
A low carb breakfast cake with pecans, cinnamon swirl and a vanilla drizzle.
Measuring your ingredients before any mixing will make your recipe making go smoother!
Using a paper towel and softened butter, smear the butter over the bottom and up the sides of your baking pan.
Add your almond flour, coconut flour, Monkfruit brown sweetener, salt, and baking powder to mixing bowl and whisk to combine.
In a 4 cup glass measuring cup, whisk together eggs, water, and heavy cream. Add melted butter and egg mixture to flour mixture.
Remove 1 cup batter and mix in almond butter.
Once your batter is combined, remove 1 cup of batter and place in small mixing bowl. Add to it 28 oz almond butter. Stir until combined.
Place batter in baking dish and spread to cover bottom of pan.
Spoon approximately 1 tbsp of batter evenly over cake layer.
Using a butter knife, place tip in baking dish just in front of a dollop and drag through batter to swirl two types of batter together.
Once the batter is swirled into the coffee cake base, it is ready to bake.
Mix together the swerve powdered sugar, butter, vanilla, and heavy cream until icing is smooth and creamy.
Drizzle with icing and top with chopped pecans.
Work quickly when adding batter to your pan. Because there is baking powder in your batter, your coffee cake will resemble a thick pancake batter. For this reason, don't be alarmed if it is not smooth like a regular cake batter. Your cake will still swirl and bake up nice and tall!
When swirling your almond butter batter through the cake, you will want to put the knife to the very bottom of your pan. Move in an S shaped motion through each dollop.
If your icing is too thick for you, it is ok to add a little more heavy cream. Just add it about 1/2 tablespoon at a time.
To easily drizzle your icing on top of your cake, use a sandwich baggie. I place the baggie in a cup, wrap the opening around the lip of the cup to keep it open, and put the icing in the baggie. I then will snip the corning of the baggie and squeeze over top of the cake in a zigzag pattern.
Have you tried Legendary Foods nut butters?
The following are affiliate links. We are a participant in the Legendary Foods Affiliate Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Legendary.com and affiliated sites.
I fell in love with Legendary Foods products when I received a sample in a subscription box. I have two favorites. Pecan Pie and Peanut Butter Cup, but the other flavors are awesome too! I love their Blueberry flavor and use that in my Blueberry Waffle Recipe. I hope you will take advantage of their offer and try some out!
What's new? Get 10% off of your order from Legendary Foods with the code GrumpyHB! Just click the box below to get your discount! Thanks so much for being a part of Grumpy's Honeybunch!
A vanilla flavored cake with a pecan pie flavored almond butter batter swirl. Topped with a vanilla icing and chopped roasted pecans.
In a large mixing bowl whisk together almond flour, coconut flour, Monkfruit sweetener, baking powder, and salt.
In a large 4 cup glass measuring cup, whisk together eggs, vanilla, water, and heavy cream.
Make a well in center of dry ingredients. Add egg mixture and butter to dry ingredients and stir to combine.
Remove 1 cup of batter from bowl and place in a smaller mixing bowl. Add 1/2 teaspoon cinnamon and 28 ounces pecan pie almond butter to batter. Stir to combine.
Add plain batter to baking dish and spread to cover bottom of pan.
Place dollops of almond butter batter on top and swirl batter with a knife.
Bake in 350 degree oven for 30-40 minutes or until toothpick comes out with just a few moist crumbs.
While cake is cooling, add Swerve 1/2 cup confectioners sweetener, 2 tbsp melted butter, 2 tbsp heavy cream, and 1/2 tsp vanilla extract to mixing bowl. Stir until well combined. Add more heavy cream as needed to obtain desired consistency. Drizzle over baked cake.
Store any leftover cake on the counter for up to 3 days or in the refrigerator up to 1 week.
You can easily substitute regular almond butter if you don't have the Pecan Pie Almond Butter. If you wish, just add a tablespoon of chopped pecans, a teaspoon of sweetener, and about 1/4 tsp cinnamon to your regular almond butter.


text:
Castell Dinas Bran, Wales
Graphite and black chalk with brown wash on medium, cream, moderately textured laid paper mounted on thick, cream, moderately textured laid paper
11 7/16 x 17 7/8 in.
B1977.14.4362
Benjamin Booth; thence by descent to Mrs Richard Ford (1951)
Unsigned; inscribed verso
[1] Graphite, centre: 'Paul Sandby mounted this drawing of Wils [...] for me December 1789 B.B.' [2] Brown ink centre: 'Wilson' [3] Brown ink, lower centre: 'Marianne Ford'
[1] Graphite, centre: 'Paul Sandby mounted this drawing of Wils [...] for me December 1789 B.B.'
[2] Brown ink centre: 'Wilson'
[3] Brown ink, lower centre: 'Marianne Ford'
D374A Dinas Bran and Llangollen, National Museum Wales, Cardiff
D374A Dinas Bran and Llangollen, National Museum Wales, Cardiff
P165 Dinas Bran from Llangollen - I, Yale Center for British Art, Paul Mellon Collection, New Haven P165A Dinas Bran from Llangollen - I (Lake Scene with Mountains), Art Gallery of South Australia, Adelaide P165B Ascribed to Wilson, Castell Dinas Bran, Llangollen (Dinas Bran from Llangollen - I), Ferens Art Gallery: Hull Museums P167 Wilson and later intervention, Dinas Bran Castle, near Llangollen - II, National Museum Wales, Cardiff P167A Wilson and later intervention, Castell Dinas Bran from Llangollen, The National Library of Wales, Aberystwyth
P165 Dinas Bran from Llangollen - I, Yale Center for British Art, Paul Mellon Collection, New Haven
P165A Dinas Bran from Llangollen - I (Lake Scene with Mountains), Art Gallery of South Australia, Adelaide
P165B Ascribed to Wilson, Castell Dinas Bran, Llangollen (Dinas Bran from Llangollen - I), Ferens Art Gallery: Hull Museums
P167 Wilson and later intervention, Dinas Bran Castle, near Llangollen - II, National Museum Wales, Cardiff
P167A Wilson and later intervention, Castell Dinas Bran from Llangollen, The National Library of Wales, Aberystwyth
This is the latest in the small series of Britsh drawings by Wilson. Paul Sandby probably added the trees on the right as they are drawn on a separate sheet of paper. The drawing was used for P165 Dinas Bran from Llangollen - I, Yale Center for British Art, Paul Mellon Collection
This is the latest in the small series of Britsh drawings by Wilson. Paul Sandby probably added the trees on the right as they are drawn on a separate sheet of paper. The drawing was used for P165 Dinas Bran from Llangollen - I, Yale Center for British Art, Paul Mellon Collection
Object ID: 14186
Pennant 1784, vol. 1, pp. 297-98; Bury 1947, pl. 45; Ford 1951, pp. 38, 63, no. 77
Dimensions in mount: 330 x 498 mm (13 x 19 5/8 in.)
Dinas Bran and Llangollen, National Museum Wales, Cardiff
Richard Wilson (1713/14-1782) Dinas Bran and Llangollen, National Museum Wales, Cardiff
Richard Wilson (1713/14-1782), Dinas Bran from Llangollen - I, Yale Center for British Art, Paul Mellon Collection, New Haven
Richard Wilson (1713/14-1782), Dinas Bran from Llangollen - I (Lake Scene with Mountains), Art Gallery of South Australia, Adelaide
Ascribed to Wilson, Castell Dinas Bran, Llangollen (Dinas Bran from Llangollen - I), Ferens Art Gallery: Hull Museums
Richard Wilson (1713/14-1782) and later intervention, Dinas Bran Castle, near Llangollen - II, National Museum Wales, Cardiff
Richard Wilson (1713/14-1782) and later intervention, Castell Dinas Bran from Llangollen, The National Library of Wales, Aberystwyth
Brinsley Ford, The Drawings of Richard Wilson

redpajama_set_name: RedPajamaCommonCrawl


Better to be an every day light drinker than a weekend warrior.
Are you a "weekend warrior," abstaining from booze throughout the week so you can go hard on the weekend? You might think you've gamed the system. But there's some bad news: drinking excessively on occasion is actually worse for your overall health and wellness than drinking moderately every day, according to various experts.
Studies show binge drinking, defined as four drinks for women and five for men within a two-hour period, not only boosts your risk of liver disease, it can also damage your heart, kidney and brain. That's because people tend to underestimate the "standard" drink size, which means you might be reaching these limits faster than you realize.
Binge drinking can also increase risk of accidents, memory problems, strokes, insomnia, and alcoholism. Then there's the common side effect of "liquid courage," which can often cross the line into "liquid stupidity." Alcohol increases impulsivity, leading to potentially regrettable decisions like eating a whole pizza, drunk dialing an ex, or worse, showing up outside your ex's house at 3 am.
Hangovers are another inevitable side effect of binge drinking. Studies show eating or drinking water during a night out only slightly improve common morning-after symptoms like nausea and headaches. In the worst-case scenario, binging on booze can lead to alcohol poisoning, coma, or death.
Moderation may sound boring. But experts agree it's much better on all accounts to drink moderately—one drink a day for women, two drinks for men—throughout the week than to save up all your booze points for a weekend bender.
Moderate drinking may even have some health benefits, such as reducing the risk for heart attack, stroke, and diabetes. However, most of these benefits likely won't kick in until middle age or older.
And even moderate alcohol consumption isn't good for everyone. For example, women with a personal or family history of breast cancer may be at a greater risk for the disease if they have even one drink a day.
How Does Booze Affect Your Immunity to Colds?


Our skilled student tutors provide one-on-one and group tutoring to help you excel in math, the sciences, English, and many other classes.
Our instructors will help you learn the study strategies used by our most successful college students and how to make use of our campus technology to excel in classes.
We help you create long-range and quarterly class schedules to complete your degree and prepare you for transfer. University visitations are also available.
You can find the best way to fit your strengths, weaknesses and particular living situation into an individualized plan for success.
Our counselors will take the time to listen to your concerns and help you find effective solutions. They are familiar with the new demands and unfamiliar challenges that college often brings.
Our counselors help you understand the financial aid and scholarship process and serve as advocates within the system.


text:
A line formed shortly after 11 a.m. at the Westchester County Center Wednesday.
Scarsdale Inquirer/Jim MacLean
The interior of the county center went from entertainment center to emergency hospital to vaccination center.
Basil Seggos held a press conference at the county center Wednesday morning.
A DEC officer helps an elderly patient up the wheelchair ramp.
DEC officers supported patients outside the county center.
Patiently waiting for the vaccine at the county center.
County center transforms into state-run vaccination hub
From entertainment venue to hospital to vaccine center in less than a year
By TODD SLISS
Todd Sliss
New York State Department of Environmental Conservation Commissioner Basil Seggos spent time in White Plains overseeing the conversion of the Westchester County Center from an entertainment venue into an emergency COVID-19 hospital last spring. When he returned recently, it was to convert the space into a state-run mass vaccination site.
The county center officially reopened its doors to the public at 8 a.m. Wednesday, Jan. 13, to start administering free first round doses of the Pfizer vaccine to New York State residents who had an appointment and who fall into categories 1a and 1b.
The county center was never used as an ICU despite local hospitals being overwhelmed in the initial epicenter of the pandemic in March and April. Seggos said the changes were "minimal" and the infrastructure remains as a "fail-safe" should the county center need to be used to treat COVID-19 patients, but it now being a testing site is the "light at the end of the tunnel."
"To me I feel really optimistic being here today," Seggos said. "We're bringing people through here to ultimately help them get out of this mess that we're in, giving them the vaccination here as opposed to having to treat people here. You can't compare the two."
While other parts of the country are seeing long Election Day-type lines already, it was relatively quiet at the county center Wednesday morning with police directing people where to go and camouflaged Environmental Conservation officers under the command of Lt. John Murphy standing guard and also assisting residents. Seggos said more than 200 had been vaccinated by Westchester Medical Center staff "without incident" before 10:30 a.m., and just after 11 a.m. a line started to build on the county center steps leading up to the venue. According to a press release from Westchester County Executive George Latimer, 1,030 vaccines were administered on opening day.
Korean War veteran Armando Scogna of Tarrytown waited for his son to pick him up outside the county center after he received the vaccine. The 86-year-old was pleased with the process of getting the shot.
"It was OK, pretty orderly," he said. "There were enough people in there to tell you what to do, where to go. It wasn't bad at all … Everything goes pretty smoothly."
Scogna said he felt "fine" and looked forward to returning 21 days later for the second dose.
Nyack resident Julia Healy, a 41-year-old teacher in Mamaroneck, was "pretty emotional" about receiving the vaccine. "I asked the woman who was administering the vaccine if anyone has cried from too much emotion," Healy said. "She said, 'No,' so I decided I wasn't going to be the first."
She also had a positive experience inside the county center. "Very smooth, very secure, very organized," she said. "I was thinking maybe the people who organized this center should be in charge of protecting the inauguration."
Healy credited the scientific community for creating a sense of hope with the quick turnaround on the vaccine as Moderna's two-dose vaccine is also available and Johnson & Johnson could soon apply for emergency use authorization for its one-dose shot.
"Thankfully we have scientists and they haven't been fully suppressed and hopefully they will have the ability to do their work more freely after next week," she said. "Thankfully the scientists have come through yet again to provide this vaccine for us. Hopefully we can get our society back to normal."
Scogna and Healy are among the lucky ones to get a quick appointment as the list of those eligible now includes 7 million New Yorkers, the online registration system has crashed multiple times and residents haven't always been able to find the information they need in the places they are told to look for it.
According to a press release from Gov. Andrew Cuomo's office, "eligible New Yorkers should be prepared to receive an appointment date as far as 14 weeks or further in the future."
Seggos made a plea to the public for "patience and calm" with the rollout and registration. "Once you have an appointment, the rest is really simple," Seggos said, noting that you show up, get screened, get the shot, get observed for 15-30 minutes and sign up for your second dose before you leave.
Front-line workers were in group 1a beginning Dec. 14, and group 1b, which includes teachers and those 75 years and older, was announced on Friday, Jan. 8, to start signing up the evening of Monday, Jan. 11. On Tuesday, Jan. 12, anyone 65 and over was given the go-ahead.
The issue now, according to Seggos, is that New York State is only getting 300,000 doses of the vaccine each week. At that rate, he said, it will take six months just to vaccinate groups 1a and 1b.
"We need the federal government to step up," he said. "We've needed that since Day 1, since March, and we have not gotten what we needed out of the federal government. We need the expansion of the vaccine effort to track what we are doing in terms of developing capacity. We have been expanding the population of those who are eligible for the vaccine based on federal guidance. We are increasing distribution points. But we're going to need more vaccines."
The state also opened up vaccination centers at the Javits Center in New York City and the New York State Fair Expo Center in Syracuse on Wednesday, with Jones Beach, University at Albany and others to follow, eventually totaling 20 sites. The first month of vaccinations for group 1a was largely done at hospitals directly to their workers and other first responders, and some pharmacies are soon expected to become vaccination sites.
"Governor Cuomo's goal is to be the first state in the nation to be COVID free and these sites are the vehicle in which we will arrive at that destination," Seggos said.
The county center opening came one day after the pandemic's deadliest day, with 4,327 deaths on Tuesday and at a time when new variants of the disease are emerging.
"Patients should continue to wear masks, socially distance, wash their hands after this vaccine" Seggos said, adding, "You're not Superman … you need to continue doing what you need to do to protect yourself and protect others. When you get the second vaccine, the booster in three weeks, that's when we expect the body to be a bit stronger."
Seggos credited New Yorkers for taking precautions, despite rising numbers of cases.
"We've gotten to this point together," Seggos said. "We have a chance to get out of this. Please be patient, please be calm and let's get through this and cross the finish line together."
Seggos has overseen several testing sites, citing New York as having "the most robust" testing program in the country. "I was there at some of these sites helping to operate them and we conducted hundreds of thousands of tests every day and we are continuing to do so at this point," he said. "We are going to do the exact same thing with the vaccination program."
He called everything from March to now "the largest government operation in our lifetimes," calling this the "most important phase."
Eligible New Yorkers in Phases 1a and 1b
· High-risk hospital workers (emergency room workers, ICU staff and pulmonary department staff)
· Residents and staff at nursing homes and other congregate care facilities
· Federally Qualified Health Center employees
· EMS workers
· Coroners, medical examiners and certain funeral workers
· Staff and residents at OPWDD, OMH and OASAS facilities
· Urgent Care providers
· Individuals administering COVID-19 vaccines, including local health department staff
· All outpatient/ambulatory front-line, high-risk health care workers of any age who provide direct in-person patient care
· All staff who are in direct contact with patients (i.e., intake staff)
· All front-line, high-risk public health workers who have direct contact with patients, including those conducting COVID-19 tests, handling COVID-19 specimens and COVID-19 vaccinations
· Staff of nursing homes/skilled nursing facilities who did not receive COVID vaccination through the Pharmacy Partnership for Long-Term Care Program
· Individuals age 65 and older
· First responders and support staff for first responder agencies (fire, police, public safety, other)
· Corrections
· P-12 schools
· Licensed, registered, approved or legally exempt group child care providers
· Public transit
· Individuals living in a homeless shelter where sleeping, bathing or eating accommodations must be shared with individuals and families who are not part of the same household
· Individuals working (paid or unpaid) in a homeless shelter where sleeping, bathing or eating accommodations must be shared by individuals and families who are not part of the same household, in a position where there is potential for interaction with shelter residents
· Public-facing grocery store workers
· In-person college instructors
To determine eligibility and schedule an appointment to receive their first dose, New Yorkers can utilize the state's "Am I Eligible" app or website (https://am-i-eligible.covid19vaccine.health.ny.gov/) or call the New York State vaccination hotline at 1-833-NYS-4VAX (1-833-697-4829). Appointments to receive the second dose at these sites are scheduled in person after receiving the first dose.
Westchester County Center
Follow Todd Sliss


text:
Home » Blog » Partner perspective: BioConnect
Partner perspective: BioConnect
Rob Douglas
The evolving landscape of identity in the modern world
A lot has changed in the past 15 years in terms of technology. At BioConnect, we live in the world of identity, security and biometrics... an industry where growth, adaptability and change are paramount in order to fit into the demands of our technological world today.
In its initial growth phase, the world of security and identity evolved significantly to combat the ever-changing world of fraud, security and terrorism. Airports and schools are investing more heavily in video analytics and access control to secure their facilities and the financial industry is focusing heavily on preventing fraudsters from posing as real customers online with technologies like revolving tokens and location-based logic; Yet, despite all of these significant investments to infrastructure and software, many still predominantly rely on key fobs, cards, passwords and pins to verify people. The issue? These technologies can be can be easily shared, lost or stolen making it one of the weakest links in security... Is there a better way of identifying people?
Every person on this planet has biological characteristics that make us truly unique - they're called biometrics and consist of features such as fingerprints, eyes, face, voice, the way you walk and the way you talk. It's why at BioConnect we call your biometrics your Rightful Identity.
After many technological advancements in the last 15 years, the biometrics industry is now comprised of fast, accurate, dynamic and more accessible technologies; As such, people have come to realize that this technology can be adopted across a wide variety of uses cases - not just the traditional high-security government applications. Each person experiences multiple identity verification events throughout their day, every day and without identity assurance, this poses implications on security, fraud, convenience, user experience and insight. For mass adoption to occur, the biometrics industry has had to adapt to the demands of the modern day enterprise by making the technology frictionless.
Think about this from the perspective of higher education. A student lives a very dynamic and mobile life. Every single day, they are constantly running from their dorm, to class, to the dining hall, to the library and back again. Their student ID card is the key to it all. It gives them access to buildings, holds funds for their meals and validates their identity and participation in student life. But how many times have you heard of a student forgetting their card? Losing it? Giving it to a friend to pay for a meal or to get into their dorm...? This happens because the card is not actually the person -- it's not unique and it's disposable. It is inconvenient for the student to constantly have to have their plastic, suspect identity with them at all times, and it also presents many threats to security and insight intelligence within the educational enterprise.
We recognize that biometric technology requires a balance between privacy and convenience - people have shown a lot of interest in using their rightful identity to get about their everyday lives with the advent of consumer technology like Apple's Touch ID, but at the same time, they don't want to sacrifice their privacy for convenience. Modern biometric technology accounts for this with algorithms. In the enterprise world, we are not interested in storing an actual image of your identity in a database - This being the common reason why users are afraid to adopt the technology. Rather, algorithms are built to be able to read your biometrics and then translate it into an encrypted set of numbers before being entered into a database (more on that here).
Enterprise-ready biometrics also need to adapt to fit into the existing structure of an enterprise. One type of biometric will not fit all use cases (can't have only fingerprint or only iris etc.) and the deployment needs to be frictionless. That's why we've developed a platform approach to biometrics and partnered with leaders like Genetec -- to integrate biometrics (regardless of the "biometric type") into an existing infrastructure, such as Genetec™ Security Center. This allows for one central system across locations and lets you manage rightful identity, all while experiencing an increase in security and decrease in operational friction. To learn more about adding biometrics to your existing Security Center platform, please visit us at www.bioconnect.com/Genetec.
A closer look at authorization
How do we balance security and privacy? Learn more about authorization.
Security vulnerabilities for Sony IP cameras
Top 3 security trends for 2020
See what we think will be happening in physical security in 2020.
10 physical security trends from the past decade
Curious to know what security trends shaped the past 10 years? Here are our thoughts.
How to maintain a strong cybersecurity strategy
Looking for tools to help you implement and maintain a strong cybersecurity strategy? Check out our blog post.
Q&A with Melissa Tebbenkamp and Travis Hux from Raytown Quality Schools
Find out how this K-12 school keeps over 9000 students safe.
IHS Markit recognizes the work being done at Genetec
According to IHS Markit, Genetec is the only security and public safety solutions developer to hold top-10 global rankings in VMS, ACS, and ALPR software.
How to improve the maintenance operations of your VMS
One of the most challenging tasks is to make sure that your system is up and running and performing as it should. See how we can help.
Securing the future of the food and drink industry with biometrics
Learn about the 6 advantages of implementing biometric technology within the food and beverage sector.
10 things to consider when shopping for a VMS
Whether you want increased business intelligence or improved incident management, choosing the right VMS is crucial. Check out these 10 tips to help you make your decision.
Behind the scenes of the Genetec mobile team
Get to know the team, their founding principles, and more.
A day in the life of a security operator
Find out how operators can work more efficiently and focus on what's important.
My experience as a Genetec intern
Find out what it's like to intern in the Content Marketing Team.
How biometrics help secure schools, colleges, and universities
Learn how modern biometrics devices developed by Invixium and Genetec Security Center software work together to secure campuses.
True Cloud, Cloud-managed, Hybrid Cloud – which one is right for you?
Learn more about the different VSaaS offerings
Genetec wins 3 Secure Campus Awards and a Govies Award! Find out which products won!
How does your system score on security?
Track the security of your system in real-time and get a clear assessment of where you stand with the Security Score.
Get the full picture with the Genetec Mobile app
Learn about our new mobile app that will be released with Security Center 5.8.
See what's new in Security Center 5.8!
Find out what's new with the Genetec unified security platform.
Putting AI to work for the security industry
AI, machine learning, deep learning - what does it all mean for the security industry?
Looking for cost-effective crime center technology?
Learn about the technology that helps police departments stay one step ahead of crime.
10 trends that will shape the security industry in 2019
Global security evolves every year. Here's a look at what we think will be big in 2019.


How it all began. Well, it is quite simple really, I was asked to put together a website for a guest house on the North Norfolk coast and went along to take some original pictures for it, which... included the Happisburgh Lighthouse with the red and white stripes. Once home, I edited the pictures and tried to enchance them, either by putting them in B&W or leaving parts colour, and hey presto, I saturated the whole picture apart from the red of the lighthouse, and it just instantly looked timeless!


text:
NTTC Membership
NTTC Meetings
NTTC Charter
NTTC Priorities
NTTC Brochure
Past Action
Potential TCE and Paint Remover Regulatory Revisions
Potential PCB Regulatory Revisions
Tribal Consultation
Tribal Consultation Tracking
NTTC Consultation Efforts
Tribal Consultation Training
Trichlorethylene
PCBs in Everyday Items
Webinars Home
POPs Treaty and Its Relevance to Tribes
Health Effects from Exposure to PCBs Among Akwesanse Mohawks
Fundamentals of EPA Performance Partnership Grants
EPA is planning to use their regulatory authority under the Toxics Substance Control Act (TSCA) section 6(a) for the first time in over 25 years. These actions will place limits on the use of chemicals in commerce that have known impacts to tribes and the environment. In addition to immediate exposure, one of the chemicals, trichloroethylene (TCE), once spilled, travels through soil and groundwater and in some cases contaminating drinking water and indoor air, affecting entire communities. Voluntary limitations on use by industry have not been effective and tribes are being asked to offer comments during forthcoming consultations.
Your recommendation can influence EPA's regulatory action to adequately protect people against the risks associated with the use of TCE, methylene chloride, and n-methylpyrrolidone (NMP) and may also limit further exposure to these toxic chemicals through tribal resources. Decisions concerning TSCA section 6(a) regulations may affect businesses in Indian Country using these products.
Tribal leaders are invited to a Consultation Briefing on December 12, 2013. Tribes will have the opportunity to provide input during the meeting and/or submit any written comments to EPA within six weeks of after the meeting.
Should you wish to send comments through the mail, please send them to:
Irina Myers
US Environmental Protection Agency
Office of Pollution Prevention and Toxics – MC 7408M
EPA is requesting general comments on tribes' uses of these chemicals, general comments on the rulemakings, and general input on any disproportionate public health or economic impacts that TCE, methylene chloride, or NMP may have on tribal populations. The technical consultation invite letter and background information can be found at http://tcots.epa.gov/oita/TConsultation.nsf/TC?OpenView, titled Proposed Rulemakings under the Toxic Substances Control Act for 1) Methylene Chloride and n-Methylpyrrolidone in Paint Removers and 2) Trichloroethylene in Certain Uses.
Commercial use of TCE in open top vapor degreasing at commercial shops (both precision and non-precision cleaning).
Consumer and commercial use of TCE in spray degreasers.
Consumer use of TCE in clear protective coating sprays.
Commercial use of TCE as a spotting agent in dry cleaning.
What can tribes do?
Decisions concerning TSCA section 6(a) regulations may affect tribal populations' exposure to TCE, methylene chloride, and NMP and businesses in Indian Country using these products. Your comments may influence EPA's regulatory action to adequately protect people against the risks associated with the use of TCE, methylene chloride, and NMP and may limit further exposure to this toxic chemical through tribal resources.
To regulate a substance under section 6, EPA should apply the least burdensome means of adequately protecting against the unreasonable risk. In developing a rule under section 6(a), TSCA section 6(c) directs EPA to publish a statement with respect to:
The effect of the chemical substance being regulated on health and the magnitude of exposure of humans to the substance.
The effects of such substance on the environment and the magnitude of exposure of the environment to the substance.
The benefits of such substance for various uses and the availability of substitutes for such uses.
The reasonably ascertainable economic consequences of the rule, after consideration of the effect on the national economy, small business, technological innovation, the environment, and public health.
The following table summarizes regulatory options available under TSCA section 6(a):
TSCA Section
6(a)(1) Prohibit or limit manufacture A requirement (A) prohibiting the manufacturing, processing, or distribution in commerce of such substance or mixture, or (B) limiting the amount of such substance or mixture which may be manufactured, processed, or distributed in commerce.
6(a)(2) Prohibit or limit for particular use or above a set concentration A requirement (A) prohibiting the manufacture, processing, or distribution in commerce of such substance or mixture for (i) a particular use or (ii) a particular use in a concentration in excess of a level specified by the Administrator in the rule imposing the requirement, or (B) limiting the amount of such substance or mixture which may be manufactured, processed, or distributed in commerce for (i) a particular use or (ii) a particular use in a concentration in excess of a level specified by the Administrator in the rule imposing the requirement.
6(a)(3) Require warnings and instructions A requirement that such substance or mixture or any article containing such substance or mixture be marked with or accompanied by clear and adequate warnings and instructions with respect to its use, distribution in commerce, or disposal or with respect to any combination of such activities. The form and content of such warnings and instructions shall be prescribed by the Administrator.
6(a)(4) Require recordkeeping and testing A requirement that manufacturers and processors of such substance or mixture make and retain records of the processes used to manufacture or process such substance or mixture and monitor or conduct tests which are reasonable and necessary to assure compliance with the requirements of any rule applicable under this subsection.
6(a)(5) Prohibit or regulate manner or method of commercial use A requirement prohibiting or otherwise regulating any manner or method of commercial use of such substance or mixture.
6(a)(6) Prohibit or regulate manner or method of disposal (A) A requirement prohibiting or otherwise regulating any manner or method of disposal of such substance or mixture, or of any article containing such substance or mixture, by its manufacturer or processor or by any other person who uses, or disposes of, it for commercial purposes.
6(a)(7) Direct manufacturers/ processors to give notice of risk and replace or repurchase A requirement directing manufacturers or processors of such substance or mixture (A) to give notice of such unreasonable risk of injury to distributors in commerce of such substance or mixture and, to the extent reasonably ascertainable, to other persons in possession of such substance or mixture or exposed to such substance or mixture, (B) to give public notice of such risk of injury, and (C) to replace or repurchase such substance or mixture as elected by the person to which the requirement is directed.
Significance to Tribes:
Decisions concerning TSCA Section 6(a) regulations may affect tribal populations' exposure to TCE and businesses in Indian Country using these products. In addition to immediate exposure, once spilled, TCE can travel through soil and groundwater and in some cases contaminating drinking water and indoor air, where the affects become more widespread through inhalation and ingestion. Your comments may influence EPA's regulatory action to adequately protect people against the risks associated with the use of TCE and may limit further exposure to this toxic chemical through tribal resources.
Santa Clara Pueblo staff, Shawn Chato and Brian Suazo, collect water samples from the Rio Grande, ensuring their resource continues to be free of TCE.
How has TCE affected tribes?
Tribes, such as the Santa Clara Pueblo, have been affected by TCE. A summary of the North Railroad Avenue Plume site in New Mexico (within the exterior boundaries of the Santa Clara Indian Reservation) can be accessed atwww.epa.gov/earth1r6/6sf/pdffiles/north-railroad-ave-nm.pdf. Additionally, the Agency for Toxic Substances and Disease Registry has prepared a public health assessment for the site, available at www.atsdr.cdc.gov/hac/pha/pha.asp?docid=1204&pg=1#sum.
While speaking with Dino Chavarria, Santa Clara Pueblo Environmental Director, NTTC support staff learned that they recently provided the community an update on the site in their quarterly newsletter in response to the many questions that continue to come into their office. Santa Clara environmental staff collaborate with EPA and the state to monitor the site, ensuring the safety of their members and resources.
Tribal engagement in the Superfund process was critical for including consideration of traditional and cultural use of Pueblo resources. The Rio Grande is a Santa Clara Pueblo resource that was being impacted by the TCE plume of contamination. The Rio has been a source of irrigation, recreation, and a vital part of the Pueblo's culture for a thousand years. "TCE and PCE will break down to Vinyl Chloride, a carcinogen. It was important that the remedy selected to clean this site would prevent it from spreading even further onto Pueblo lands but also break down the TCE to harmless constituents. TCE is such a persistent chemical in the environment. It will not easily dissolve and can even degrade clay layers and further contaminate groundwater. Any tribal community near a facility that has used TCE for degreasing or dry cleaning should be vigilant about contamination that isn't easily detected."
There are currently 852 Superfund sites in which TCE is a contaminant of concern and several of which it is the primary contaminant of concern. A recent report under the Emergency Planning and Community Right-To-Know Act (EPRCA) shows that 525 facilities nationwide released over 8 million pounds of TCE to the air, 400 pounds to surface water, and 12,600 pounds to the land.
Please submit your experiences (successes/challenges) and tribal-specific documents to share on our website using the attached form:
Case Study template
EPA's Notification of Consultation and Coordination on Proposed Rulemakings under the TSCA for 1) Methylene Chloride and NMP in Paint Removers and 2) TCE in Certain Uses:
EPA's Background Information for Proposed Rulemaking under TSCA Section 6(a) for TCE (4pp):
EPA's Background Information for Proposed Rulemaking under TSCA Section 6(a) for NMP and Methylene Chloride (6pp):
NTTC TSCA Section 6(a) Fact Sheet (2pp):
NTTC TCE Fact Sheet (2pp):
EPA Tribal Consultation Opportunities
http://tcots.epa.gov/oita/tconsultation.nsf/TC?OpenView
EPA TCE Final Risk Assessment (June 2014)
www.epa.gov/oppt/existingchemicals/pubs/TCE_OPPTWorkplanChemRA_FINAL_062414.pdf
Expert Public Workshop on Alternatives and Risk Reduction Approaches to TCE
www.regulations.gov/#!documentDetail;D=EPA-HQ-OPPT-2014-0327-0001
US EPA Technical Factsheet on TCE
www.epa.gov/ogwdw/pdfs/factsheets/voc/tech/trichlor.pdf
ATSDR Camp Lejeune Site Information
http://www.atsdr.cdc.gov/sites/lejeune/index.html
What is TCE? 2:06 video
https://www.youtube.com/watch?v=jEdMpf-jHwM
Trichlorethylene (TCE)
Take action now on toxics
View contact information for NTTC
View past action on toxics by NTTC
400 D St., Suite 200
kkeit@zendergroup.org
© 2016 NTTC
Web Development by Alaska Tech Support
Tribal P2
EPA Tribal Toxics
Tribal Hazardous Substances
EPA Assessing & Managing Chemicals under TSCA
Assessments for TSCA Work Plan Chemicals


text:
Blackham is a village in the Wealden district of East Sussex. It lies within the Withyham civil parish. Its nearest town is Royal Tunbridge Wells, which lies approximately  east from the village. The village is situated on the East Sussex-Kent border.

The name Blackham (Black Hamlet) comes from the village being known as the resting place for smugglers returning from the coast with their booty as it was exactly one day's ride from Dover. At the time, it was described as a 'den of iniquity' due to the raucous and often violent behaviour of the smugglers.

Hever Castle (the childhood home of Anne Boleyn), Penshurst Place and Bolebroke Castle, all regularly frequented by Henry VIII are all within 4 miles of Blackham as is the village of Hartfield - the home of Christopher Robin, Winnie-the-Pooh, and the actual "Pooh Bridge" location in Ashdown Forest where people still play poohsticks.

Villages in East Sussex
Withyham

redpajama_set_name: RedPajamaWikipedia


text:
Q: Python script loops after done executing imported script My end goal is that, after the main Python script finished executing, start the imported script and if the user Ctrl-C'd exit.
However, after the main Python script finished executing the imported script, it immediately started again, like in a loop.
I'm pretty sure that all the code and logic of the two programs is unnecessary, but how I import them is not:
Imported script:
def start():
    app.run(debug = True)

Main script:
import script_2.py
.
.
.
script2.start()
exit()  # Doesn't Work

I think it is also worth noting that the imported script is a Flask script, so until the user Ctrl-C'd the program should not be terminated.

A: debug=True will restart your app if you make any changes in script_2.py. See: https://flask.palletsprojects.com/en/1.1.x/quickstart/#debug-mode
Remove it if you don't want this behavior.

A: I'm not sure about the terminology. My way of implementing it is a different way of OOP or import. So If anybody has the right terminology for that please provide it (sorry I'm boon).
Basically we are using subprocess to call script_2.py. 'r' in in windows.
proc = subprocess.Popen(
                [r'path\to\python.exe',
                 r'path\to\script_2.py', var_1, var_2)

You catch var_1 with sys.argv[1], and var_2 with sys.argv[2] in script_2.py.
Now for the tricky part. you need to use pickle to provide a file with a counter.
In script_1.py:
counter_file = 'counter'

def unpickle_database(filename):
    with open(filename, 'rb') as f:
        while True:
            try:
                yield pickle.load(f)
            except EOFError:
                break

def return_counter():
    count = list(unpickle_database(counter_file))
    try:
        return count[0]
    except IndexError:
        return 0

def save_counter(counter_file):
    raw_counter = return_counter()
    final_counter = counter + raw_counter
    with open(counter_file, 'wb') as output:
        pickle.dump(final_counter, output, pickle.HIGHEST_PROTOCOL)

        while running:
            if return_counter() < int(threads.get()):
                counter += 1
                save_counter(counter_file)
                if not running:
                    break

                proc = subprocess.Popen(
                    [r'path\to\python.exe',
                     r'path\to\tor_money.py', var_1, var_2)

In script_2.py:
counter_file = 'counter'

def unpickle_database(filename):
    with open(filename, 'rb') as f:
        while True:
            try:
                yield pickle.load(f)
            except EOFError:
                break

def return_counter():
    count = list(unpickle_database(counter_file))
    for number in count:
        return number

## end your process here

raw_counter = return_counter()
print(raw_counter)

final_counter = raw_counter - 1
with open(counter_file, 'wb') as output:
    pickle.dump(final_counter, output, pickle.HIGHEST_PROTOCOL)
print(final_counter)


Need assistance with your recruitment?
Are you a business member of the NSW Business Chamber? If so, you are entitiled to an exclusive discount on our services.
Functioning independently of shareholders as a subsidiary of the NSW Business Chamber (NSWBC), Talent Options is devoted entirely to providing your business with high quality, professional recruitment services at the best possible value, with discounted rates offered to all NSWBC members.
As a non-profit organisation, we don't focus on the bottom line. Every dollar we make filters straight back to the Chamber to help businesses like yours to succeed. Outside of the generous discounts exclusive to our members, ultimately it is our sincerity and passion in providing you with the best candidate for your business that makes Talent Options such a valuable partner.
How Talent Options can help your business?
To discuss your permanent, temporary or contract recruitment needs, complete the form below and a member of the team will be in touch.


text:
General Laws of the State of Kansas
Հեղինակ՝ Kansas
CHAPTER 56, AN ACT to change the name of Clara Elizabeth Dolph and George
Osman Dolph, to Clara Elizabeth Dolph Stiles and George
Osman Dolph Stiles
to change the name of John William Hobbs
defining the powers and duties of certain State Officers 208
fixing and regulating the fees of County Officers, Justices
of the Peace and Constables
to provide for the appointment of Commissioners to lo-
cate a State Penitentiary, and to define their duties and
fix their compensation
to provide for the State Printing
relating to all Rail Road Companies whose Charters have
not been declared forfeited
to change the name of the Leavenworth, Pawnee and
Western Railroad Company
to provide for the removal of the Records and Papers of
the Courts of the late Territory of Kansas to the Courts
established by the Constitution
to provide for the redemption of Real Estate sold under
Execution, Order of Sale, or other final Process
to abolish the office of Register of Deeds of the City of
Eudora, and provide for disposing of the same
to declare Madison Puett Register of Deeds for Anderson
to provide Revenue for the year 1861
to establish certain State Roads
to declare the Road from Atchison to Clifton, on the Re-
publican Fork, a State Road
to declare a certain Survey a State Road
to establish a State Road from Paola to Moneka
to extend the provisions of an act entitled "An Act de-
fining the mode of laying out and establishing Roads,"
to the county of Doniphan
to establish the salaries of State Officers, Justices of the
Supreme Court, Judges of the District Court, and officers
of the Legislature
for the regulation and support of Common Schools 256
to promote Medical Science
78. JOINT RESOLUTION describing State Seal
79. AN ACT relating to Settlers upon Land without any legal right
thereto
to authorize the formation of County and Town Agricul.
tural and Horticultural Societies
to authorize the suspension of Specie Payment
to provide for the protection of Stock from Contagious
CHAPTER 83. AN ACT to regulate the taking up and posting of Strays
to provide for the postponement of the sale of Real and
personal property for Taxes
to postpone the time for collection of certain Taxes in
to legalize the assessment and collection of Taxes in and
for the city of Eudora, in Douglas county, for the year
to extend the time of paying Taxes in Leavenworth
to extend the time for the collection of Taxes in the
county of Lykins
entitled "An Act providing for the Taxation of the Wy-
andott Indian Lands in Wyandott County"
prescribing the duties and liabilities of the Treasurer of
to prevent and punish Trespasses on School Lands 292
to authorize the Governor to call into active service cer-
tain Troops, and to provide for the payment of the
expenses of the same
to provide for filling vacancies in the Office of County
94. JOINT RESOLUTION, declaring the office of Probate Judge, in
Johnson county, vacant
95. JOINT RESOLUTION declaring the office of County Superinten-
dent of Common Schools, in Johnson County, vacant 296
96. JOINT RESOLUTION declaring the office of County Clerk of At-
chison County, vacant
97. AN ACT providing for the protection of Widows and Minor
for the relief of Widows
SECRETARY OF STATE'S OFFICE,
TOPEKA, KANSAS, Aug. 20, 1861. I hereby certify that the "Acts and Resolutions" furnished the Printer of this Volume of Laws, are truly copied from the original Enrolled Bills on file in my office.
JOHN W. ROBINSON, Secretary of the State of Kansas.
STATE JOURNAL OFFICE,
LAWRENCE, KANSAS, Aug. 22, 1861. We hereby certify that this volume is made up from the manuscript Acts and Resolutions furnished us by the Secretary of State—the proof sheets having been carefully compared with the same.
TRASK & LOWMAN,
Printers.
DECLARATION OF INDEPENDENCE.
IN CONGRESS, JULY 4, 1776. THE UNANIMOUS DECLARATION OF THE THIRTEEN UNITED
STATES OF AMERICA. WHEN, in the course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume, among the powers of the earth, the separate and equal station to which the laws of nature and nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation.
We hold these truths to be self-evident :-That all men are created equal; that they are endowed by their Creator with certain unalienable rights; that among these are life, liberty and the pursuit of happiness. That, to secure these rights, governments are instituted among nien, deriving their just powers from the consent of the governed ; that, whenever any form of gove ernment becomes destructive of these ends, it is the right of the people to alter or abolish it, and to institute a new government, laying its foundation on such principles, and organizing its powers in such form as to them shall seem most likely to effect their safety and happiness. Prudence, indeed, will dictate, that governments long established should not be changed for light and transient causes; and accordingly all experience hath shown, that mankind are more disposed to suffer, while evils are sufferable, than to right themselves, by abolishing the forms to which they are accustomed. But when a long train of abuses and usurpations, pursuing invariably the same object, evinces a design to reduce them under absolute despotism, it is their right, it is their duty, to throw off such government, and to provide new guards for their future security. Such has been the patient sufferance of these colonies, and such is now the necessity which constrains them to alter their former systems of government. The history of the present King of Great Britain is a history of repeated injuries and usurpations, all having in
direct object the establishment of an absolute tyranny over these States. To prove this, let facts be submitted to a candid world.
He bas refused his assent to laws the most wholesome and necessary for the public good.
He has forbidden his governers to pass laws of immediate and pressing importance, unless suspended in their operation, till his assent should be obtained; and, when so suspended, he has utterly neglected to attend to them. He has refused to pass other laws for the accommodation of large districts of people, unless those people would relinquish the right of representation in the legislature--a right inestimable to them, and formidable to tyrants only.
He has called together legislative bodies, at places unusual, uncomfortable and distant from the repository of their public records, for the sole purpose of fatiguing them into a compliance with his measures.
He las dissolverl Representative Ilouses repeatedly, for opposing, with manly firmness, his invasions on the rights of the people.
He has refused, for a long time after such dissolutions, to cause others to be elected; whereby the legislative powers, incapable of annihilation, have returned to the people at large for their exercise, the State remaining, in the mean time, exposed to all the dangers of invasion from without and conyulsions within.
Ile has endeavored to prevent the population of these States; for that purpose obstructing the laws of naturalization of foreigners ; refusing to pass others to encourage their migration hither, and raising the conditions of new appropriations of lands.
IIe has obstructed the administration of justice, by refusing his assent to laws for establishing judiciary powers.
Ile has made judges dependent on his will alone, for the tenure of their offices, and the amount and payment of their salaries.
Ile has erected a multitude of new offices, and sent hither swarms of officers, to harrass our people and eat out their substance.
He has kept among us, in times of peace, standing armies, without the consent of our legislatures.
He has affected to render the military independent of and superior to the
civil power.
He has combined with others to subject us to a jurisdiction foreign to our Constitution, aud unacknowledged by our laws; giving his assent to their acts of pretendel legislation :
For quartering large bodies of armed troops among us ;
For protecting them by a mock trial, from punishment for any murders which they should commit on the inhabitants of these States;
For cutting off our trade with all parts of the would;
« ՆախորդըՇարունակել »


To prepare dressing: Whisk shallot, broth, oil, vinegar, mustard, salt and pepper in a small bowl.
To prepare salad: Toast walnuts in a small dry skillet over medium-low heat, stirring, until fragrant, 2 to 3 minutes. Transfer to a small bowl and let cool.
Just before serving, cut pears into 16 slices each. Place in a large bowl. Spoon on 1 tablespoon of the dressing and toss to coat. Add lettuce, arugula and the remaining dressing; toss well. Divide among 8 plates. Top with the walnuts.
NUTRITION INFORMATION: Per serving: 132 calories; 10 g fat (1 g sat, 5 g mono); 0 mg cholesterol; 10 g carbohydrate; 2 g protein; 2 g fiber; 94 mg sodium; 211 mg potassium.
Nutrition bonus: Vitamin A (30% daily value).
MAKE AHEAD TIP: Cover and refrigerate the dressing (Step 1) for up to 2 days.


text:
Індрек Зелінський (;  13 листопада 1974, Пярну, Естонська РСР) — естонський футболіст та тренер, нападник. Виступав за збірну Естонії.

Ранні роки
Народився в Пярну. Розпочав займатися футболом у 1985 році в молодіжній команді свого рідного клубу «Пярну» (Калев) під керівництвом тренера Марта Сігура.

Клубна кар'єра

«Флора»
Грав у футбол на дорослому рівні з 1991 року: спочатку за скромні клуби нижчих дивізіонів Естонії з рідного Пярну («Калью», КЕК та «Калев»), але в 1993 році став гравцем «Флори». У сезоні 1993/94 років грав нерегулярно, але відзначився хет-триком у матчі плей-оф за чемпіонство проти «Норми», завдяки чому завоював свій перший трофей. Свої перші сезони на контракті у «Флорі» провів, здебільшого виступаючи в оренді за команди «Лелле», «Тервіс» та «Курессааре». В основі столичного клубу почав грати в сезоні 1995/96 років. У сезоні 1997/98 років виграв у складі «Флори» свій другий чемпіонський титул, а в 1998 році — третій.

29 липня 1999 року «Флора» домовилася з англійським «Блекпулом» щодо трансферу Індрека, але перехід не відбувся через проблеми з отриманням дозволу на роботу у Великій Британії.

Оренда в «Лахті»
2 грудня 1999 року уклав орендний договір з представником фінської Вейккаусліги фінському «Лахті». У команді виступав разом із співвітчизником Марко Крісталом. У жовтні 2000 року, по завершенні орендної угоди, повернувся до «Флори».

«Ольборг»
17 липня 2001 року відправився в оренду до 9 грудня 2001 року за 1,3 мільйона крон до представника датської Суперліги «Ольборга». А вже 4 серпня 2001 року відбувся повноцінний перехід до данського клубу за 4 мільйони крон. За іншими даними «Флора» отримала близько 15 мільйонів естонських крон. Протягом двох сезонів також виступав у парі зі своїм співвітчизником — нападником Андресом Опером, а за підсумками 2001 року визнаний найкращим футболістом Естонії. У сезоні 2001/02 років відзначився 13-ма голами, завдяки чому став найкращим бомбардиром клубу в чемпіонаті країни. Незважаючи на це новий головний тренер «Ольборга» Пол Ерік Андреасен вирішив відмовитися від послуг естонського нападника, який тепер змушений був шукати собі нову команду.

У 2003 році відправлений в оренду в шведську «Ландскруну», а потім в датський «Фрем».

«Левадія»
У січні 2005 року повернувся до Естонії, де вільним агентом підписав 2-річний контракт з «Левадією», останнім клубом у професіональній кар'єрі. Ставав найкращим бомбардиром «Левадії» в чемпіонаті протягом трьох сезонів поспіль з 2005 по 2007 рік, виграв чотири поспіль Мейстріліги (2006, 2007, 2008 і 2009 роках) та два національні кубки. У серпні 2009 року оголосив, що майже напевно піде з професіонального футболу наприкінці сезону. Свій останній матч у Мейстрілізі зіграв 10 листопада 2009 року проти «Пайде», де був вилучений наприкінці першого тайму. У 2010-2012 роках Індрек виступав у нижчих лігах Естонії за «Есті Кондіс» - ветеранську збірну країни, а потім виступав за клуб «Ретро».

Кар'єра в збірній
У складі збірної Естонії дебютував 7 травня 1994 року в програному (0:4) товариському матчі проти США. 13 листопада 1996 року, у свій день народження, забив свій перший м'яч за збірну, в переможному (6:1) товариському матчі вразив ворота Андорри, а вже 16 листопада оформив хет-трик у товариському матчі з Індонезією.

Найбільш пам'ятним вважав м'яч, який Зелінський забив 2 червня 2001 року у кваліфікаційному матчі чемпіонату світу 2002 року проти Нідерландів, тим самим вивів свою команду вперед на 76-й хвилині (2:1), однак у підсумку перемогли голландці (2:4).У 2001 році визнаний найкращим футболістом року в Естонії, тричі вигравав нагороду «Срібний м'яч» Естонії — у 2000, 2003 та 2007 роках.

У 2005 році оголосив про завершення своєї кар'єри у збірній, однак у серпні 2007 року головний тренер естонців Вігго Єнсен викликав його на відбірковий матч чемпіонату Європи 2008 проти Андорри, де удар Зелінського на другій доданій хвилині виявився вирішальним (2:1). Святкуючи гол, ві зняв із себе футболку, бажаючи ще більше завести вболівальників, за що отримав другу для себе жовту картку в матчі та отримав вилучення.

21 травня 2010 року відбувся прощальний матч у складі збірної: він вивів команду як капітана на товариську гру зі збірною Фінляндії та був замінений на 17-й хвилині. Загалом у 103 матчах за збірну відзначився 27 разів, другий бомбардир в історії команди після Андреса Опера із 38 голами.

На керівних посадах
У грудні 2009 року Індрек Зелінський обійняв посаду керівника проектів фінансового відділу Естонського футбольного союзу. 1 березня 2011 року очолив юнацьку команду «Левадії», починаючи з сезону 2012 року працював помічником головного тренера першої команди клубу Марко Крістала. У листопаді 2017 року очолив клуб "Вапрус" (Пярну).

Має тренерську ліцензію УЄФА категорії A.

Особисте життя
В Індрека є донька Йоганна-Ліза (2000 р.н.) від його дівчини Сігріт Ярвамягі, яка є дворазовою переможницею Кубка Естонії у складі жіночої команди «Флора».

Статистика виступів

Клубна

У збірній

По роках

Забиті м'ячі

Досягнення

Клубні
«Флора»
  Мейстріліга
  Чемпіон (3): 1993/94, 1997/98, 1998

  Кубок Естонії
  Володар (1): 1997/98

  Суперкубок Естонії
  Володар (1): 1998

«Левадія»
  Мейстріліга
  Чемпіон (4): 2006, 2007, 2008, 2009

  Кубок Естонії
  Володар (2): 2004/05, 2006/07

Індивідуальні
  Футболіст року в Естонії (1): 2001
  Естонський «Срібний м'яч» (3): 2000, 2003, 2007
 Список гравців, які зіграли 100 та понад матчів за національну збірну: 2011

Примітки

Посилання
 Статистика виступів гравця на офіційному сайті Естонської футбольної асоціації
 Візитна картка футболіста на офіційному сайті УЄФА

 Профіль гравця на сайті footballdatabase.eu
 Профіль гравця на сайті worldfootball.net
 Профіль гравця на сайті fbref.com
 Профіль гравця на сайті eu-football.info
 Профіль та біографія гравця на офіційному сайті «Левадії» (архівна версія)
 Профіль та біографія гравця на офіційному сайті «Ольборга» (архівна версія)
 Профіль гравця на офіційному сайті «Фрема» (архівна версія)
 Біографія Індрека Зелінського на сайті «Естонський спортивний біографічний словник»
 Профіль тренера на сайті transfermarkt.com
 Профіль тренера на сайті zerozero.pt

Уродженці Пярну
Радянські футболісти
Естонські футболісти
Гравці молодіжної збірної Естонії з футболу
Гравці збірної Естонії з футболу
Естонські футбольні легіонери
Футбольні легіонери у Фінляндії
Футбольні легіонери в Данії
Футбольні легіонери у Швеції
Естонські футбольні легіонери
Футболісти «Тервіса»
Футболісти «Флори» (Таллінн)
Футболісти «Лелле»
Футболісти «Курессааре»
Футболісти «Лахті»
Футболісти «Ольборга»
Футболісти «Ландскруни»
Футболісти «Фрема»
Футболісти «Левадії»


DownThemAll, the numero uno download manager for Firefox and Chrome browser has been shown little to no love in the past few months. With the release of the palpably fast Firefox 57, better known as Firefox Quantum, users have been hoping for an upgrade for a long time now.
DownThemAll had more than 2.5 million active users. Its main feature was the ability to download files in pieces and resume downloads even after interruptions. With months passing by and no update from the developers on a possible solution, it is time to look for alternatives.
Note: webExtension API used in FF 57 and beyond doesn't support quite a few features offered and loved in DTA. We will keep this post updated when it is supported.
Here are 5 download managers that will help you download that YouTube video, or any other video for that matter, with just a few clicks.
Download Star is compatible with Firefox version 48 or later all the way up to 57 and beyond. Download Star works very similar to how DownThemAll worked. When you load a page with media like videos, audio files, images or files, it will parse the site for them.
You then click on the addon icon in the toolbar to reveal a sortable list of file types including HTML. Just check the box for the file type you want to download and the addon will filter the rest. You can then download all of them in one go.
There is also a search button in case you know the name of the files you want to download. You can choose more than 1 filetype. You can take care of conflicting options like overwrite, rename or skip.
Verdict: While Download Star is a cool little addon that offers a lot of features, there are some missing like the ability to pause and resume downloads. There is no way to customize the addon so you cannot decide the number of parallel downloads the addon will handle. You can only download from the active tab and not from all tabs open.
Video DownloadHelper is a very popular video downloader addon that supports a number of sites and formats. Unlike Download Star and some other addons, Video DownloadHelper's icon in the toolbar will start spinning when it detects media that you can download.
Apart from supporting a number of video formats, and images, the addon really shines in one particular area. If there is a video that the addon cannot download, it will allow you to capture the screen and create a video out of it on the fly. This means you can also record your browsing sessions which can come in real handy when you want to show someone how to do something. There is an additional feature to highlight the position of the mouse. Some other features include the ability to convert and join videos.
There are settings options where you can customize the appearance, addon behavior like concurrent downloads, file name and length, and conversion rules. Honestly, it had more options and settings, over 30, than I knew what to do with.
Verdict: Video DownloadHelper is a cool little addon that will download pretty much everything you want it to. During my test, it failed to grab all the images like Download Star but worked well with videos. Plus, you can customize the heck out of it.
Internet Download Manager is a standalone software that you will download and install on your computer. You will then have to install a Firefox browser add-on that will connect the two allowing you to transfer downloads from Firefox to IDM.
IDM is free to try for 30 days after which you can buy it for $29.95. Though expensive, IDM has become a favorite among those who are constantly finding themselves downloading one file or another.
IDM is noticeably faster than most download managers without even affecting your regular surfing speeds. Because it is a standalone piece of software, you can pause and resume downloads just like DownThemAll as the Firefox webExtension API has no effect on it. It can handle pretty much any file type and comes with a scheduler so you can begin downloading at a pre-defined date and time, and then it can shut down your computer too.
Verdict: IDM is a paid software but the set of features justifies the pricing. This is not only a great DownThemAll alternative but also better than it in a lot of ways. The developers update it every 6 weeks and it is known to be safe and secure.
JDownloader is the perfect substitute for IDM. It's free and open source. It comes with a lot of features like the ability to start, stop, and pause downloads, download files using multiple connections, it and can extract files automatically.
IDM still has a little more to offer, but for a price. JDownloader comes with a scheduler and a remote control that works with HTTP requests.
Verdict: Jdownloader is an easy to use download manager which is free and a perfect replacement for DownThemAll as well as IDM. It is available for Windows, Linux, and Mac.
Another free download manager, FDM comes with BitTorrent support. This means you can download your files using the torrent. You can easily download anything in pieces, pause and resume downloads anytime and schedule and manage files. Torrents really make lives easy.
Licensed under the GNU, it comes with a site explorer that will allow you to explore the folder structure of the source site. Other than that, there are many ways to customize it to your liking.
Verdict: FDM works very similar to how JDownloader works with added support for BitTorrent client which makes managing and downloading files that much easier and faster.
As far as Chrome permissions are concerned, things are not as relaxed. This is why finding an add-on for Chrome that could act as a DownThemAll Chrome alternative was difficult. The closest I could find was Chrono Download Manager.
Chrono Download Manager will detect different file types for audio, video, and images, and it also allows you to filter these results by file types.
Chrono Download Manager works fine and I was able to resume the download after pausing it twice.
Verdict: Chrono Download Manager is a good alternative to DownThemAll where you can filter file types, rename downloaded files and manage downloads in a separate tab.
If you find yourself downloading, errr, stuff from the Internet all the time then I suggest Internet Download Manager. It is paid but you will always receive updates and support plus because it works independent of the browser, you don't have to worry about it ever.
If you want a free alternative, Free Download Manager is good because it supports BitTorrent which gives you more options.
If you want a Firefox or Chrome add-on, Video DownloadHelper is the best available on the web right now. Great support and a number of features plus, you can customize it endlessly.