text:
<?php

namespace x2ts\db;

use PDO;

interface IDataBase {
    /**
     * Query an SQL statement with parameters and returns the result set
     *
     * @param string $sql
     * @param array  $params
     *
     * @throws DataBaseException
     * @return array
     */
    public function query(string $sql, array $params = []);

    /**
     * Execute an SQL statement and returns the row num it affected
     *
     * @param string $sql
     *
     * @throws DataBaseException
     * @return int
     */
    public function execute(string $sql);

    /**
     * Returns the auto increment ID created by the last insert statement
     *
     * @return int
     */
    public function getLastInsertId();

    /**
     * Returns the affected row count by the last statement
     *
     * @return int
     */
    public function getAffectedRows();

    /**
     * Initiates a transaction
     *
     * @return bool
     */
    public function startTransaction();

    /**
     * Commits the transaction
     *
     * @return bool
     */
    public function commit();

    /**
     * Roll back the transaction
     *
     * @return bool
     */
    public function rollback();

    /**
     * @return bool
     */
    public function inTransaction(): bool;

    /**
     * Gets the under lying PDO instance
     *
     * @return PDO
     */
    public function getPdo(): PDO;

}


($40) headphones are for the budget minded DJ's who still need performance. Check out all of the specs in the full press release below.
The Hercules Light Show DJ Headphones have internal lights around the ear cups that pulsate to the sound of the music. The lights are powered by an internal rechargeable battery which can be connected via USB to micro-USB cable when a refill is necessary. The Light Show headphones have a swivel style design for the 50mm drivers that fit completely over-the-ears for good isolation. We have a set in the DJbooth.net lab for review which will be completed shortly, but check out the unboxing video to get our first impressions.
Hercules can do more than just make good DJ controllers...They are now offering their new Autumn/Winter Multimedia XPS Speaker Collection. They have something here for everyone including a Macbook mounted speaker bar, a 2.1 surround system, and slim system for those tight spaces and small desks. They are mainly for the computer, but there are lots computer DJ's and producers out there that could use a decent sound setup for a great price. Check inside for details and pricing.
Hercules, the very popular DJ controller company, has recently released their new line of DJ headphones. Hercules sent me a pair of their Premium Model HDP DJ-Pro M1001 Professional DJ Headphones so that I could get them in the Lab and put them through our strenuous testing for a full HD-Video review which will be complete within the next two weeks. In the meantime, check out this quick unboxing and first impressions video so that you can get an idea of what they look and feel like straight out of the box. HD-Video inside.
In our next video for the weekly video series, I will share with you my favorite or personal best DJ headphones for under $100. DJ headphones need to be rugged and durable, while providing good isolation and high volume levels for accurate monitoring during a performance. The Urbanears Zinken check all of these boxes and much more.


text:
import boto3
import json
import logging
import os
import sys
import urllib.request
import sentry_sdk

from sentry_sdk.integrations.logging import LoggingIntegration
from urllib.error import HTTPError, URLError
from botocore.exceptions import ClientError
from datetime import datetime

