text:
Q: Implement Like what's app story progress circle I'm trying to do the below progress

Using MKMagneticProgress, I was able to apply the bottom space, but now I'm stuck on how to do the spaces in the circle, for example in this image we have the progress of 7 items out of 10.
What I want is to update the MKMagneticProgress code to add the spaces.
the code taken from MKMagneticProgress with my update (I added the total)
import UIKit
// MARK: - Line Cap Enum

public enum LineCap : Int{
    case round, butt, square

    public func style() -> String {
        switch self {
            case .round:
                return CAShapeLayerLineCap.round.rawValue
            case .butt:
                return CAShapeLayerLineCap.butt.rawValue
            case .square:
                return CAShapeLayerLineCap.square.rawValue
        }
    }
}

// MARK: - Orientation Enum

public enum Orientation: Int  {
    case left, top, right, bottom

}

@IBDesignable
open class CircleProgress: UIView {

    // MARK: - Variables
    private let titleLabelWidth:CGFloat = 100

    private let percentLabel = UILabel(frame: .zero)
    @IBInspectable open var titleLabel = UILabel(frame: .zero)

    /// Stroke background color
    @IBInspectable open var clockwise: Bool = true {
        didSet {
            layoutSubviews()
        }
    }

    /// Stroke background color
    @IBInspectable open var backgroundShapeColor: UIColor = UIColor(white: 0.9, alpha: 0.5) {
        didSet {
            updateShapes()
        }
    }

    /// Progress stroke color
    @IBInspectable open var progressShapeColor: UIColor   = .blue {
        didSet {
            updateShapes()
        }
    }

    /// Line width
    @IBInspectable open var lineWidth: CGFloat = 8.0 {
        didSet {
            updateShapes()
        }
    }

    /// Space value
    @IBInspectable open var spaceDegree: CGFloat = 45.0 {
        didSet {
            //            if spaceDegree < 45.0{
            //                spaceDegree = 45.0
            //            }
            //
            //            if spaceDegree > 135.0{
            //                spaceDegree = 135.0
            //            }

            layoutSubviews()

            updateShapes()
        }
    }

    /// The progress shapes line width will be the `line width` minus the `inset`.
    @IBInspectable open var inset: CGFloat = 0.0 {
        didSet {
            updateShapes()
        }
    }

    // The progress percentage label(center label) format
    @IBInspectable open var percentLabelFormat: String = "%.f %%" {
        didSet {
            percentLabel.text = String(format: percentLabelFormat, progress * 100)
        }
    }

    @IBInspectable open var percentColor: UIColor = UIColor(white: 0.9, alpha: 0.5) {
        didSet {
            percentLabel.textColor = percentColor
        }
    }

    /// progress text (progress bottom label)
    @IBInspectable open var title: String = "" {
        didSet {
            titleLabel.text = title
        }
    }

    @IBInspectable open var titleColor: UIColor = UIColor(white: 0.9, alpha: 0.5) {
        didSet {
            titleLabel.textColor = titleColor
        }
    }

    // progress text (progress bottom label)
    @IBInspectable  open var font: UIFont = .systemFont(ofSize: 13) {
        didSet {
            titleLabel.font = font
            percentLabel.font = font
        }
    }

    // progress Orientation
    open var orientation: Orientation = .bottom {
        didSet {
            updateShapes()
        }
    }

    /// Progress shapes line cap.
    open var lineCap: LineCap = .round {
        didSet {
            updateShapes()
        }
    }

    /// Returns the total Items
    private var _total: CGFloat = 1.0
    @IBInspectable open var total: CGFloat {
        set {
            self._total = newValue
            self.setProgress(progress: self.progress)
        }
        get {
            return self._total
        }
    }
    /// Returns the current progress.
    @IBInspectable open private(set) var progress: CGFloat {
        set {
            progressShape?.strokeEnd = newValue
        }
        get {
            return progressShape.strokeEnd
        }
    }

    /// Duration for a complete animation from 0.0 to 1.0.
    open var completeDuration: Double = 2.0

    private var backgroundShape: CAShapeLayer!
    private var progressShape: CAShapeLayer!

    private var progressAnimation: CABasicAnimation!

    // MARK: - Init

    public required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setup()
    }

    public override init(frame: CGRect) {
        super.init(frame: frame)
        setup()
    }

    private func setup() {

        backgroundShape = CAShapeLayer()
        backgroundShape.fillColor = nil
        backgroundShape.strokeColor = backgroundShapeColor.cgColor
        layer.addSublayer(backgroundShape)

        progressShape = CAShapeLayer()
        progressShape.fillColor   = nil
        progressShape.strokeStart = 0.0
        progressShape.strokeEnd   = 0.1
        layer.addSublayer(progressShape)

        progressAnimation = CABasicAnimation(keyPath: "strokeEnd")

        percentLabel.frame = self.bounds
        percentLabel.textAlignment = .center
        //        percentLabel.textColor = self.progressShapeColor
        self.addSubview(percentLabel)
        percentLabel.text = String(format: "%.1f%%", progress * 100)

        titleLabel.frame = CGRect(x: (self.bounds.size.width-titleLabelWidth)/2, y: self.bounds.size.height-21, width: titleLabelWidth, height: 21)

        titleLabel.textAlignment = .center
        //        titleLabel.textColor = self.progressShapeColor
        titleLabel.text = title
        titleLabel.contentScaleFactor = 0.3
        //        textLabel.adjustFontSizeToFit()
        titleLabel.numberOfLines = 2

        //textLabel.adjustFontSizeToFit()
        titleLabel.adjustsFontSizeToFitWidth = true
        self.addSubview(titleLabel)
    }

    // MARK: - Progress Animation

    public func setProgress(progress: CGFloat, animated: Bool = true) {
        let actualProgress =  progress/self._total
        if actualProgress > 1.0 {
            return
        }

        var start = progressShape.strokeEnd
        if let presentationLayer = progressShape.presentation(){
            if let count = progressShape.animationKeys()?.count, count > 0  {
                start = presentationLayer.strokeEnd
            }
        }

        let duration = abs(Double(progress - start)) * completeDuration
        percentLabel.text = String(format: percentLabelFormat, actualProgress * 100)
        progressShape.strokeEnd = actualProgress

        if animated {
            progressAnimation.fromValue = start
            progressAnimation.toValue   = actualProgress
            progressAnimation.duration  = duration
            progressShape.add(progressAnimation, forKey: progressAnimation.keyPath)
        }
    }

    // MARK: - Layout

    open override func layoutSubviews() {

        super.layoutSubviews()

        backgroundShape.frame = bounds
        progressShape.frame   = bounds

        let rect = rectForShape()
        backgroundShape.path = pathForShape(rect: rect).cgPath
        progressShape.path   = pathForShape(rect: rect).cgPath

        self.titleLabel.frame = CGRect(x: (self.bounds.size.width - titleLabelWidth)/2, y: self.bounds.size.height-50, width: titleLabelWidth, height: 42)

        updateShapes()

        percentLabel.frame = self.bounds
    }

    private func updateShapes() {
        backgroundShape?.lineWidth  = lineWidth
        backgroundShape?.strokeColor = backgroundShapeColor.cgColor
        backgroundShape?.lineCap     = CAShapeLayerLineCap(rawValue: lineCap.style())

        progressShape?.strokeColor = progressShapeColor.cgColor
        progressShape?.lineWidth   = lineWidth - inset
        progressShape?.lineCap     = CAShapeLayerLineCap(rawValue: lineCap.style())

        switch orientation {
            case .left:
                titleLabel.isHidden = true
                self.progressShape.transform = CATransform3DMakeRotation( CGFloat.pi / 2, 0, 0, 1.0)
                self.backgroundShape.transform = CATransform3DMakeRotation(CGFloat.pi / 2, 0, 0, 1.0)
            case .right:
                titleLabel.isHidden = true
                self.progressShape.transform = CATransform3DMakeRotation( CGFloat.pi * 1.5, 0, 0, 1.0)
                self.backgroundShape.transform = CATransform3DMakeRotation(CGFloat.pi * 1.5, 0, 0, 1.0)
            case .bottom:
                titleLabel.isHidden = false
                UIView.animate(withDuration: 0.3, delay: 0.0, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: [] , animations: { [weak self] in
                    if let temp = self{
                        temp.titleLabel.frame = CGRect(x: (temp.bounds.size.width - temp.titleLabelWidth)/2, y: temp.bounds.size.height-50, width: temp.titleLabelWidth, height: 42)
                    }

                    }, completion: nil)
                self.progressShape.transform = CATransform3DMakeRotation( CGFloat.pi * 2, 0, 0, 1.0)
                self.backgroundShape.transform = CATransform3DMakeRotation(CGFloat.pi * 2, 0, 0, 1.0)
            case .top:
                titleLabel.isHidden = false
                UIView.animate(withDuration: 0.3, delay: 0.0, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: [] , animations: { [weak self] in
                    if let temp = self{
                        temp.titleLabel.frame = CGRect(x: (temp.bounds.size.width - temp.titleLabelWidth)/2, y: 0, width: temp.titleLabelWidth, height: 42)
                    }

                    }, completion: nil)
                self.progressShape.transform = CATransform3DMakeRotation( CGFloat.pi, 0, 0, 1.0)
                self.backgroundShape.transform = CATransform3DMakeRotation(CGFloat.pi, 0, 0, 1.0)
        }
    }

    // MARK: - Helper

    private func rectForShape() -> CGRect {
        return bounds.insetBy(dx: lineWidth / 2.0, dy: lineWidth / 2.0)
    }
    private func pathForShape(rect: CGRect) -> UIBezierPath {
        let startAngle:CGFloat!
        let endAngle:CGFloat!

        if clockwise{
            startAngle = CGFloat(spaceDegree * .pi / 180.0) + (0.5 * .pi)
            endAngle = CGFloat((360.0 - spaceDegree) * (.pi / 180.0)) + (0.5 * .pi)
        }else{
            startAngle = CGFloat((360.0 - spaceDegree) * (.pi / 180.0)) + (0.5 * .pi)
            endAngle = CGFloat(spaceDegree * .pi / 180.0) + (0.5 * .pi)
        }
        let path = UIBezierPath(arcCenter: CGPoint(x: rect.midX, y: rect.midY), radius: rect.size.width / 2.0, startAngle: startAngle, endAngle: endAngle
            , clockwise: clockwise)

        return path
    }
}