class KubecostReportsExporter:
    def __init__(self) -> None:
        self.s3 = boto3.client('s3')
        self.log_level = os.environ.get('LOG_LEVEL', 'debug')
        self.logger = self.set_log_level(self.log_level)
        self.parse_env_vars()
        self.enable_sentry_logging()

    def enable_sentry_logging(self):
        sentry_logging = LoggingIntegration(
            level=logging.INFO,        # Capture info and above as breadcrumbs
            event_level=logging.ERROR  # Send errors as events
        )

        if self.sentry_dsn:
            sentry_sdk.init(dsn=self.sentry_dsn, integrations=[sentry_logging])

    def set_log_level(self, log_level):
        levels = {
            'debug': logging.DEBUG,
            'info': logging.INFO,
            'warning': logging.WARNING,
            'error': logging.ERROR,
            'critical': logging.CRITICAL
        }

        logger = logging.getLogger("kubecost-reports-exporter")
        logger.setLevel(levels[log_level])
        return logger

    def parse_env_vars(self):

        self.bucket_acl = os.environ.get('BUCKET_ACL', 'private')
        self.region = os.environ.get('AWS_REGION', 'eu-west-1')
        self.create_bucket = eval(os.environ.get("CREATE_BUCKET", 'False'))
        self.account_id = os.environ.get('ACCOUNT_CANONICAL_ID')
        self.tags = os.environ.get('TAGS', '')
        self.sentry_dsn = os.environ.get('SENTRY_DSN')
        self.request_timeout = int(os.environ.get('REQUEST_TIMEOUT', '3000'))

        try:
            self.cluster_name = os.environ['CLUSTER_NAME']
            self.report_type = os.environ['REPORT_TYPE']
            self.kubecost_endpoint = os.environ['KUBECOST_ENDPOINT']
            self.kubecost_url = os.environ['KUBECOST_URL']
            self.bucket_name = os.environ['BUCKET_NAME']

        except KeyError as ke:
            self.logger.error(
                f"KeyError: environment variable {str(ke)} is not set ")
            sys.exit(1)

    def create_s3_bucket(self):
        self.logger.info(f'Creating bucket {self.bucket_name}')
        try:
            self.s3.create_bucket(
                ACL=self.bucket_acl, Bucket=self.bucket_name,
                CreateBucketConfiguration={'LocationConstraint': self.region}
            )
        except ClientError as e:
            code = e.response['Error']['Code']
            if code == 'BucketAlreadyExists' or code == 'BucketAlreadyOwnedByYou':
                self.logger.warning(
                    f"Bucket {self.bucket_name} already exists"
                )
            else:
                self.logger.error(str(e))
                sys.exit(1)

    def build_filename(self):
        day_prefix = datetime.utcnow().strftime("%Y_%m_%d")
        time_prefix = datetime.utcnow().strftime("%Y%m%d_%H_%M_%S")
        return f"{self.cluster_name}/{self.report_type}/{day_prefix}/aws_kubecost_{self.report_type}_{time_prefix}.json"

    # function calling the kubecost svc to get JSON response with the cost data

    def get_cost_report(self, url):
        try:
            with urllib.request.urlopen(url, timeout=self.request_timeout) as f:
                if f.getcode() != 200:
                    self.logger.error(
                        f"Error: Failed to reports from {self.cluster_name}")
                    sys.exit(1)
                return f.read().decode('utf-8')
        except HTTPError as error:
            self.logger.error(
                'Data not retrieved because %s\nURL: %s', error, url)
            sys.exit(1)
        except URLError as error:
            self.logger.error(
                'Failed to retrive cost reports %s\nURL: %s', error, url)
            sys.exit(1)
    # Uploading the JSON string to S3 bucket

    def upload_report_to_aws(self, bucket, s3_file_name, content, account_id):
        self.logger.info(f'Uploading reports for cluster {self.cluster_name}')
        try:
            # if account id is not provided upload without access grant
            if not account_id:
                self.s3.put_object(
                    Bucket=bucket,
                    Body=content,
                    Key=s3_file_name,
                    ServerSideEncryption='AES256'
                )
            else:
                # provide object access to bucket owner
                self.s3.put_object(
                    Bucket=bucket,
                    Body=content,
                    Key=s3_file_name,
                    ServerSideEncryption='AES256',
                    GrantFullControl=f'id="{account_id}"'
                )
            self.logger.info("Reports uploaded Successful")
        except ClientError as e:
            self.logger.error(str(e))
            sys.exit(1)

    def parse_tags_from_env(self, tags):
        parsed_tags = {}
        if not tags:
            return parsed_tags
        tags_array = tags.split(",")
        for tag in tags_array:
            tag = tag.split("=")
            parsed_tags[tag[0]] = tag[1]
        return parsed_tags

    def start(self):

        if self.create_bucket:
            self.create_s3_bucket()

        # check that the json has data
        report = self.get_cost_report(
            self.kubecost_endpoint + self.kubecost_url)

        if not bool(json.loads(report)["data"]):
            self.logger.info("Error: Skipping upload, report has no data")
            return

        self.upload_report_to_aws(
            self.bucket_name, self.build_filename(),
            report,
            self.account_id
        )