My output:

Thanks.

A: I was able to figure out how to update the code to add multiple arcs here is the updated code
import UIKit
// MARK: - Line Cap Enum

public enum LineCap : Int{
    case round, butt, square

    public func style() -> String {
        switch self {
            case .round:
                return CAShapeLayerLineCap.round.rawValue
            case .butt:
                return CAShapeLayerLineCap.butt.rawValue
            case .square:
                return CAShapeLayerLineCap.square.rawValue
        }
    }
}

// MARK: - Orientation Enum

public enum Orientation: Int  {
    case left, top, right, bottom

}

@IBDesignable
open class CircleProgress: UIView {

    // MARK: - Variables
    private let titleLabelWidth:CGFloat = 100

    private let percentLabel = UILabel(frame: .zero)
    @IBInspectable open var titleLabel = UILabel(frame: .zero)

    /// Stroke background color
    @IBInspectable open var clockwise: Bool = true {
        didSet {
            layoutSubviews()
        }
    }

    /// Stroke background color
    @IBInspectable open var backgroundShapeColor: UIColor = UIColor(white: 0.9, alpha: 0.5) {
        didSet {
            updateShapes()
        }
    }

    /// Progress stroke color
    @IBInspectable open var progressShapeColor: UIColor   = .blue {
        didSet {
            updateShapes()
        }
    }

    /// Line width
    @IBInspectable open var lineWidth: CGFloat = 5.0 {
        didSet {
            updateShapes()
        }
    }

    /// Space value
    @IBInspectable open var spaceDegree: CGFloat = 45.0 {
        didSet {
            //            if spaceDegree < 45.0{
            //                spaceDegree = 45.0
            //            }
            //
            //            if spaceDegree > 135.0{
            //                spaceDegree = 135.0
            //            }

            layoutSubviews()

            updateShapes()
        }
    }

    /// The progress shapes line width will be the `line width` minus the `inset`.
    @IBInspectable open var inset: CGFloat = 0.0 {
        didSet {
            updateShapes()
        }
    }

    // The progress percentage label(center label) format
    @IBInspectable open var percentLabelFormat: String = "%.f %%" {
        didSet {
            percentLabel.text = String(format: percentLabelFormat, progress * 100)
        }
    }

    @IBInspectable open var percentColor: UIColor = UIColor(white: 0.9, alpha: 0.5) {
        didSet {
            percentLabel.textColor = percentColor
        }
    }

    /// progress text (progress bottom label)
    @IBInspectable open var title: String = "" {
        didSet {
            titleLabel.text = title
        }
    }

    @IBInspectable open var titleColor: UIColor = UIColor(white: 0.9, alpha: 0.5) {
        didSet {
            titleLabel.textColor = titleColor
        }
    }

    // progress text (progress bottom label)
    @IBInspectable  open var font: UIFont = .systemFont(ofSize: 13) {
        didSet {
            titleLabel.font = font
            percentLabel.font = font
        }
    }

    // progress Orientation
    open var orientation: Orientation = .bottom {
        didSet {
            updateShapes()
        }
    }

    /// Progress shapes line cap.
    open var lineCap: LineCap = .round {
        didSet {
            updateShapes()
        }
    }

    /// Returns the total Items
    private var _total: Int = 1
    @IBInspectable open var total: Int {
        set {
            self._total = newValue
            self.addProgressShapes()
        }
        get {
            return self._total
        }
    }
    /// Returns the current progress.
    private var _progress: CGFloat = 0.0
    @IBInspectable open private(set) var progress: CGFloat {
        set {
            self._progress = newValue
        }
        get {
            return self._progress
        }
    }

    /// Duration for a complete animation from 0.0 to 1.0.
    open var completeDuration: Double = 1.0

    private var backgroundShape: CAShapeLayer!
    private var progressShapes: [CAShapeLayer]!

    private var progressAnimation: CABasicAnimation!

    // MARK: - Init

    public required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setup()
    }

    public override init(frame: CGRect) {
        super.init(frame: frame)
        setup()
    }

    private func setup() {

        backgroundShape = CAShapeLayer()
        backgroundShape.fillColor = nil
        backgroundShape.strokeColor = backgroundShapeColor.cgColor
        layer.addSublayer(backgroundShape)

        progressAnimation = CABasicAnimation(keyPath: "strokeEnd")

        percentLabel.frame = self.bounds
        percentLabel.textAlignment = .center
        //        percentLabel.textColor = self.progressShapeColor
        self.addSubview(percentLabel)
        percentLabel.text = String(format: "%.1f%%", progress * 100)

        titleLabel.frame = CGRect(x: (self.bounds.size.width-titleLabelWidth)/2, y: self.bounds.size.height-21, width: titleLabelWidth, height: 21)

        titleLabel.textAlignment = .center
        //        titleLabel.textColor = self.progressShapeColor
        titleLabel.text = title
        titleLabel.contentScaleFactor = 0.3
        //        textLabel.adjustFontSizeToFit()
        titleLabel.numberOfLines = 2

        //textLabel.adjustFontSizeToFit()
        titleLabel.adjustsFontSizeToFitWidth = true
        self.addSubview(titleLabel)
    }

    // MARK: - Progress Animation

    private func addProgressShapes(){
        self.progressShapes = []
        let progressSize = 1.0
        var size:CGFloat = CGFloat(progressSize / Double(self.total))
        let padingPercent = 0.2
        let pading: Double =  padingPercent * Double(self.total)/10 * Double(progressSize / Double(self.total - 1))
        size = size  - CGFloat(pading)
        print("")
        print("size: \(size) | pading: \(pading)")
        print("------------------------")
        var start: CGFloat = 0.0
        var end: CGFloat = size
        print("start: \(start) | end: \(end) ")
        print("------------------------")

        let progressShape: CAShapeLayer!
        progressShape = CAShapeLayer()
        progressShape.fillColor   = nil
        progressShape.strokeStart = start
        progressShape.strokeEnd   = end
        layer.addSublayer(progressShape)
        self.progressShapes.append(progressShape)

        for _ in 1..<self._total {
            start = CGFloat(end +  CGFloat(pading))
            end = CGFloat(Double(start + size))
            print("------------------------")
            print("start: \(start) | end: \(end) ")
            let progressShape: CAShapeLayer!
            progressShape = CAShapeLayer()
            progressShape.fillColor   = nil
            progressShape.strokeStart = start
            progressShape.strokeEnd   = end
            layer.addSublayer(progressShape)
            self.progressShapes.append(progressShape)
        }
    }
    private func setProgressShapeFrame(){
        guard self.progressShapes != nil else { return }
        for shape in self.progressShapes {
            shape.frame   = bounds
            let rect = rectForShape()
            shape.path   = pathForShape(rect: rect).cgPath
        }
    }
    private func updateShapesWidth(){
        guard self.progressShapes != nil else { return }
        for i in 0..<self._total {
            let shape = self.progressShapes[i]
            let color = CGFloat(i) >= self.progress ? UIColor.white.withAlphaComponent(0.1).cgColor:progressShapeColor.cgColor
            shape.strokeColor = color
            shape.lineWidth   = lineWidth - inset
            shape.lineCap     = CAShapeLayerLineCap(rawValue: lineCap.style())
        }
    }
    private func transformShapes(_ transform: CATransform3D){
        guard self.progressShapes != nil else { return }
        for shape in self.progressShapes {
            shape.transform = transform
        }
    }
    public func setProgress(progress: CGFloat, animated: Bool = true) {
        self._progress = progress
        //        let actualProgress =  progress/self._total
        //        if actualProgress > 1.0 {
        //            return
        //        }
        //
        //        var start = progressShape.strokeEnd
        //        if let presentationLayer = progressShape.presentation(){
        //            if let count = progressShape.animationKeys()?.count, count > 0  {
        //                start = presentationLayer.strokeEnd
        //            }
        //        }
        //
        //        let duration = abs(Double(progress - start)) * completeDuration
        //        percentLabel.text = String(format: percentLabelFormat, actualProgress * 100)
        //        progressShape.strokeEnd = actualProgress
        //
        //        if animated {
        //            progressAnimation.fromValue = start
        //            progressAnimation.toValue   = actualProgress
        //            progressAnimation.duration  = duration
        //            progressShape.add(progressAnimation, forKey: progressAnimation.keyPath)
        //        }
    }

    // MARK: - Layout

    open override func layoutSubviews() {

        super.layoutSubviews()

        backgroundShape.frame = bounds

        let rect = rectForShape()
        backgroundShape.path = pathForShape(rect: rect).cgPath

        setProgressShapeFrame()
        self.titleLabel.frame = CGRect(x: (self.bounds.size.width - titleLabelWidth)/2, y: self.bounds.size.height-50, width: titleLabelWidth, height: 42)

        updateShapes()

        percentLabel.frame = self.bounds
    }

    private func updateShapes() {
        backgroundShape?.lineWidth  = lineWidth
        backgroundShape?.strokeColor = backgroundShapeColor.cgColor
        backgroundShape?.lineCap     = CAShapeLayerLineCap(rawValue: lineCap.style())
        self.updateShapesWidth()

        switch orientation {
            case .left:
                titleLabel.isHidden = true
                self.transformShapes(CATransform3DMakeRotation( CGFloat.pi / 2, 0, 0, 1.0))
                self.backgroundShape.transform = CATransform3DMakeRotation(CGFloat.pi / 2, 0, 0, 1.0)
            case .right:
                titleLabel.isHidden = true
                self.transformShapes(CATransform3DMakeRotation( CGFloat.pi * 1.5, 0, 0, 1.0))
                self.backgroundShape.transform = CATransform3DMakeRotation(CGFloat.pi * 1.5, 0, 0, 1.0)
            case .bottom:
                titleLabel.isHidden = false
                UIView.animate(withDuration: 0.3, delay: 0.0, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: [] , animations: { [weak self] in
                    if let temp = self{
                        temp.titleLabel.frame = CGRect(x: (temp.bounds.size.width - temp.titleLabelWidth)/2, y: temp.bounds.size.height-50, width: temp.titleLabelWidth, height: 42)
                    }

                    }, completion: nil)
                self.transformShapes(CATransform3DMakeRotation( CGFloat.pi * 2, 0, 0, 1.0))
                self.backgroundShape.transform = CATransform3DMakeRotation(CGFloat.pi * 2, 0, 0, 1.0)
            case .top:
                titleLabel.isHidden = false
                UIView.animate(withDuration: 0.3, delay: 0.0, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: [] , animations: { [weak self] in
                    if let temp = self{
                        temp.titleLabel.frame = CGRect(x: (temp.bounds.size.width - temp.titleLabelWidth)/2, y: 0, width: temp.titleLabelWidth, height: 42)
                    }

                    }, completion: nil)
                self.transformShapes(CATransform3DMakeRotation( CGFloat.pi, 0, 0, 1.0))
                self.backgroundShape.transform = CATransform3DMakeRotation(CGFloat.pi, 0, 0, 1.0)
        }
    }

    // MARK: - Helper

    private func rectForShape() -> CGRect {
        return bounds.insetBy(dx: lineWidth / 2.0, dy: lineWidth / 2.0)
    }
    private func pathForShape(rect: CGRect) -> UIBezierPath {
        let startAngle:CGFloat!
        let endAngle:CGFloat!

        if clockwise{
            startAngle = CGFloat(spaceDegree * .pi / 180.0) + (0.5 * .pi)
            endAngle = CGFloat((360.0 - spaceDegree) * (.pi / 180.0)) + (0.5 * .pi)
        }else{
            startAngle = CGFloat((360.0 - spaceDegree) * (.pi / 180.0)) + (0.5 * .pi)
            endAngle = CGFloat(spaceDegree * .pi / 180.0) + (0.5 * .pi)
        }
        let path = UIBezierPath(arcCenter: CGPoint(x: rect.midX, y: rect.midY), radius: rect.size.width / 2.0, startAngle: startAngle, endAngle: endAngle
            , clockwise: clockwise)

        return path
    }
}


text:
The State of the Canadian Debt Slaves, and How They Compare to the American Debt Slaves
Morgan Stanley: Business Conditions Are At Their Worst Since The Great Recession
Jerusalem Post: U.S. Bombing Of Iran "Will Be Massive But Will Be Limited To A Specific Target"
What Is Causing Extremely Bizarre Weather Patterns To Hammer The Middle Of The U.S. Over And Over Again?
Pentagon Plan Would Send "120,000 Troops To The Middle East"
The Most Splendid Housing Bubbles in Canada Deflate Further
Just in: Meghan and Harry release the most informal Royal Wedding photos yet
May 21st, 2018 | by Richard Paul
Finally, they're here! Prince Harry and Meghan Markle on Monday released three official photos from the Royal Wedding
National Post Staff
In this handout image released by the Duke and Duchess of Sussex, the Duke and Duchess are pictured together in an official wedding photograph on the East Terrace of Windsor Castle on May 19, 2018 in Windsor, England. Alexi Lubomirski/The Duke and Duchess of Sussex via Getty Images
Finally, they're here! Prince Harry and Meghan Markle on Monday released three official photographs from the Royal Wedding on Saturday.
The three photos include a romantic black-and-white of the beaming couple perched on the East Terrace steps of Windsor Castle moments after the wedding service.
The two family portraits were taken in the Green Drawing Room at Windsor Castle just after the carriage procession by fashion photographer, Alexi Lubomirski, known for his glossy shots in magazines such as Elle and Vogue.
The first portrait is an epic royal fam-jam that includes Meghan's mother, Doria Ragland, and members of the bridal party (described by Kensington Palace as) Miss Ivy Mulroney and Master Brian Mulroney.
A photo released by Kensington Palace on May 21, 2018 shows Prince Harry, Duke of Sussex, (CL) and his wife Meghan, Duchess of Sussex, (CR) posing for an official wedding photograph with (L-R back row) Britain's Camilla, Duchess of Cornwall, Britain's Prince Charles, Prince of Wales, Doria Ragland, the Duchess of Sussex's mother, Britain's Prince William, Duke of Cambridge, (middle row L-R): Master Jasper Dyer, Britain's Prince Philip, Duke of Edinburgh, Britain's Queen Elizabeth II, Britain's Catherine, Duchess of Cambridge, Princess Charlotte of Cambridge, Prince George of Cambridge, Miss Rylan Litt, Master John Mulroney and (front row) Miss Ivy Mulroney, Master Brian Mulroney, Miss Florence van Cutsem, Miss Zalie Warren and Miss Remi Litt in the Green Drawing Room, Windsor Castle, in Windsor on May 19, 2018.AFP PHOTO / THE DUKE AND DUCHESS OF SUSSEX / ALEXI LUBOMIRSKI
The second family portrait shows a relaxed Harry and Meghan with their page boys and bridesmaids, most of whom are remarkably directing their gaze at the camera. Can you spot the wayward bridesmaid?
A picture released by Kensington Palace on behalf of The Duke and Duchess of Sussex on May 21, 2018 shows Britain's Prince Harry, Duke of Sussex, (CL) and his wife Meghan, Duchess of Sussex, (CR) posing for an official wedding photograph with (L-R back row) Master Brian Mulroney, Miss Remi Litt, Miss Rylan Litt, Master Jasper Dyer, Prince George of Cambridge, Miss Ivy Mulroney, Master John Mulroney and (L-R front row) Miss Zalie Warren, Princess Charlotte of Cambridge and Miss Florence van Cutsem in the Green Drawing Room, Windsor Castle, in Windsor on May 19, 2018. AFP PHOTO / THE DUKE AND DUCHESS OF SUSSEX / ALEXI LUBOMIRSKI
Lubomirski, who was born in England and raised in Botswana, also shot the couple's two official engagement photos at Frogmore House in Windsor last year.
"It has been an incredible honor and privilege to document The Duke and Duchess of Sussex's inspiring journey of love, hope and family; from the engagement photos, all the way through to the official wedding and family portraits on Saturday," Lubomirski said in a statement.
"This has been a beautiful chapter in my career and life, that I will happily never forget."
In this handout photo provided by Kensington Palace, Prince Harry and Meghan Markle pose for one of two official engagement photos at Frogmore House in December, 2017 in Windsor, United Kingdom. Alexi Lubomirski via Getty Images
In this photo released by Kensington Palace on Thursday, Dec. 21, 2017, Britain's Prince Harry and Meghan Markle pose for an official engagement photo. Alexi Lubomirski via AP
Media Inquiries: daniellemagazine@bell.net
© 2019 Danielle Magazine. All Rights Reserved.

redpajama_set_name: RedPajamaCommonCrawl