if __name__ == "__main__":
    KubecostReportsExporter().start()

redpajama_set_name: RedPajamaGithub


text:
BurstIQ, first 10.10.10 company, receives seed funding from PV Ventures
By: InnovatioNews Thursday April 23, 2015 0 comments Tags: Denver, BurstIQ, 10.10.10, Frank Ricotta, Tom Higley, PV Ventures, Bill Miller, Jesse Wolff, Colorado Health Foun
DENVER -- BurstIQ, the first company to spin out of the 10.10.10 health innovation program in February, announced it has received seed round funding from Colorado Springs-based PV Ventures.
The amount of the seed funding was not disclosed.
BurstIQ's business model is built on creating a secure cloud platform to power the digital health revolution, the company said.
"The combination of sensors, mobile and platform will make health care personal again, and it will also generate a lot of sensitive data," said Frank Ricotta, BurstIQ CEO.
"We believe data should be secure and private – that is our first priority. We also believe that the need for a highly secure platform shouldn't limit the benefits and use of data. Data needs to be sharable, accessible and usable.
"Insights derived from the data will drive individual empowerment, personalized care relationships, better outcomes and reduced costs."
"This is a game-changer for digital health data access, and we believe that the innovative security features that are at the core of the product can extend beyond digital health, providing a foundational capability to protect an individual's privacy," said Bill Miller, PV Ventures managing director.
"Health data is a 'wicked problem,' one of 10 we selected for our inaugural 10.10.10 health program this past February," said Tom Higley, 10.10.10's founder and chairman.
"With the creation of BurstIQ, Frank becomes the first of our 10.10.10 CEOs to accept the challenge of developing a market-based solution to the health data problem. The market is crying out for an innovative and secure health data platform, and I believe the BurstIQ platform can be that solution."
"The Colorado Health Foundation partnered with 10.10.10 as part of our efforts to explore an innovative philanthropic approach with the potential to spark market-based solutions to wicked problems in health," said Jesse Wolff, director of private sector initiatives for CHF.
"We are excited to see BurstIQ step up as the first company out of 10.10.10 to accept the challenge and embrace the opportunity that this problem represents."
About the Author: InnovatioNews
InnovatioNews is an online news magazine spotlighting innovative companies, products and people in Colorado. Launched in June of 2012, the site is the recipient of multiple awards.

redpajama_set_name: RedPajamaCommonCrawl