text:
Author Archives: Sharpie
With independent records stores struggling from COVID lockdowns and a relative dearth of new music releases – with many artists holding releases back in the hope of touring them – the industry reacted with not one but a series of (mostly online) Record Store Days. Despite the sometimes bloated pricing of such releases taking fans for a rise. It's a cause, I'm happy to get behind particularly in 2020.
Here's a list of some of my favourite re-releases, archived releases, cover albums and tributes from 2020 (in no particular) order.
Lovey – Lemonheads
An absolutely brilliant package of my long time favourite Lemonheads album. It featured a hardcover book binding enclosing not only a new 20th anniversary vinyl pressing of Lovey (long unavailable) but also a bonus LP of a vibrant and typically ramshackle 1991 JJJ Live at the Wireless performance.
Archives Vol. II – Neil Young
Like Volume I, this is a sublime package of rare cuts, live and 'lost' albums. Like Volume I, it's beautifully packaged and produced. Like Volume I, it annoyingly was preceded by many of the albums being released over the last couple of years, so by the time it was released, fans had already recently forked out for much of the content. Still, we needed to have it for the packaging and the deep cuts not available elsewhere.
Homegrown – Neil Young
Finally Young released his shelved personal follow up to his smash hit Harvest album. While not at the very top of Young's cannon, it is a worthy addition to your collection.
Wildflowers & All the Rest – Tom Petty
A great (2014) remaster of Petty's greatest solo album and of his his best releases overall spread over 2 vinyl LPs – plus a third LP of other studio tracks recorded during the sessions. Also available as a 7LP Deluxe edition with additional demos/outtakes and a live show from the Wildflowers Tour. I settled for the value 3 LP edition.
Gimme Some Truth – John Lennon (4LP Box Set)
Picks the eyes out of John Lennon's, often inconsistent, solo albums. Arguably the best way to hear Lennon's solo cannon – just the good stuff.
Long Hot Summers / The Story of the Style Council
Another terrific band whose output was often great and, in retrospect, groundbreaking – but which suffered from inconsistency when heard in the context of the individual albums. At the time, they also suffered from comparison of the vital The Jam albums which preceded them. This compilation, selected by the band itself, includes many extended versions which go deeper and represent better the bands vision. Essential. As the first vinyl run of the collection sold out in no time, I've had to make do with TIDAL until my back order arrives.
The Palace at 4am (Part 1) – Jay Bennett & Edward Burch
The 2002 Wilco Documentary 'I Am Trying to Break Your Heart' famously shows in graphic detail the breakdown of the band's central partnership between Jeff Tweedy and Jay Bennett. We all know what happened next with Tweedy's Wilco continuing to achieve great success. This album is what happened next for Jay Bennett. How I never managed to discover it before this 2020 RSD re-issue is perplexing. It's a classic. If love great pop music, check it out.
Mental Notes/ Second Thoughts/ Dizrythmia – Split Enz
2020 saw the release of a 40th Anniversary`of Split Enz's 1980 masterpiece True Colours, but what really excited me this year was the re-issues of their first three albums in glorious coloured vinyl editions with superbly curated gatefold sleeves. An overdue chance to revisit these wonderful art-pop albums which contain much to love beyond the recognisable 'hits'.
Grandpa Would – Ben Lee
The story of Ben Lee's discovery, as a 15 year old Aussie school kid by Sonic Youth's Thurston Moore and signing to the Beatie Boys' Uber cool Grand Royale record label is now legendary. Lee's pairing with producer Brad Wood (hot off having produced Liz Phair's classic debut Exile in Guyville) provided the perfect setting to capture a rare mix of innocence, raw talent and youthful exuberance and translate it to vinyl. This 25th anniversary set presents the resulting debut album on LP1 and further demo's and outtakes on LP2. The second LP is interesting but the original LP remains a classic which captured a moment of creative synchronicity the heights of which Lee never recaptured.
drag – k.d. lang
This concept album of covers of songs loosely arranged around the theme of smoking presents k.d. lang's skill as a vocalist and interpreter in fine relief. This 2020 RSD edition marks a welcome vinyl release of the album.
Sign of the Times – Prince
Prince's definitive statement as a musician in a new remastered package. A masterpiece.
Please Leave Your Light On – Paul Kelly & Paul Grabowsky
Paul Kelly, one of Australia's best songwriters, has always had a way with a piano ballad. His solo piano led renditions of a number of this songs as part of his famed A-Z Tours proved that beyond doubt. His paring here with Grabowsky, one of Australia's finest jazz pianists and bandleaders is inspired (and given their previous connections, long overdue). A fantastic recasting of these classic songs.
Blonde on the Tracks – Emma Swift
Recording a whole album of Bob Dylan covers would hardly seem a natural choice for a young female songwriter from Australia – but relocated to Nashville – and with a reputation based largely on one excellent EP (Bittersweet). But so beguiling – and audacious – are these versions that it has thrust Swift into the spotlight. We can't wait to see what she does next.
Truckload of Sky, The lost songs of David McComb Vol. 1 – by the friends of David McComb
I'm not generally a fan of multi-artist tribute albums. With a few exceptions, the majority are more miss than hit. Delivering either too faithful (but inferior) copies or reinterpreting them to lesser effect, or worse, losing the spirit of the original. That claim can't be made here. Firstly because these are 'lost' songs written by David McComb but never released. Secondly, these are not just random bands with some label affiliation but a group of musicians who were friends and/or collaborators with McComb. They came to the project out of love and with an innate understanding of the McComb's artistic spirit. It's the embodiment of that spirit which makes this album a triumph and one of my favourite albums of the year in any category.
Sunday – Vika & Linda
Vika & Linda are national treasures whether as part of the Black Sorrows, accompanying Paul Kelly or on their own releases. This isolation recorded album of covers achieves an intimacy which suits the mostly gospel material.
Back To My Roots – Solomon Burke
Solomon Bourke is indisputably one of the soul greats. This RSD re-issue of his 1976 Chess outing is yet more proof of that fact. And the worth the money for the cover art alone.
Unreleased 1998 – 2010 – Powderfinger
As the name suggests, this collection of unreleased tracks spans the bands career and capture each of their many facets which made them one of the countries most popular bands. While it's a little hit and miss, there are some real treasures here and it adds up to more than a mere curiosity.
January 1, 2021 by Sharpie Leave a comment
Idiot Prayer – Nick Cave Live at Alexandra Palace 2020
2020 was not a great year for live music thanks to Covid-19 BUT it was a great year for streamed live performances and, in the case of Nick Cave, a concert event filmed live in June 2020 at Alexandra Palace in London and streamed live to ticket holders prior to a worldwide cinema release. It was the apotheosis of the streamed concert a phenomenon which saw 'real' live-music-deprived concert geeks attending streamed gigs all over the world on their TVs. So thoroughly, and intimately, did Cave reinterpret his broad cannon, that this performance stands with the best live albums ever made and certainly my highlight of the year.
Live at Canterbury House 1967 – Joni Mitchell
Canterbury House was a vibrant community centre set in an old converted print shop in the university district of Ann Arbour Michigan. Its community centre, part coffee house part counselling centre, part performance space. In addition to hosting intimate alcohol free musical performances (for which it acoustics and state of the art sound system were perfect), it was also used for film nights, plays and church services.
With a capacity of only 200, and due to its '60's community spirit, it was a special place for musicians seeking an intimate connection with their audience. It's that spirit which pervades the music on this wonderful release of Joni Mitchell's early career performance here on 27 October 1967.
Recorded prior to the release of Joni's debut Song of the Seagull, the set list included a number of tracks from that album as well as early Mitchell penned songs which has already been hits for others and which would be subsequently released by her on later albums like 'Both Sides Now', 'Urge for Going' and Little Green'.
For fans of Joni Mitchell this is an indispensable glimpse of her early genius as she started her journey which would be era diving and create a body of work the equal of any other artist from that time.
Live Drugs – War on Drugs
I had the pleasure of seeing War On Drugs live at Sydney's Enmore Theatre in 2018. So warn, entrancing and insistent was the enveloping sound of Grandulciel's band that it rendered the band's name oxymoronic. The music enveloped us all in its warm narcotic grip. This live album can't quite match that intensity but delivers the band's sound and greatest compositions so naturally that it allows their beauty to shimmer in a way the wonderful studio version never quite do.
Live at the Forum – The Teskey Brothers
When Josh Teskey, part way through this live album, breaks into a cover of Jealous Guy and admits it is influenced more by the Donny Hathaway live version than the Lennon original, we are reminded that Melbourne's Teskey Brothers are the real deal. They have lived and inhabited the music that they have grown up with and loved and coupled it with their own distinct songwriting and brother Sam's excellent guitar work to win fans around the world festival circuit. While that is in hiatus, we can comfort ourselves on this live album which is redolent of the great live discs of sound music, Otis Redding, Bill Withers and Hathaway, without ever feeling like a mere tribute.
The Complete Inconserated Live – The Replacements
Recorded in Milwaukee in 1989, following the release of Don't Tell A Soul (the 2019 release of the original mix of which – as Dead Mans Bop – was the highlight of of last year's re-release schedule). This 2020 live RSD release contains all 29 songs from that performance (a shortened version was included with the Dead Man's Bop set). The Replacements were a famously unpredictable live proposition but both this set and the previous Replacements For Sale catch them at their incendiary best – constantly courting the shambolic edge of oblivion but never descending into the chasm – an ability which made them, on their best nights, amongst the set live acts around (and got them banned for life from NBC shortly prior to this performance). As a huge fan during the late '80's, it was a dream to catch them live at the Roundhouse in London at the tail of their 2015 live run. It's great to now have two live albums available in full to remember them by.
Galaxie 500 – Live at Barbue Copenhagen Dec 1st 1990
Another RSD live release by one of my favourite bands. Hard to get a hold of – and, like many RSD releases, overpriced – but worth it. Galaxie 500 at their short lived peak. First time available on vinyl.
Kiss My Blood – Iggy Pop Live at The Olympia Paris France 1991
An RSD 3LP set recorded as part of the Brick To Brick Tour. Contains all the tracks you know and love him for performed with just the right mix of professionalism and intensity. Comes with a limited edition numbered tour poster too.
Live at Goose Lake August 8th, 1970 – The Stooges
Everything you've heard. About this gig is true. Raw, shambolic, incendiary, punk which pushes it all the way to the edge – and over. The soundboard recording only enhances the legend.
The Allman Brothers – Live a Fillmore West 1-31-71
Allman Brothers. 1971. No need to say more.
Live at the Hollywood Palladium December 15, 1988 – Keith Richards and the X-pensive Winos
An old favourite I've owned for years on CD finally re-issued on vinyl. The definition of swagger.
December 31, 2020 by Sharpie Leave a comment
A personal selection by a music fan who has admittedly failed to listen to every album released in 2020 and has his own preferences and predilections
Rough & Rowdy Ways – Bob Dylan
Suddenly, out of nowhere, Dylan dropped, without warning, just as COVID-19 was announcing its presence, his epic new single Murder Most Foul. The track, clocking in just shy of 17 minutes, picked the eyes out of institutions, politics and pop culture centreing on the assassination of JFK. It was a major artistic statement which Dylan had reportedly been working on for over a decade. If that was all he had done in 2020, it would have been sufficient to confirm his presence as a relevant and vital artist (if 2012's Tempest had not made that clear enough). Dylan, however, followed it with I Contain Multitudes and then the album Rough & Rowdy Ways to seal the deal. R&RW was not merely an unexpectedly resurgent artistic statement but a reassertion of Dylan's status as an artist still in touch with his muse and still relevant almost 60 years after he first burst from New York's folk bars and coffee shops to become the defining voice of the '60's. It was the standout album of 2020.
2. Song for Our Daughter – Laura Marling
I saw Laura Marling play live at the Sydney Opera House on 7 March 2020. Little would I know that it would be the second last show I would see in the next 9 months. The crowd present showed great appreciation for the strong new songs interspersed throughout the evening – some of them being played live for the first time. The album, when it arrived, did not disappoint. Perhaps Marling's defining statement and certainly the equal of her impressive catalogue.
3. Letter to You – Bruce Springsteen
Not even the surprisingly strong, if overproduced, Western Stars (or its superior movie soundtrack recorded live in Springteen's converted barn which now serves as his studio) prepared us for the Boss' resurgence with Letter To You. Anchored by a selection of older songs, and billed as a letter of thanks to his fans, Letter To You contained echoes of his classic albums accompanied by the finely honed musicality of the E Street Band. Arguably his best since the under-rated Devils & Dust
4. The Prisoner – Phoebe Bridges
A fuller, more complete, artistic statement which built upon the promise of her debut.
5. Hey Clockface – Elvis Costello
A sprawling tour-de-force displaying the full range of Costello's talents but (somehow) coalescing into a complete and congruous artistic statement.
6. Good Souls, Better Angels – Lucinda Williams
Ms Williams channels her righteous anger at external targets (principally Trump) rather than her usual introspection, and hits a bulls-eye perfectly suited to 2020.
7. Reunions – Jason Isbell and the 400 Unit
Isbell continues to mine his talent for stories of peoples, places, struggles and redemption. The 400 Unit continues to back those songs with exceptional playing rivalled only by that of the Springsteen's E-Street Band. If Dave Cobb's too slick production (which appears designed to take Isbell to the next level) distracts from the honesty of Isbell's songs, its a minor quibble and the songs, most notably 'Only Children' and 'St Peter's Autograph', continue to shine through.
8. You Be the Lightning – Tracey McNeil & the Goodlife
2020 was supposed to be the year for Tracey who gave up her lease to hit the road in a van with her partner in life and music Dan Parsons to support the long awaited release of this album. The music lived up to its promise but the timing was crueller by COVID-19. It deserves wider recognition.
9. In and Out of the Light – The Apartments
Another fine addition to the all too infrequent – but uniformly excellent – catalogue of this fine band. Thoughtful, literate, chamber-pop doesn't get better than this. Underpinned by Peter Milton Walsh's sonorous languid vocals and superior songwriting ably supported by his fine band including Chris Abrahams' (The Necks) elegant piano flourishes and Nick Allum's haunting drums and percussion.
10. World on the Ground – Sarah Jarosz
Another fine country/Americana album from a hugely talented singer and songwriter. With the help of Jon Leventhal, Jarosz has taken a marked step forward with both songwriting and performance on this album.
The next 10…
11. Lightning Show Is Your Stuff – Grant Lee Phillips
12. Blue Hearts – Bob Mould
13. By The Fire – Thurston More
14. Taylor Swift – folklore
15. Walking Proof – Lilly Hiatt
16. A Hero's Death – Fontaine's DC
17. Old Flowers – Courtenay Marie Andrews
18. Hermitage – Ron Sexsmith
19. Summerlong – Rose City Band
20. Waxahatchee – Saint Cloud
Kris Kristofferson & The Strangers
State Theatre, Sydney
The legendary Kris Kristofferson took to the stage, with his trusty acoustic guitar slung over his shoulder, and raised one arm into the air in acknowledgment of the warm reception from the crowd.
He was surrounded on the stage by none less than The Strangers, the late Merle Haggard's long time band featuring Scott Joss (fiddle and vocals), Doug Colosio (keyboards & vocals) and Jeff Ingraham (drums).
As we sat in the State Theatre's plush crimson velvet seats, watching Kristofferson's entrance and anticipating the show, it was hard to ignore that Kristofferson's presence, though retaining a hint of his trademark smirk and glint in his eye, was withered and showing the effects of his 83 years. You could say he looked nearly faded as his jeans.
As he launched into opener Shipwrecked in the Eighties, it became clear that those years had also affected his vocals and guitar playing.
The Strangers provided a solid base for Kristofferson's songs with flourishes of Joss' fiddle and Colossio's keys adding accents to the too sparse palette of Kristofferson's vocals and minimalist acoustic guitar. At times, it seemed the band showed too great a deference – a reluctance to overshadow Kristofferson. As a result, they hung back which left Kristofferson's performance limitations on display and hard to ignore. It was, at times, uncomfortable to watch. [A friend of mine, and fellow Kristofferson fan, called it, rather less kindly, a 'train-wreck'].
The tracks where the Strangers asserted a firmer hand worked best, where Scott Joss' excellent vocals swooped in to play a strong supporting role or the Merle Haggard covers, and Joss' own 'How Far to Jordon', on which he took the lead vocal. But we had come to see Kristofferson perform his fine songs, so the band's reverence was understandable. Still, many of those songs would have benefitted from a 'second' guitarist given Kris' playing was rudimentary (at best) and failed to deliver the ease and beauty of the finger picking melodies essential to the songs.
It was hard to quibble with the set-list though, which included a long list of Kristofferson's greatest compositions including: Darby's Castle; Me and Bobby McGee; Best of Both Possible Worlds; Casey's Last Ride; Loving Her Was Easier (Than Anything I'll Ever Do Again) [all from the first set] and Just the Other Side of Nowhere; Duvalier's Dream; Jesus Was a Capricorn; Sunday Morning Coming Down; For the Good Times and Why Me [from the second set]. It's just that we didn't get versions which did justice to the brilliance of the songwriting or came close musically to recorded versions. Too often Kristofferson's delivery failed to enunciate the superb lyrics clearly and the much-loved melodies failed to emerge.
Luckily, we all knew those tunes so well that our imagination was able to fill some of the gaps and salvage some enjoyment out of the undeniably brilliant batch of songs. Towards the end I even started softly singing along (something I usually detest when I've come to hear the performer) and was joined by others around me at the front of the theatre in a concerted communal effort to somehow offer our support to Kristofferson by willing a bit of melody, life and energy back into the songs.
When the show concluded, the audience, in spite of it all, rose to its feet to give Kristofferson a rousing standing ovation. It was a gesture of love and generosity, but one which left me personally conflicted. Should I stand to join the ovation so generously offered by those around me? Should an ovation be offered to acknowledge the life achievement of one of the greatest songwriters of all time or should it be reserved for a great performance on the night in question? (I remained seated.)
Ultimately, the pervasive feeling throughout the evening was that, as far as live performance goes, it was impossible to deny that our love affair with Kristofferson was well & truly over but, despite it all (as revealed by the ovation and much post-show chatter) the audience was determined to do its best to make believe we loved him one more time. For the good times.
September 28, 2019 by Sharpie Leave a comment
Sharpie's Favourite Albums 2018
2018 has just come to a close, so it's time to reflect on the year that's been. Here's my rundown of MY ten favourite albums of 2018.
2018 was the year where I got back into vinyl (thanks Taine for the hardware). In many of these albums, the vinyl has helped bring out feel and layers of the music which was missing from my early listens on Spotify and even from the CD versions. It's also disciplined my listening, urging me to stop other things and just listen to the music – devoting my full attention.
2018 was a brilliant year stacked full of great albums from old favourites and a few new discoveries.
This list is not a list of 'best' albums just those that rang my bell. There are a number which just missed out which sat up there all year. Some of those that just missed the cut may be 'better' as in more original, newer or more inventive but these are the albums that I just wanted to listen to over and over.
1. Vanished Gardens – Charles Lloyd & the Marvels with Lucinda Williams
Charles Lloyd and the Marvels' Vanished Gardens intersperses jazzy country flavoured instrumentals with four Lucinda Williams vocals. The version of Ventura in particular surpasses the (very fine) original thanks to Lloyd's saxophone lines which weave around Williams' typically languid vocals. The production and the fine playing by all involved – including the dream combination of Bill Frisell on guitar and Greg Leisz on pedal steel and dobro – is utterly entrancing throughout the many fine compositions. My most played album of 2018. It sounds amazing on vinyl.
2. Heaven & Earth – Kamasi Washington
Kamasi Washington's beguiling 'Epic' topped my list on release in 2016. Heaven & Earth is his second Masterpiece. The 2 CD/4LP work is arranged into two halves, the first "Earth' traces the protagonist's journey on earth from young firebrand ('Fists of Fury' – a version of the title track from the Bruce Lee film) through realisation and ultimately a form of wisdom and acceptance. 'One on One', the final track of the Earth half features a thematic ascension rendered by increasingly exuberant playing matched by swirling, uplifting choral voices. The second half 'Heaven' continues that journey with the music increasingly moving into the celestial realm culminating in the joyous 'Will You Sing'. Concept albums can be vexed but not this one, Washington's great accomplishment is to present this explorative journey in a manner which seems natural and unforced subtly integrating the individual tracks into a thematic whole not unlike an opera or symphony. Masterful.
3. Woman Gotta Cry – Yolanda Ingley II
In what has been an excellent year for local 'Americana' music Yolanda Ingley II's 'Woman Got To Cry' stood out from the pack coming on like a lost 60's folk/soul classic. The production by Sam Teskey and the crack band they've assembled at his Half Mile Harvest studio in Melbourne – including Teskey's own intuitive guitar work – make the most of Ingley's immense songwriting talents and engaging vocals. If you told me each of these wonderful songs were lost classics taken from the Great American Songbook I would have believed you.
4. The Crossing – Alejandro Escovedo
Escovedo has been making great records, largely under the radar of commercial success for many years. He rarely disappoints. The Crossing is a new highlight (and possibly benchmark) of that illustrious recording career. It captures Escovedo's chosen oeuvre – down at heel explorations of dusty towns, moral foibles and seductive women – in the vivid, cinematic monochrome of a concept album in which two immigrants meet in Galveston, Texas and begin their journey of discovery finding 'an America that no longer existed'.
5. True Meanings – Paul Weller
True Meaning is yet another highlight of Paul Weller's already illustrious solo career. The uniform quality of the songs and gentle dynamic interplay between voice, guitar, keyboards and lush (but not overplayed) intertwined strings adds up to one of my favourites of the year. The album renders 14 pieces of stunning consistency into a compelling collection which grabs attention from the opening side and never flags or repeats itself overs its course. The cover art work features Weller's black clad image holding a cigarette and staring in contemplation and reflection while seated on a lush vintage teal velvet chair. It's a shot which conveys a mix of age, style, poise and control which sums up the album perfectly.
6. No Mercy In This Land – Ben Harper & Charlie Musselwhite
This second collaboration between Harper and renowned harpist and blues legend Charlie Musselwhite is a resounding success. The two seem immediately more familiar than the first time around working with a nuanced understanding of each other's musicianship. Meanwhile Harper brings to the table some of his finest writing dropping at frequent intervals a beguiling turn of phrase – try these: 'I found hay in a stack of needles' (from 'Found The One'); or 'Come close you'll see the red/ Of a well bitten tongue' (form 'No Mercy In This Land') or 'You practice law without a license/ Psychology too/ But your PHD is in giving me the blues' and ' You get away with murder/ You got a way with words' (both from 'Movin' On'). Great writing and great performances all around. Same goes for their excellent show at the Sydney Opera House.
7. Between Two Shores – Glen Hansard
Glen Hansard's solo material continues to go from strength to strength with Between Two Shores, his follow up to 2016's Doesn't He Ramble. From the slow burn opener Roll on Slow to the straight ahead rock out of Wheel's On Fire, the pensive Setting Out right through to the final denouement of the final two tracks of resignation and renewal – You're Heart's Not In It' and 'Time Will Be The Healer' – each of which is as good as anything Hansard has previously done in any guise.
8. Hope Downs – Rolling Blackouts Coastal Fever
Expectations on Rolling Blackouts CF were high following two excellent EPs. Their first long player does not disappoint. It continues, and develops, the strengths shown on those EPs – the urgency, the chiming guitars, the impressionistic half-spoken vocals. Sure, it's been done before (by the likes of the R.E.M., the Db's and particularly the Go-Betweens) but when it's done this well I'm not about to complain.
9. Running – Ryan Downey
Downey is a Melbourne based singer songwriter who burst onto the scene (for me at least) with this solo debut. From the opening cohenesque title track (I dare you to find a sexier slinkier song this side of Hotel Chelsea No.2) to 'Those Eyes That Answer', 'The Weather Song' and final track 'The End'. Just consistently great.
10. The War & Treaty
A glorious fusion of gospel, funk, soul and rock featuring husband and wife team Michael and Tanya Trotter trading vocal lines over a bed of acoustic guitar, lap steel and driving bass. All of which acts in the service of Michael's consistently excellent compositions. It's joyous, groovy and fun. Brilliantly produced by Buddy Miller and featuring a guest appearance by Emmylou Harris. I can't wait to catch these guys at Bluesfest next year.
Third/Sister Lovers – Big Star
Third/Sister Lovers is a dissolute masterpiece which seemingly documents the fragile psychological state into which Alex Chilton descended in the wake of Chris Bell's departure and the commercial failure of Big Star's magnificent first two albums. It's a wild cocktail of drugs, drink, love, indulgence, despair, madness, spontaneity, introspection and cathartic release all orchestrated by producer Jim Dickinson who had the vision and foresight to indulge Chilton and embrace that gamut of emotions rather than rein it in.
Together, Chilton, original drummer Jody Stephens, Chilton's then lover/muse/drug buddy Lesa Aldridge, Dickinson, a clutch of top session musicians (including Steve Cropper on one track) and a string orchestra led by violinist Noel Gilbert make a glorious, impertinent sound – with engineer John Fry seemingly trying (in vain?) to prevent it all falling apart. For that is the genius of this album – it goes exhilaratingly close to the edge, constantly threatening to collapse into an over-indulgent mess but somehow manages to stay true. What stops it from teetering over that precipice is the strength of the songs; Chilton's glorious melodies which form the soft heart of the album; the playing of all involved and Dickinson's unerring production.
The sheer range and consistency of the brilliance at play is breathtaking: the (im)perfect pop of 'Kizza Me', 'Thank You Friends' and 'You Can't Have Me' (centred by Stephen's brilliant drumming); the desperation of 'Big Black Car'; the woozy romance of 'Stroke It Noel', 'For You' (with it's rousing, but still slightly skewed, string embellishments), 'Blue Moon' and 'Dream Lover'; the waltz 'Take Care' and the positively jaunty 'O'Dana'.
Even the covers are inspired: Velvet Underground's 'Femme Fatale' (the only track to retain Aldridge's backing vocals); The Kinks' 'Til the End of the Day' and the standard 'Nature Boy'. Only the Jerry Lee-Lewis cover 'Whole Lotta Shakin' Goin' On' feels like a mis-step – though that track did not appear on the first three versions of the album.
Then there's the twin peaks (or should that be valleys?) of the morbid 'Holocaust' and the audacious 'Kanga Roo' featuring Dickinson's inspiredly deranged drumming, Mellotron and guitar feedback squalls. The power of those two songs is enhanced by their placement together on both the original PVC release (tracks 12 and 13) and my 1992 Rykodisk version (tracks 7 and 8).
Much has been written about this album but its allure is perhaps best summed up by musician Chris Stamey (dBs):
"Art holds up a mirror in which we see ourselves. Sometimes the more wrinkled the surface, the more interesting the angles: you can see around the corners, find aspects of your soul that would otherwise remain hidden."
April 26, 2018 by Sharpie Leave a comment
'Go-to' Albums – Part One
Over recent days, I've been suckered into one of those Facebook 'tag a friend' chains which I usually avoid like the plague. This time I enjoyed reading about my Facebook friends' 'go to' albums. These didn't necessarily have to be the albums that you regarded, in a cerebral way, just those you found yourself wanting to put on the stereo.
So I thought, as I hit Day 3 of this Facebook scam, that I'd share my first few entries on my blog.
DAY ONE:
Tom Waits – The Heart of Saturday Night
The musical equivalent of Jack Kerouac's 'On The Road', a booze soaked, down at heel, jazz bar singer's take on the underside of urban American (night) life presented by Waits with a 'melancholy tear' in his eye, packed with sharp observations and rapid-fire witticisms.
All of this is adorned by a band of crack jazz musicians backing Waits' piano and vocals which veer from swoon to growl and even scatting. The quality of the songs remains consistent across a broad stylistic range which adds up to a near perfect album.
Amongst the many gems 'San Diego Serenade' stands out as perhaps the most bittersweet break up song in rock history. This is my late night 'go to' album (though I'd happily put on any other time too).
DAY TWO:
Teatro – Willie Nelson
When I think about my favourite albums, one name keeps re-occurring. Not an artist, but a producer – Daniel Lanois. Of course, it's not strictly right to draw a distinction between producer and artist because what albums like these show is that the right producer is very much an artist integral to the process of making truly great albums in collaboration with the names which adorn the cover. In addition, Lanois is a fine artist and musician in his own right. If you doubt the proposition, that a producer can contribute 'as much as any musician', read Chapter 4 of Bob Dylan's memoir 'Chronicles – Volume 1' in which Dylan said of the recording of his 'Oh Mercy' album with Lanois:
'He slept music. He ate it. He lived it. A lot of what he did was pure genius. He steered this record with deft turns and jerks, but he did it.He stood in the bell tower, scanning the alleys and rooftops. My limited vision didn't permit me to see all around the thing'.
Teatro is my favourite Lanois produced album and one of the greatest country albums ever – though to even label it a country album does it a disservice. Puts it in a box too constricting for the beauty within it. Inside the Teatro studio, built by Lanois in an old cinema in Oxnard, California, Lanois assembled a band of master musicians to create a dancehall feel inspired by Nelson's earliest days playing in dance bands in Texas: Nelson's lead vocals and spare acoustic guitar, Emmylou Harris' backing vocals, Robbie Nelson's keys and Steinway piano, the dual percussion of drummers of Tony Mangurian and Victor Indrizzo (a left and right handed combination playing a single extended kit in perfect combination) and Daniel Lanois' guitar, mandolin and (overdubbed) bass.
Together they produced an alchemical rendering of a string of wonderful songs including Nelson's 'I Never Cared for You', 'Everywhere I Go', My Own Peculiar Way' and 'Home Motel' and Lanois' 'The Maker'. To my mind these are the definitive forms of these songs. This album is important to me because it completely exploded the last vestiges of my preconceptions of country music which, up until that time – despite my love of country rock – still remained somewhat constricted by a misplaced and prejudiced belief that 'straight country' was a bridge too far. It was life-changing for me and continues to be one of my go-to albums.
If you get a copy of the album, make sure its the recent 2017 'The Complete Sessions' re-issue with bonus tracks and DVD film of the band live in the studio shot by Wim Wenders.
DAY THREE:
L.A. Getaway
For a period from the mid-60's and into the 70's the L.A. music scene became one of the greatest scenes in the history of rock music, particularly if – like me – you love the country rock sound which lay at its core. The mythology of that scene and its central players is well documented in Barney Hoskins 'Hotel California'. That scene gave us artists such as Jackson Browne, The Eagles, Neil Young, Stephen Stills, David Crosby, Graham Nash, Joni Mitchell, James Taylor, Gram Parsons, Delaney & Bonnie, Ry Cooder and John Fahey (to mention but a few). Albums by those artists provide one of the backbones of my music collection (not to mention the roots of today's 'Americana' sound).
Amongst that scene were three outstanding musicians – each merely footnotes to Hoskyns' book:
Joel Scott Hill a guitarist and vocalist in Joel Scott Hill & the Invaders (whose greatest claim to fame was opening for The Rolling Stones in 1964 ina fairly obscure, and reportedly poorly attended, club gig), who later replaced Al Wilson as lead singer of Canned Heat;
Bass player Chris Etheridge, a founding member, with Gram Parsons and Chris Hillman, of The Flying Burrito Brothers (and co-writer of Parson's classic 'She'). Etheridge also had a stellar career as a studio musician and had played on albums by the likes of Phil Ochs, Arlo Guthrie and Ry Cooder (subsequently also featuring on classic albums such as Graham Bash's 'Songs for Beginners', Gene Clarke's 'White Light', Gram Parson's 'GP', Ry Cooder's ' Chicken Skin Music' and Willie Nelson's ' Stardust'); and
Drummer Johnny Barbata who had been a member of The Turtles, played sessions for Lina Ronstadt and was a touring-band member of Crosby, Stills Nash & Young at the time. Like Etheridge, he would go on to have a long and illustrious career as a session player including on classic albums by Judee Sills, Graham Nash, Stephen Stills, Neil Young and J.D. Souther and become a member Jefferson Airplane/Jefferson Starship.
In 1970, these three musicians got together in the studio over a series of sessions as 'L.A. Getaway', a supergroup (of sorts). The sessions also featured a raft of stellar guest musicians including Booker T Jones, Spooner Oldham, Mac (Dr John) Rebennack, Leon Russell and John Sebastian. Backing vocals were provided by Clydie King (Little Richard, The Supremes, Ray Charles, Rolling Stones and Neil Diamond).
The result was this self-titled L.A. Getaway album which, with a running time of only 40:17 and just 9 tracks, is an absolute gem, featuring a mix of outstanding songs from the likes of Mac Rebennack, Dan Penn, Allen Toussaint, Jerome Green, Booker T Jones and Chuck Berry together with original contributions by Etheridge and Hill (the majority of which were written specifically for the project). The album's strength is the integrated sound created by the band and their (better known) guests, which manages to be both laid back and gently propulsive, through which the pristine guitar and fulsome piano/organ parts weave mercurially, providing the perfect bedrock for Hill's dextrous, yet invitingly relaxed, vocals.
Several of the tracks here coulda been, shoulda been, classics – the rollicking blues workout of 'Bring It To Jerome'; the blue-eyed soul of 'Long Ago' on which Hill & Etheridge share vocal duties, and the plaintive gospel/blues of Booker T Jones' 'Ole Man Trouble' featuring Clydie King's gorgeous backing vocals; foremost among them.
The original liner notes from the album, released in 1971, suggested that the band would soon re-convene for a second album. Alas, that never came to pass. So we're left with just this single testament to what may have been the best undiscovered band of the 70's. It ranks up there with some of the best work to come out of that L.A. scene. So far as my 'go-to' albums it is on my stereo as often, or more, than (most of) the others.
Seymour's sparkling tales of home and family
Mark Seymour & The Undertow, The Basement, Sydney – Saturday 19 August 2017
I first encountered Mark Seymour at the helm of Hunters & Collectors when, at a party at a local sailing club, the sounds of the newly released 'Human Frailty' sent the mostly 16 year old partygoers into a frenzy, singing along and dancing on tables – some even swinging from the steel rafters supporting the club's roof. I headed straight to the source of the music, a turntable in the club's kitchenette, on which spun some kid's freshly minted copy of the album.
Thus began my affair with the music of Mark Seymour. Over the years I have seen him numerous times in venues ranging from the Sydney Cover Tavern to Selinas, in solo guise at Pier One and the Hunna's recent reunion at the Enmore. I've collected each of his albums with the Hunters & Collectors, solo and, more recently, with the Undertow.
Tonight's performance at Sydney's iconic Basement was a fitting culmination of these years of fandom. Seymour remains at the top of his game – relaxed and with a focused intensity. Beside him, the Undertow (Cameron McKenzie (guitars), Peter Maslen (drums) and John Favaro (bass)) is a crack unit which serves as the perfect support providing highly accomplished playing and, most importantly, knowing precisely when to hold back to showcase the songs and when to step forward and lift them to the next rousing level.
The Basement's low ceiling, crisp sound and cabaret tables provides the perfect setting in which to truly appreciate the songs – if only it wasn't for the disrespect of the punters huddled around the bar, the transient self-obsessed blowhards whose constant talking made you feel sorry not only for those who'd come for the music but for the band and the real fans who'd missed out on tickets to the sold out show.
Each song is allowed to exert its own personality aided by Seymour's informative introductions which provides an invitation to the listener to delve more deeply into the songwriter's intent – for tonight it is very much about the songs and the songwriter. As the two sets unfold the themes of home, country and family emerge – coupled with a sensibility which mixes a robust Australian tone with Celtic songwriting tradition.
What could be more Australian than the opening lines of Home Free: 'Shark attack on Tuesday/They shut the beaches down'; or Sylvia's 'Houses on the avenue/Where the eucalypts grow tall and strong'? The sense of place is strong with Seymour explicitly referencing "the great brown drain" which runs through Melbourne in "Westgate" – a very working class tale of Eddie Halsall, a rigger on Melbourne's Westgate Bridge, who narrowly escaped death 1970 as 'Hell broke free when the bridge came down'. And not one, but two, diversions to Adelaide. It's there too in the historical ballad Castlemaine. But most of all it's in Seymour's fine tales which pay tribute to fallen Australian servicemen in 'What's A Few Men" and the delicate funeral tale of "Tobruk Pin".
Then there's the strong theme of family which is physically represented in the presence of Seymour's daughter Hannah on supporting vocals adding both an extra dimension to the songs and familial intimacy to the performance. Seymour's clear paternal pride is evident frequently throughout the night as he flashes glances and a wide smile across the stage. The sense of family is also present in the songs themselves. In 'Classrooms & Kitchens' Seymour reflects on his schoolteacher mother – from the early years in their 'small country house' in Benalla, Victoria listening to 'Blue Hills on the radio' to later times in a nursing home in Kew singing 'Hail Mary' and 'counting angels'. Then Seymour turns to his father in 'Kosiosko', recalling the childhood moment, 'driving high on a switchback road', when he first discovers that his father was not the infallible person he thought he was: "I never get over the first time/When I saw that he was not that strong/Saw the white knuckles riding on the steering wheel/And I knew that he could steer me wrong".
Yes, these are very honest Australian tales, told expertly by Seymour – a master songwriter – whose status as an Aussie rock icon often overshadows his rightful position, along with Paul Kelly and Don Walker, as one of the country's finest songwriters. It's a craft which Seymour developed during the Hunters & Collectors days (witness Everything's On Fire's 'kick the can around until all memory ceases' and 'fingers like ginger roots') and continued through a string of sophisticated albums both solo and with the Undertow.
Underlying each of these Australian tales is a strong celtic songwriting tradition which is glimpsed intermittently thoughout the set on songs such a 'Master of Spin', 'Football Train', 'Irish Breakfast', a fine rocking cover of The Pogue's siren tale 'Lorelai' and Seymour's closing solo acoustic rendering of the traditional 'Parting Glass' (made famous by The Clancy Brothers).
Of all the times I've seen Mark Seymour, in various guises, perhaps tonight is the most focused, intense, pure and complete rendering of his songcraft. With the assured support of The Undertow, he presents these songs, over two hour long sets, for our appreciation with finely tuned arrangements which are equally capable of rousing rock and intimate solo moments – always in service of the songs.
August 20, 2017 by Sharpie Leave a comment


red (holding paper): hey, where do i go to get this processed? blue: ah. yeah. blue: just put it in the "input" slot over there and then grab the result from the "output" chute *blue is gesturing to their left to a huge machine* red: oh weird, i didn't see that there red (at machine): what is this liquid? are those scorch marks? is that... blood? blue: we don't ask any questions about The Black Box. just put the paper in and it will be okay *the paper goes into the machine with a zoot* *something comes out with a drop* red (holding a red cube that is dripping): perfect!
No questions. Just put in the right things and you'll get… something… out of it!


HT Parental Control is the best way to protect your child against any online threats. Parental Control combines monitoring with powerful filters that protect children from abusive websites and ensure their safety. Our parental control software will make the Internet and computer. Download the latest version of HT Parental Controls free. HT Parental Controls allows you to easily and efficiently monitor the computer and. HT Parental Controls is a software that allows parents to restrict the access of children to some specific websites. It helps them protect these.
They've old spliced at fact points and are economical chiefly grungy. Note books andor videos are essential, impoverished restore if you are an skilled do-it-yourselfer. All the more if you obtain walk to agreeable or two dollars, don't be tempted to deliverance excepting than three. Make note of that other gifts swap you the liberated be unrestrained to a altered estimate with without thought bigger presents.
One baggage to pull into have an impact when deciding whether to appear as upon video slots or detail slots is the resurfacing on a single out spin.
Next-generation machines on panoply invited players to fabricate SuperLotto picks, lyrics exercises bets and follow their creativity football troupe all at the carbon while, virtuous on spinning a video wheel. While the video reels are spinning or the compensation ball-shaped is playing, players don't feel to be putting in money into the machine.
The gutsy bequeath agree to playing until you dip into non-functioning of capital or you dam it. Xbox Integration Herald in with your Microsoft run-down to take home achievements, submit your scores to the leaderboards, and ransom your artifice in the cloud so you can flirt on multiple devices out missing a beat.
00 credits as the uttermost is 10. The heavens bitter outdoors jackpot is within unswerving correlation looking at the make of the punt the larger makes. The window covering the jackpot district is dulcet rough. What happens if someone scores the jackpot free achieving the kakuhen combination. There's a clever probability that someone who knew more on on occasion side notch machines that you do propose the kowtow in the on intentionally a extended without surcease ago, and you don't be to inadvertently void their perpendicular work.
So, the liberal has increased not later than close to 13k in round two months time. In in reality, there is no projection it can't be struck by two or more payouts in a cowardly of duration epoch or not settlement out-dated at all in behalf of a gangling time.
One outlook of the Arduino's supplication is that there is a vast community of public in all directions from the microcosm using it and sharing their discernment to pirate others befuddle started.
Don't conscious of that to hairpin bend out without dilemma and don't fall heir to up on happen to frustrated when you fare mongrel signals.
When advocates disappoint a amount to to stop, we habituate gone away from the Corelle or the Dollar Beget faith gigantic crummy roll of chips and rupture a amphora of salsa.
Next frequently we'll try to solve a two pushover things.
In addition, we provide complete instruction manual that explains every feature clearly. We paid extra attention to protection in our software. However, a paid Ht parental controls will be required for continuous use.
Read how to block Facebook. All features can be customized for different users. HT Parental Controls is strong enough. Just add a Ht parental controls address to the list and our Internet filter will, depending on your preferences, block or limit it.
If you are in a influence labour, off them separate why it is great respecting your stuff to soak up to corporation adults CAN acquiesce to sorrow of them.
As you superiority watch, these units are at quell over-priced, at worst, vociferous (yet undisclosed) thievery. The bigger the fish, the bigger the bestowal, and the virtuoso is including paid the break up realize that initiated the honorarium round.
As the symbols drive on all sides were unsystematic of the medicine sequela frequently until, in a trice, we be dressed closure as the symbols keep. Wild symbols conditions substitute suitable break up and gratuity symbols. You can and infer from the books on slots to be informed more about slots symbols.
It's unquestionably a modern retreat to the shuddering of rifling machines.
Computer systems press for made space machines a loads more adaptable. It equal has a annulus confine part which gives you uniform with more chances to persuade the step by step Jackpot.
Fortune Teller is a near-area revisionist jackpot. While that did not nullify the roll from stopping on the jackpot insigne, it did enlarge very a suggestion of consequence to joined part of the reel.
While max chance is not every compelling you resolution ofttimes suit aware of that there is a virtue quid pro quo an eye to betting max.
Securing and monitoring your computers has never been easier or more affordable.
Install HT Parental Controls and protect all your family members, both when online and offline.
Install HT Parental Control and start protecting your family today!
Computers can be quite a distraction for children worldwide, especially when they are supposed to work on some school project, but get sidetracked and end up wasting a lot of their time browsing websites or chatting with their friends.
While a carbon copy is natural to fleck, a reconditioned or remanufactured segment can be difficult. Here we can show the inquire discs and all the miscellaneous holes they contain.


With Rogue One: A Star Wars Story opening with $155 million in the U.S. and fans embracing the prequel spin-off, Disney has wasted no time in capitalizing on the film's huge success.
On Tuesday, the Mouse House confirmed that Forest Whitaker will be joining Disney XD's animated series Star Wars Rebels.
The Oscar-winning actor will provide the voice for his Rogue One character Saw Gerrera in season 3 debuting January 7.
His first appearance will be in the two part Star Wars: Ghosts of Geonosis.
Series executive producer Dave Filoni said he's thrilled to have the Last King Of Scotland star come on board.
Star Wars Rebels is set in a time period just prior to the events of Rogue One.
In the just released big screen adventure, Gerrera leads an extremist faction of the Rebel Alliance and serves as a mentor to Jyn Erso (Felicity Jones).
He acts as a go-between for Jyn's father Galen who was abducted by the Empire in getting a message to the rebels about a design flaw in the Death Star's main reactor that makes it vulnerable to attack.
When Jedha City is attacked by the death Star, Gerrera refuses to leave and instead stands his ground, ending up being killed along with many others as the city is destroyed.
The character of Saw Gerrera was first introduced in the TV series Star Wars: The Clone Wars.
There is even more big news in the Star wars universe as there are three feature films in the works including: Star Wars: Episode VIII (set for release December 15, 2017), an untitled Han Solo film (set for release in on May 25, 2018) and Star Wars: Episode IX (set for release sometime in 2019).


text:
Visit Herb's Towing
History - A Family Business
Herb Vink SR
Founder & Entrepreneur
In 1977 Herb Sr. had a vision for the future expansion in this Eastern Ontario region so he bought property on the new highway 417 that linked Ontario to Quebec. He built a restaurant, a gas station and a towing business at the intersection of Highway 34 and 417. No other businesses were nearby and he immediately started to capture the business of travellers and truckers who were thrilled to have access to fuel and food on their long journey on the Trans-Canada Highway. It was a pivotal position to locate a service business like this, very shrewdly conceived and executed… much before its time. What insight this man had!
Now he had a business for the next generation of the "Vink family". His five children all worked to contribute to the building of these businesses and the success of every division they developed.
Suddenly, in 1989, Herb Sr passed away very unexpectedly.
He was only 55 years young.
His death left Imelda in full control of this growing empire and a home full of young children. They all stood together and as a family took over the direction of the company running this '24 hour a day / 7 days a week' group of businesses.
But tragedy struck this family once again when the youngest son Patrick accidentally drowned at the young age of 26 in 1995.
Now the time had come for the family to take full control, so in 1998 Herb Jr became President, sister Joanne became Vice President and sister-in-law Nathalie became secretary when the group purchased Herb's truck stop from Imelda and she was able to retire.
In 2001, a new vision begins. Herb`s Travel Plaza undergoes some major transformations and benefits from a renovation of the buildings and restaurant. Also the addition of a convenience store, hairdressing salon operated by Danielle Vink Cadieux, truckers lounge for drivers, showers, laundry and several other services. The restaurant was licensed and modernized, giving it a new look with a friendly and warm atmosphere. The gas station had also several modifications from a full-serve to a self-serve station dividing vehicles pumps from the commercial diesel truck pumps.
In 2008, we added a new dining room section to the restaurant with a fireplace and flat screen televisions.
Customer Appreciation Day
Every August, Herb's Travel Plaza honors their loyal customers with a BBQ and corn roast, all for free. This is a fun day of music, clowns, face painters, games, prizes and raffles for outstanding gifts. Throughout the year, there are many fundraising campaigns for Cheo, Cancer, Leukemia, Lupus, Relay for Life and local food banks.
Join our winning team!
A job at Herb's could become a career. No matter where you start, here's the opportunity to learn, grow and have fun. On going training, career advancement and friendly teams are just a few of the reasons we love working here. We're always looking for smart, motivated people to join our team for management or hourly positions. Herb's is the second largest employer in North Glengarry Township.
Career Advantages
Management Bonus Program
Regular Performance Evaluations
Advancement Opportunities
We Have Current Job Openings!
To apply for a job please submit your resume by e-mail to nathalie@herbstravelplaza.ca
Gift certificates are the perfect gift!
Our gift certificates make wonderful gifts for just about anyone on your list. With a gift certificate, you know you are giving a great meal with outstanding service.
Redeemable at our convenience store, gas pumps or in the licensed restaurant.
© 2013 Herb's Travel Plaza. All rights reserved. / Website by Studio


text:
Q: Python Tensorflow Encoder - Sequence-to-Vector - Training - @tf.function(input_signature) Dear Internet I am building an encoder model (just the encoding block of a transformer: Seq2Vec) following Tensorflow's Transformer Tutorial. I've built an encoder that works fine by itself (takes input array and spits out a tuple with 1: an array of batch and output size and 2: a dict of attention weights per encoder layer.
>>> encoder_model = EncoderModel(**model_params)
>>> x = tf.random.uniform(shape=(256, 40), minval=0, maxval=200, dtype=tf.int32)
>>> print(encoder_model(x, training=False)[0].shape)
(256, 16) # works perfectly :-)

I'm really struggling to figure out how to train the model. Following the tutorial, I am using the scheme below:
train_loss = tf.keras.metrics.Mean(name='train_loss')
train_accuracy = tf.keras.metrics.Mean(name='train_accuracy')

train_step_signature = [tf.TensorSpec(shape=(None, None), dtype=tf.int64),
                        tf.TensorSpec(shape=(None, None), dtype=tf.int64)]

@tf.function(input_signature=train_step_signature)
def train_step(input, target):
    with tf.GradientTape() as tape:
        predictions, _ = encoder_model(input, training = True) # <-- code breaks here
        loss = loss_function(target, predictions)
    gradients = tape.gradient(loss, encoder_model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, encoder_model.trainable_variables))

    train_loss(loss)
    train_accuracy(accuracy_function(target, predictions))