With the acquisition of C.J. Mosley, the New York Jets have little reason not to explore a trade for Lee. While Lee's cap hit is a mild $3.2 million compared to his counterpart Avery Williamson's $8 million, Lee has underperformed as a former first-round pick and was handed a suspension that ended his 2018 campaign early.
With all that in mind, the Jets have a clear pairing set between Mosley and Williamson moving forward, leaving Lee the odd man out. After earning sub-50.0 grades in his first two years out of Ohio State, Lee had his best year yet in 2018 with a 72.4 mark. However, Williamson out-graded him with a 74.3 overall grade and has proven himself as a consistent force through five years in the league. Lee was generally productive in 2018, though, and that should have other teams interested in his low cap number and seemingly budding skill set.
Nearly a year ago, the Minnesota Vikings exercised Waynes' fifth-year option, putting them on the books for a $9 million cap hit. While Waynes has been a relatively solid option as a No. 2 cornerback, his salary in combination with rookie Holton Hill's emergence gives the Vikings an opportunity to shop him around.
Waynes has yet to allow a passer rating in coverage above 100.0 in his four seasons, but his expected improvement arc as a former top-15 pick hasn't been quite as evident. His low-floor, high-ceiling playstyle was evidenced in his Week 4 and Week 7 performances. Against the Los Angeles Rams, he allowed three catches on four targets for 102 yards and two touchdowns, but he then dominated against the New York Jets, surrendering just one reception on seven targets with an interception to boot. Perhaps the latter effort will draw a trade offer the Vikings can't refuse.
The Cleveland Browns have quickly become one of the NFL's most dangerous teams on paper. Johnson Jr. certainly adds to that elusive offense, but he may become the odd man out with Nick Chubb and Kareem Hunt in the backfield. While Hunt's eight-game suspension in 2019 may be reason to keep Johnson Jr., the Browns could choose to get a decent return for the former third-round pick now and test their luck in the draft or in the undrafted free agent pool — which, by the way, has been a source of big-time backfield talent in recent years (see: Austin Ekeler, Phillip Lindsay, Gus Edwards and Matt Breida, among others).
Last year, Johnson Jr. saw 42 fewer carries and 29 fewer targets than he did in 2017 — due in large part to the arrival of Chubb. However, he was still just as effective on those touches, tallying the eighth-most first down catches among running backs and a strong 4.13 yards after contact per attempt that would have placed in the top five among running backs if he qualified for the snap threshold.
The influx of additions to a revamped Browns squad means there will be players left grasping at air for snaps, and unfortunately for Ogbah, Olivier Vernon is just too good to not start opposite Myles Garrett.
Last year, Vernon earned a career-high 86.3 overall grade and was stellar in the pass rush. He notched four or more quarterback pressures in six of his 11 games, while Ogbah did so only three times in 14 games. Vernon also earned his accolades against the vaunted left tackles of the NFC East while Ogbah ultimately struggled against the relatively average AFC North right tackles. That's not to say the Oklahoma State product hasn't productive — he led the Browns in edge pressures in 2016 — but a disappointing 2018 campaign that saw him earn a 58.9 overall grade (85th of 105 qualifying edge defenders) and the arrival of a clear upgrade should have Ogbah on the market.
Thomas is coming off a 26-pressure season in which 21 of them were hurries, and just one was a sack, and only two edge defenders had more pass-rushing snaps and fewer pressures than Thomas in 2018. Expectations are always high for a top-three draft pick, and Thomas just hasn't lived up to them. With the acquisition of Dee Ford, who finally broke out in his fifth year, the San Francisco 49ers appear more than set on their defensive line and with studs Quinnen Williams and Nick Bosa bound to be snagged early in this year's draft, the 49ers may have even more talent on their hands, which means Thomas could be trade bait despite just getting two years to prove his worth in San Francisco.


text:
Q: intellij: 'sbt' is not recognized I have installed sbt plugin in intellij, but whne I try to run some sbt command, it is not recognized.
>sbt clean compile
'sbt' is not recognized as an internal or external command,
operable program or batch file.

Shouldn't sbt plugin take care of this?

redpajama_set_name: RedPajamaStackExchange


text:
How to Identify a Tree With a Sticky Seed Pod
By Jason Thompson
Some species of tree have sticky seed pods. You can learn to identify the trees that produce your sticky seed pods by looking at the other features of the tree that produced them, such as the leaves and the bark. The Kentucky coffeetree is found all across North America, according to the Royal Ontario Museum. Many other trees that produce such pods are not native to the region.
Look at the seed pod. Kentucky coffeetree seed pods are flat, green, heavy and straight edged. They are filled with a sticky green substance containing ½ inch seeds. The seed pod of the monkey pod tree is 6 to 8 inches in length, straight, and dark brown, containing reddish-brown seeds that are sticky on the outside. Sweetgum tree seed pods are distinctive; they are also called porcupine eggs and are round, green or orange-green and covered in sticky spines.
Look at the leaves of the tree that produced the seed pod. The Kentucky coffeetree has compound leaves that are several inches in length. They have two rows of teardrop-shaped leaflets. Monkey pod leaves are compound, with long oval leaflets running in two rows. They are green to brownish-green in color and have no stalks. The leaflets curl up at night and on cloudy days. Sweetgum leaves have three to seven pointed lobes.
Look at the bark of the tree that produced the seed pod. Kentucky coffeetree bark ranges from gray to brownish-gray. It often has deep irregular fissures and plates that are curled around the edges. The bark of the monkey pod is dark gray and has low, horizontal ridges. Sweetgum bark ranges from brown to gray and has vertical ridges. These might be either slight or deep.
Look at the tree's flowers. Kentucky coffeetree flowers are small, star-shaped, and white and yellow. Monkey pod trees have puffy pink flowers that are darker toward the edges. Female sweetgum tree flowers are pale green clusters of round balls on the end of drooping stalks. Male sweetgum tree flowers are yellowish-green clusters of balls on stiff spikes.
Royal Ontario Museum: Kentucky Coffeetree
What Tree Is It?: Kentucky Coffeetree
The Practical Herbalist: Sweetgum Seed Pods as Slug and Snail Repellent
USDA Forest Service: Monkey-Pods
Flowers of India: Rain Tree
University of Florida: How to Identify a Tree
What Does a Horse Chestnut Tree Look Like?
How to Identify Foxtail Grass
How to Identify Wild Persimmon Trees
How to Identify Nut-Bearing Trees in Kentucky
How to Tell the Difference Between Loblolly & Long Leaf Pine
Types of Evergreen Trees in the Pacific Northwest


text:
LOCALS IN THE NBA
Blazers Provide Update On Damian Lillard's Abdominal Rehab
Damian Lillard #0 of the Portland Trail Blazers warms up before the game against the Orlando Magic at Moda Center on February 08, 2022 in Portland, Oregon. (Photo by Steph Chambers/Getty Images) (Photo by Steph Chambers/Getty Images)
(Photo by Steph Chambers/Getty Images)
BY KYLE IRELAND
SALT LAKE CITY – The Portland Trail Blazers provided an update on the rehabilitation status of former Weber State guard Damian Lillard following abdominal surgery.
Lillard underwent abdominal surgery in the middle of January.
On Sunday, February 27, the Blazers released the following statement on Lillard's status:
"Trail Blazers guard Damian Lillard has progressed through the initial phase of his rehabilitation from abdominal surgery without setback. Lillard will begin the reconditioning phase of his rehab protocol next week, which includes the continuation of his strengthening program along with basketball skill activity. He will be reevaluated in two to three weeks."
Damian Lillard injury update: https://t.co/190kZiMua1
— Portland Trail Blazers (@trailblazers) February 27, 2022
Lillard hasn't played since December 31, 2021.
Damian Lillard Out At Least Six Weeks After Surgery
Report: Damian Lillard To Have Surgery To Address Lingering Abdominal Injury
Blazers' Lillard Out Next 3 Games With Abdominal Injury
In 29 games this season, the former Weber State standout averaged 24.0 points, 4.1 rebounds, 7.3 assists, 0.4 blocks, and 0.6 steals in 36.4 minutes per contest.
Earlier this season, Lillard was recognized as one of the NBA's 75 greatest players in history. He was honored during halftime of the league's All-Star Game on February 20.
Lillard was originally selected by the Trail Blazers with the N0. 6 overall pick in the 2012 NBA Draft. He's played his entire career with Portland.
The Blazers currently own a 25-35 record and are projected to participate in a play-in game to earn a spot in the postseason.
Follow @kyleireland
Kyle Ireland and Trevor Allen, KSL Sports
Former USU Forward Justin Bean Signs Training Camp Deal With Grizzlies
Former Utah State standout Justin Bean signed a training camp deal with the Memphis Grizzlies ahead of the 2022 NBA season.
Report: Utah State & Bountiful Great Sam Merrill Finds New NBA Home
After being released by the Memphis Grizzlies in January, Sam Merrill has reportedly reached a deal with the Sacramento Kings.
Michelle Bodkin
Former, Current Runnin' Utes Rally For Good Causes
The Runnin' Utes family, former and current, have been living that mantra the past few days giving back to the Salt Lake community through former Ute Brandon Taylor's basketball camp and charity showcase.
Kyle Kuzma, Delon Wright Team Up On Winning Shot
Kyle Kuzma and Delon Wright teamed up on the game winning shot for the Powder League's Charity Showcase that benefitted Utah Foster Care Tuesday night.
Powder League, Brandon Taylor Teaming Up For Charity Showcase
Former Runnin' Ute Brandon Taylor is back in town playing for the Powder League this summer and together they are teaming up for a Charity Showcase to benefit Utah Foster Care on August 9th.
Trevor Allen
Six Locals In The NBA Wrap Up Summer League Action
The NBA Summer League in Las Vegas has concluded with six locals participating with five different teams from around the league.