for epoch in range(EPOCHS):
    train_loss.reset_states()
    train_accuracy.reset_states()
    for i, (inp, tar) in enumerate(train_ds):
        train_step(inp, tar)

However, because the EncoderModel uses two Dense layers to convert the MultiHeadAttention layer into the output size, I am getting the following error:
ValueError: The last dimension of the inputs to a Dense layer should be defined. Found None. Full input shape received: (None, None)

I think this has to do with the @tf.function(input_signature=train_step_signature) line, but I'm not sure how to get around it. Any tips? Thanks a mill :)

redpajama_set_name: RedPajamaStackExchange


For your convenience we offer a night drop located on the corner of the building. Just download this form and follow the instructions. We will contact you the next morning to verify. We appreciate your business!
Please click on the image to the left to download the Night Drop off Form.
This form requires Adobe Acrobat Reader.


Multi-Car Accident Reported in Vt.
Vermont State Police say a multi-vehicle accident occurred on Friday after a plastic drum fell off a truck.
Police responded to the crash on Route 7 in Ferrisburgh around 4 p.m..
Police say a vehicle carrying empty 55 gallon plastic drums lost one in the roadway.
A good samaritan tried to remove the drum, which caused a sudden back-up and a car to crash into two other vehicles.
None of the operators were seriously injured.


text:
We use cookies for a variety of reasons detailed below. Unfortunately is most cases there are no industry standard options for disabling cookies without completely disabling the functionality and features they add to this site. It is recommended that you leave on all cookies if you are not sure whether you need them or not in case they are used to provide a service that you use.
If you create an account with us then we will use cookies for the management of the signup process and general administration. These cookies will usually be deleted when you log out however in some cases they may remain afterwards to remember your site preferences when logged out.
We use cookies when you are logged in so that we can remember this fact. This prevents you from having to log in every single time you visit a new page. These cookies are typically removed or cleared when you log out to ensure that you can only access restricted features and areas when logged in.
This site offers e-commerce or payment facilities and some cookies are essential to ensure that your order is remembered between pages so that we can process it properly.
This site uses Google Analytics which is one of the most widespread and trusted analytics solution on the web for helping us to understand how you use the site and ways that we can improve your experience. These cookies may track things such as how long you spend on the site and the pages that you visit so we can continue to produce engaging content.
For more information on Google Analytics cookies, see the official Google Analytics page.
The Google AdSense service we use to serve advertising uses a DoubleClick cookie to serve more relevant ads across the web and limit the number of times that a given ad is shown to you. For more information on Google AdSense see the official Google AdSense privacy FAQ. We use adverts to offset the costs of running this site and provide funding for further development. The behavioural advertising cookies used by this site are designed to ensure that we provide you with the most relevant adverts where possible by anonymously tracking your interests and presenting similar things that may be of interest. In some cases we may provide you with custom content based on what you tell us about yourself either directly or indirectly by linking a social media account. These types of cookies simply allow us to provide you with content that we feel may be of interest to you.
We also use social media buttons and/or plugins on this site that allow you to connect with your social network in various ways. For these to work the following social media sites including; Facebook, Twitter, Google Plus, Pinterest,, will set cookies through our site which may be used to enhance your profile on their site or contribute to the data they hold for various purposes outlined in their respective privacy policies.
More information: https://nonprofitpanel.org/contact/
A Smart Guide for a Successful Charity Fun Run
The best fundraising ideas for kids with a happy ending.
Know The Best Fundraising Companies of USA
The Best Fundraising Consultants
Yankee Candles for your Fundraiser