text:
Q: Series of sed commands work on command line, but not in a script I'm working with the .csv output of this SE data query which looks like this (only with 5022 entries):
"{
  ""id"": 281952,
  ""title"": ""Flash 11.2 No Longer Supported by Google Play""
}"
"{
  ""id"": 281993,
  ""title"": ""Netbeans won't open in Ubuntu""
}"

(And it has line ^M endings between [number], and ""title""). I need it to look like this:
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu

I fixed this in a certain text editor which shall remain nameless quite easily, but I wanted to make a script so that I don't have to do it again every time the query is refreshed & so others can use it. I used sed...
This series of commands works perfectly (although it may well be inefficient; it is just a trial-and-error solution):
# Print the ^M and remove them, write to a new file:
cat -v QueryR* | sed 's/\^M//' > QueryNew
# remove all the other junk:
sed -i 's/{//' QueryNew
sed -i 's/}//' QueryNew
sed -i 's/""//g' QueryNew
sed -i 's/^"//' QueryNew
sed -i '/,/{N;/\n.*title:\s/{s/,\n.*title:\s/,\ /}}' QueryNew
sed -i 's/^\s\+//' QueryNew
sed -i '/^\s*$/d' QueryNew
sed -i 's/^id:\ //' QueryNew
sed -i 's/,\ /,/' QueryNew
sed -i 's/\\//g' QueryNew

So, why doesn't this? Only the ^M and {} get removed, and everything else is still there.
#!/bin/bash
cat -v QueryR* | sed 's/\^M//' > QueryNew
sed -i '{
       s/{//
       s/}//
       s/""//g
       s/^"//
       /,/{N;/\n.*title:\s/{s/,\n.*title:\s/,\ /}}
       s/^\s\+//
       /^\s*$/d
       s/^id:\ //
       s/,\ /,/
       s/\\//g
}' QueryNew

I'm sure my mistake is really obvious...

A: I fixed it thanks to steeldriver & further tinkering. Unrefined but works.
sed  '{
       s/"{//
       s/}"//
       s/^"//
       /,\r/{N;/\n.*title.*:\s/{s/,\r\n.*title.*:\s/,/}}
       s/""//g
       s/^\s\+//
       /^\s*$/d
       s/^id:\ //
       s/\\//g
}' QueryR* | tee "$1"

translation:
s/"{// Remove "{
s/}"// Remove }"
s/^"// Remove " from start of line
/,\r/{N;/\n.*title.*:\s/{s/,\r\n.*title.*:\s/,\ /}} match ,\r on one line and [whatever]title[whatever]: on the next line, replace all that with ,
s/""//g Remove all the remaining double double quotes
s/^\s\+// Remove whitespace from start of lines
/^\s*$/d Remove empty lines
s/^id:\ // Remove id: and space after it
s/\\//g Remove backslashes (escape chars for " added to some title fields)
tee "$1" specify an outfile when running the script, for example ./queryclean newquery.csv

A: This is not exactly answering your question or solving your issue, but to get rid off the unwanted characters you can use tr:
cat QueryR | tr -d '}{:"'

and you'll get:

A: While the question asks for sed, one could work around sed's issues with Python:
from __future__ import print_function
import sys

with open(sys.argv[1]) as f:
     for line in f:
         if '""id""' in line:
            print(line.strip().split(':')[1],end="")
         if '""title""' in line:
            title = " ".join(line.strip().split(':')[1:])
            print(title.replace('""'," "))

This code is compliant with both python2 and python3 , so either will work
Sample run:
bash-4.3$ cat questions.txt
"{
  ""id"": 281952,
  ""title"": ""Flash 11.2 No Longer Supported by Google Play""
}"
"{
  ""id"": 281993,
  ""title"": ""Netbeans won't open in Ubuntu""
}"
bash-4.3$ python3 parse_questions.py questions.txt
 281952,  Flash 11.2 No Longer Supported by Google Play
 281993,  Netbeans won't open in Ubuntu

A: Three more approaches:

*

*awk
$ awk -F'": ' '/\"id\"/{id=$NF;}
              /\"title\"/{
                t=$NF;
                sub(/^""/,"",t);
                sub(/""$/,"",t);
                print id,t
              }' OFS="" file
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu

*Perl
$ perl -lne '$id=$1 if /id"":\s*(\d+)/;
             if(/title"":\s*""(.*)""/){print "$id,$1"}' file
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu

*GNU grep with perl compatible regexes and simple perl:
$ grep -oP '(id"":\s*\K.*)|(title"":\s*""\K.*(?=""))' file |
    perl -pe 'chomp if $.%2'
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu

A: Using cat -v to turn CR characters into literal ^M sequences seems fundamentally ugly to me - if you need to remove DOS line endings, use dos2unix, tr, or sed 's/\r$//'
If you insist on using sed, then I suggest you print the bits you do want, rather than trying to delete all the random bits you don't - for example
$ sed -rn -e 's/\"//g' -e 's/(.*): (.*)\r/\2/p' QueryR | paste -d '' - -
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu

You could get fancy and roll the quote removal into the key-value extraction by matching zero or more quotes at each end of the value sequence
$ sed -rn 's/(.*): \"*([^"]*)\"*\r/\2/p' QueryR | paste -d '' - -
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu

You could get really fancy and emulate the paste in sed by first joining pairs of lines on the ,\r$ ending and then matching the key-value pairs multiply (g) and non-greedily
$ sed -rn '/,\r$/ {N; s/([^:]*): \"*([^:"]*)\"*\r\n?/\2/gp}' QueryR
281952,Flash 11.2 No Longer Supported by Google Play
281993,Netbeans won't open in Ubuntu

(Personally I'd favor the KISS approach and use the first one).

FWIW, since your input appears to be over-quoted JSON, I'd suggest installing a proper JSON parser such as jq
sudo apt-get install jq

You can then do something like
$ sed -e 's/["]["]/"/g' -e 's/"{/{/' -e 's/}"/}/' QueryR | jq '.id, .title' | paste -d, - -
281952,"Flash 11.2 No Longer Supported by Google Play"
281993,"Netbeans won't open in Ubuntu"

which removes the superfluous quotes and then uses jq to extract the fields of interest - note that jq seems to handle the DOS-style line endings, so there's no need to to take special steps to remove those.
Change to jq '.[]' to dump all the attribute-value pairs.

Credit for inspiration and basic jq syntax taken from Overcoming newlines with grep -o

A: This is another script written in Ruby. It will retain the commas in title, which can be easily imported into any spreadsheet program without breaking the columns.
csvfile = File.open('query-fixed.csv', 'w')

File.open('QueryResults2.csv') do |f|
    content = f.read
    content.gsub!(/\r\n?/, "\n")
    content.each_line do |line|
        id, title = '', ''
        if line.match('\"id\"')
            id = line.split(':')[1].strip[0..-2]
            csvfile.write(id + ',')
        end
        if line.match('\"title\"')
            title = line.partition(':')[2].scan(/"(.*)"/)[0][0]
            csvfile.write(title + "\n")
        end
    end
end

After the program is run the produced output will look like these
281952,"Flash 11.2 No Longer Supported by Google Play"
281993,"Netbeans won't open in Ubuntu"

redpajama_set_name: RedPajamaStackExchange


I want to hear his voice one more time. This is the first thought that I had the moment I heard my cousin Danny had died. Danny died unexpectedly in the middle of the night. Danny died before I got the chance to say goodbye.
You need to understand how special Danny was. Anytime Danny saw me, he would shout out my name. He would welcome me. He would make me feel like I was the most important person in the world. When I heard Danny died, I wanted to hear his voice one more time.
This thought kept going through my head as I drove to the visitation and funeral, I want to hear his voice one more time.
At the visitation, a young lady shouted out, "I know I'm not supposed to cry, but I'm sad." Another person said, "I know that Danny is in a better place, but I want Danny to be here with me." I agreed, I wanted Danny to be near me, so I could hear his voice one more time.
At the funeral, the priest spoke about how special Danny was. He told stories about how Danny made him laugh; he told stories about how Danny was sometimes overly confident. I started to hear Danny's voice.
Sr. Rosemary also spoke at Danny's funeral. She told us that Danny wanted to be her top assistant. Danny told her that he knew he could help her with all of her responsibilities. I could hear Danny saying that.
A family friend got up to speak. He talked about how Danny loved to play games. He talked about how Danny loved to win. He also said Danny sometimes changed the rules if he didn't win. That sounds like Danny.
I know that we were there to say goodbye to Danny, but I kept hearing Danny speak through the words of these people that loved him like I did.
Several months have passed since Danny died. I decided to run a race in memory of Danny. While I was preparing for the race, I often imagined Danny cheering for me and I felt him watching over me.
Last weekend, I ran the race in memory of Danny. I wrote his name on my race day shirt. All along the race, people called out Danny's name. Danny continued to motivate me through others invoking his name.
At one point in the race, I was very tired. I started walking and wasn't sure that I could run any more. A man came from behind me, slapped me on the back and said, "Come on, Danny, you can do this." This man truly felt like Danny encouraging me directly.
I still wish that I could hear Danny's voice one more time. I still wish Danny was here with me. But mostly, I am thankful for the times that Danny is with me when I hear his voice through the words and actions of others.
When asked by a friend to find a story to help her young daughter cope with the loss of a family friend, I was suddenly inspired to write down my own experience of losing my cousin Danny. The words you just read poured out on the page and connected me to the Communion of Saints in a tangible way; I had taught my students about the Communion of the Saints in the classroom, but this experience of Danny's presence truly evoked an experience of the Communion of the Saints.
 Paul VI, Holemni Hac Liturgia (1968), no. 30, http://www.vatican.va/holy_father/paul_vi/motu_proprio/documents/hf_p-vi_motu-proprio_19680630_credo_en.html.
great piece of writing and reflection….sounds like the Disciples after the Crucifixion wanting to hear Jesus' voice one more time and then realized that they have……in the body of Christ that was all around them…..death has no more sting……just living memories…….do this in memory of me was Danny leading you on in the marathon…..the words become the Word……alive in our hearts.


text:
Q: Fill form multiple time before submit and insert counter I have created a form and a button in this form (add +) which allows me to insert the form multiple times before the final validation . For this I have created a list which receives the different insertions and a counter which allows me to know the number of insertions . but the problem is that when I click on (add +) the counter doesn't increment and I receive this error  :
core.js:6141 ERROR TypeError: ctx_r28.addaction is not a function
at AdvanceTableComponent_ng_template_46_Template_button_click_103_listener (advance-table.component.html:223)
at executeListenerWithErrorHandling (core.js:15192)
at wrapListenerIn_markDirtyAndPreventDefault (core.js:15227)
at HTMLButtonElement.<anonymous> (platform-browser.js:582)
at ZoneDelegate.invokeTask (zone-evergreen.js:402)
at Object.onInvokeTask (core.js:28499)
at ZoneDelegate.invokeTask (zone-evergreen.js:401)
at Zone.runTask (zone-evergreen.js:174)
at ZoneTask.invokeTask [as invoke] (zone-evergreen.js:483)
at invokeTask (zone-evergreen.js:1596)

and I can't insert data in my list.
my code
 <ng-template #editRecord let-modal>

                      Création des actions

                <button type="button" class="close" aria-label="Close" (click)="modal.dismiss('Cross click')">
                  close
                </button>

                <form [formGroup]="editForm" (ngSubmit)="onEditSave(editForm)">

                      Domaine *
                      <input type="text" class="form-control" placeholder="Domaine" formControlName="domaine" readonly=""
                        required>

                       Id probleme*
                      <input type="text" class="form-control" placeholder="id" formControlName="idprblm" readonly=""  >

                      Personne(s) à notifier *
                      <select class="form-control"  required>
                        <option value="2" selected disabled>Ahmed</option>
                        <option value="3" selected disabled>Hasssan</option>
                        <option value="1" selected >Choisissez les personn</option>
                      </select>

                       Cause du probleme*
                      <textarea type="textarea" class="form-control" formControlName="causeprblm" placeholder="Mentionner la cause source du probleme" ></textarea>

                      Action*
                      <textarea type="textarea" class="form-control" formControlName="action" placeholder="Mentionner l'action éliminant la cause"
                        ></textarea>

                      Responsable Action*
                      <input type="text" class="form-control" formControlName="respaction" placeholder="Mentionner le porteur de l'action"  required>

                      Date de réalisation *
                      <input type="datetime" class="form-control" formControlName="daterealisation" placeholder="Mentionner la date de réalisation objective"  required>

                      Statut *
                      <select class="form-control" formControlName="statut" required>
                        <option value="" selected disabled>Plan</option>
                        <option value="" selected disabled>Do</option>
                        <option value="" selected disabled>Check</option>
                        <option value="" selected disabled>Act</option>
                        <option value="" selected >Statut</option>

                      </select>

                      Méthodologie :

                          <input type="checkbox" class="custom-control-input" formControlName="methodologie" id="customCheck2">
                          8D

                      Escalade :

                          <input type="checkbox" class="custom-control-input" id="customCheck4">

                        <button  class="icon-button1" (click)="addaction()" style="background-color: #E8F7F4">
                          add_circle

                          {{countaction}}
                        </button>

                    <button type="submit" class="btn btn-primary" [disabled]="!editForm.valid">Créer</button>
                    <button type="button" class="btn btn-light" (click)="modal.close()">Close</button>

                </form>

            </ng-template>

TS file
  countaction :number = 0;
  actionlist: Array<object> = [];
  editForm: FormGroup;
   constructor( private fb: FormBuilder,){

 this.editForm = this.fb.group({
      domaine:  ['', [Validators.required]],
      idprblm:  ['', [Validators.required]],
      persnotif: [''],
      causeprblm:  ['', [Validators.required]],
      action:  ['', [Validators.required]],
      respaction:  ['', [Validators.required]],
      daterealisation:  ['', [Validators.required]],
      statut:  ['', [Validators.required]],
      methodologie:  ['', [Validators.required]],
      excalade:  ['', [Validators.required]],
    });}
//add action
  onAddAction(form:FormGroup) {
    this.actionlist.push(form.value);
    this.countaction = ++this.countaction;
  console.log(this.actionlist)
  }

A: I think there is simple fix for this problem, I have checked the HTML code and I found "addaction" which I believe is used to increment the count. But I didn't find any function with same name in the component, so you can add the function name in the ts file.
public addaction() {
   this.countaction = ++this.countaction;
   console.log(this.countaction);
}

Or,
public onAddAction() { // remove the parameter
    this.actionlist.push(this.editForm.value); // this will give you the form values
    this.countaction = ++this.countaction;
  console.log(this.actionlist)
  }

//in Html code

<button  class="icon-button1" (click)="onAddAction()" style="background-color: #E8F7F4"> // change the function name

   add_circle

    {{countaction}}

</button>


text:
Q: Laravel rate limit to return a JSON payload I'm building an API on top of Laravel. I'd like to use the built in rate limiting capabilities by using the Throttle middleware.
Problem is, when the throttle middleware triggers the response is:
// Response headers
Too Many Attempts.

My API uses an error payload in JSON that looks like the following:
// Response headers
{
  "status": "error",
  "error": {
    "code": 404,
    "message": "Resource not found."
  }
}

What is the best way to get the Throttle middleware to return an output in the manner I require?

A: I know it is a very old question but I have a very short solution for this problem.
Instead of creating new middleware, we can catch and handle the ThrottleRequestsException inside the Handler.php and return the JSON response accordingly.
app\Exceptions\Hanlder.php
<?php

namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
use Request;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\Exceptions\ThrottleRequestsException;

class Handler extends ExceptionHandler
{
    /**
     * A list of the exception types that are not reported.
     *
     * @var array
     */
    protected $dontReport = [
        //
    ];

    /**
     * A list of the inputs that are never flashed for validation exceptions.
     *
     * @var array
     */
    protected $dontFlash = [
        'password',
        'password_confirmation',
    ];

    /**
     * Report or log an exception.
     *
     * @param  \Throwable  $exception
     * @return void
     *
     * @throws \Throwable
     */
    public function report(Throwable $exception)
    {
        parent::report($exception);
    }

    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Throwable  $exception
     * @return \Symfony\Component\HttpFoundation\Response
     *
     * @throws \Throwable
     */
    public function render($request, Throwable $exception)
    {
        if ($exception instanceof ThrottleRequestsException && $request->wantsJson()) {
            return json_encode([
                'message' => 'Too many attempts, please slow down the request.',
                'status' => false
            ]);
        }

        return parent::render($request, $exception);
    }
}

A: Create a new file ApiThrottleRequests.php in app/Http/Middleware/ and paste the code below:
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Cache\RateLimiter;
use Symfony\Component\HttpFoundation\Response;

class ApiThrottleRequests
{
/**
 * The rate limiter instance.
 *
 * @var \Illuminate\Cache\RateLimiter
 */
protected $limiter;

/**
 * Create a new request throttler.
 *
 * @param  \Illuminate\Cache\RateLimiter $limiter
 */
public function __construct(RateLimiter $limiter)
{
    $this->limiter = $limiter;
}

/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request $request
 * @param  \Closure $next
 * @param  int $maxAttempts
 * @param  int $decayMinutes
 * @return mixed
 */
public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1)
{
    $key = $this->resolveRequestSignature($request);

    if ($this->limiter->tooManyAttempts($key, $maxAttempts, $decayMinutes)) {
        return $this->buildResponse($key, $maxAttempts);
    }

    $this->limiter->hit($key, $decayMinutes);

    $response = $next($request);

    return $this->addHeaders(
        $response, $maxAttempts,
        $this->calculateRemainingAttempts($key, $maxAttempts)
    );
}

/**
 * Resolve request signature.
 *
 * @param  \Illuminate\Http\Request $request
 * @return string
 */
protected function resolveRequestSignature($request)
{
    return $request->fingerprint();
}

/**
 * Create a 'too many attempts' response.
 *
 * @param  string $key
 * @param  int $maxAttempts
 * @return \Illuminate\Http\Response
 */
protected function buildResponse($key, $maxAttempts)
{
    $message = json_encode([
        'error' => [
            'message' => 'Too many attempts, please slow down the request.' //may comes from lang file
        ],
        'status' => 4029 //your custom code
    ]);

    $response = new Response($message, 429);

    $retryAfter = $this->limiter->availableIn($key);

    return $this->addHeaders(
        $response, $maxAttempts,
        $this->calculateRemainingAttempts($key, $maxAttempts, $retryAfter),
        $retryAfter
    );
}

/**
 * Add the limit header information to the given response.
 *
 * @param  \Symfony\Component\HttpFoundation\Response $response
 * @param  int $maxAttempts
 * @param  int $remainingAttempts
 * @param  int|null $retryAfter
 * @return \Illuminate\Http\Response
 */
protected function addHeaders(Response $response, $maxAttempts, $remainingAttempts, $retryAfter = null)
{
    $headers = [
        'X-RateLimit-Limit' => $maxAttempts,
        'X-RateLimit-Remaining' => $remainingAttempts,
    ];

    if (!is_null($retryAfter)) {
        $headers['Retry-After'] = $retryAfter;
        $headers['Content-Type'] = 'application/json';
    }

    $response->headers->add($headers);

    return $response;
}

/**
 * Calculate the number of remaining attempts.
 *
 * @param  string $key
 * @param  int $maxAttempts
 * @param  int|null $retryAfter
 * @return int
 */
protected function calculateRemainingAttempts($key, $maxAttempts, $retryAfter = null)
{
    if (!is_null($retryAfter)) {
        return 0;
    }

    return $this->limiter->retriesLeft($key, $maxAttempts);
}

}
Then go to your kernel.php file in app/Http/ directory and replace
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,

with
'throttle' => \App\Middleware\ApiThrottleRequests::class,

and use it
middleware('throttle:60,1')

or add
'apiThrottle' => \App\Http\Middleware\ApiThrottleRequests::class,

and you use this way
middleware('apiThrottle:60,1')

and help link
https://thedevsaddam.gitbooks.io/off-time-story/how_to_customize_laravel_throttle_message_response.html

A: Make your own shiny middleware, extend it by original, and override methods you like to be overriden.
$ php artisan make:middleware ThrottleRequests

Open up kernel.php and remove (comment out) original middleware and add yours.
ThrottleRequests.php
<?php

namespace App\Http\Middleware;

use Closure;

class ThrottleRequests extends \Illuminate\Routing\Middleware\ThrottleRequests
{
    protected function buildResponse($key, $maxAttempts)
    {
        return parent::buildResponse($key, $maxAttempts); // TODO: Change the autogenerated stub
    }
}

kernel.php
.
.
.
protected $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    //'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    //'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'throttle' => \App\Http\Middleware\ThrottleRequests::class
];

A: So what I did was create a custom middleware that extends the ThrottleRequest middleware. You can override the handle function to check the request and see if it expects JSON as a response. If so, call the buildJsonResponse function which will format a JSON 429 response. You can tailor the JsonResponse in buildJsonResponse to suit your API needs.
This allows your throttle middleware to handle both JSON and other responses. If the request is expecting JSON, it will return a JSON response, but otherwise, it will return the standard "Too Many Attempts" plaintext response.
Please note this came from the Laravel 5.6.x ThrottleRequests middleware, and it is possible that the base class has changed since then.
EDIT:
Fixed call to the wrong method in the case where the request isn't expecting JSON response, but the request is throttled. Should be $this->buildException($key, $maxAttempts); not $this->buildResponse($key, $maxAttempts);
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\JsonResponse;
use Illuminate\Routing\Middleware\ThrottleRequests;

class ThrottlesRequest extends ThrottleRequests
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  int  $maxAttempts
     * @param  float|int  $decayMinutes
     * @return mixed
     */
    public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1)
    {
        $key = $this->resolveRequestSignature($request);

        if ($this->limiter->tooManyAttempts($key, $maxAttempts, $decayMinutes)) {
            // If the request expects JSON, build a JSON response, otherwise build standard response
            if ($request->expectsJson()) {
                return $this->buildJsonResponse($key, $maxAttempts);
            } else {
                return $this->buildException($key, $maxAttempts);
            }
        }

        $this->limiter->hit($key, $decayMinutes);

        $response = $next($request);

        return $this->addHeaders(
            $response, $maxAttempts,
            $this->calculateRemainingAttempts($key, $maxAttempts)
        );
    }

    /**
     * Create a 'too many attempts' JSON response.
     *
     * @param  string  $key
     * @param  int  $maxAttempts
     * @return \Symfony\Component\HttpFoundation\Response
     */
    protected function buildJsonResponse($key, $maxAttempts)
    {
        $response = new JsonResponse([
            'error' => [
                'code' => 429,
                'message' => 'Too Many Attempts.',
            ],
        ], 429);

        $retryAfter = $this->limiter->availableIn($key);

        return $this->addHeaders(
            $response, $maxAttempts,
            $this->calculateRemainingAttempts($key, $maxAttempts, $retryAfter),
            $retryAfter
        );
    }
}

A: For anyone on laravel 8:
 RateLimiter::for("verify",function(Request $request){
        return Limit::perMinute(2)->by($request->ip())->response(function(){
            return response()->json(["state"=>false,"error"=>"Youve tried too many times"],200);
        });
    });

And then add the throttle middleware to your route


text:
<< La 3ème Compagnie du 3e REI... Transmissions des valeurs >>
Hagel Offers Condolences to French Defense Minister
WASHINGTON, Feb. 2, 2015 – DoD News
Defense Secretary Chuck Hagel called France's Minister of Defense Jean-Yves Le Drian today to offer his condolences on the Jan. 26 air tragedy in Spain, Pentagon Press Secretary Navy Rear Adm. John Kirby said in a statement issued today.
A two-seater Greek F-16 jet crashed after takeoff at a Spanish airbase during a NATO exercise, according to news reports. The two pilots died, as did nine French military members on the ground. As many as 20 people were reportedly injured. An investigation of the incident is ongoing.
Hagel extended his deepest condolences to Le Drian on the tragic loss of so many French airmen killed in the accident, and wished a speedy recovery to all those who were injured, Kirby said in his statement.
The French minister informed Hagel that there would be a national tribute tomorrow at the L'Hôtel des Invalides to honor the French killed in the accident, Kirby said. Hagel also offered assistance to Le Drian with the investigation, Kirby said.
Kirby said Hagel took the opportunity to affirm the Department of Defense's support for France in ongoing counterterrorism efforts following the attacks in Paris in January.
Le Drian thanked Hagel for the phone call, Kirby said, and both leaders said they both looked forward to the outcomes of the NATO Defense Ministerial in Brussels this week.
Published by RP Defense - dans France Le Drian USA Chuck Hagel NATO - OTAN TLP Armée de l'Air Air Force Defence Défense

redpajama_set_name: RedPajamaCommonCrawl


text:
You are here: Home » Bow Valley College » Bow Valley College President and CEO honoured with a Queen's Platinum Jubilee Medal
Bow Valley College President and CEO honoured with a Queen's Platinum Jubilee Medal
Calgary, Sept. 02, 2022 (GLOBE NEWSWIRE) — Bow Valley College is proud to announce its President and CEO, Dr. Misheck Mwaba, has been awarded a Queen Elizabeth II Platinum Jubilee Medal. Dr. Mwaba graciously accepted the award from the Lieutenant Governor of Alberta and the Premier of Alberta at a ceremony in downtown Calgary.
"Receiving this medal in honour of Her Majesty the Queen's Platinum Jubilee is an honour and a privilege," says Dr. Mwaba. "I am humbled by the distinguished meaning behind it and touched that it is in recognition of my service in post–secondary education, an industry I am passionate about and that continues to inspire me."
Dr. Mwaba is one of 7,000 Albertans who will be awarded the commemorative medal celebrating the 70th anniversary of the Queen's accession to the Throne. It is bestowed upon dedicated individuals who have contributed significantly to the province of Alberta.
Dr. Mwaba was appointed President and Chief Executive Officer of Bow Valley College in 2020, following his time as Vice President, Academic at the College. His contributions to the post–secondary system include finding innovative ways to make higher education more accessible. He has been recognized as a leader in implementing micro–credentials, including for his critical role in creating a national committee and a pan–Canadian College framework for micro–credentials.
In addition, Dr. Mwaba skillfully navigated Bow Valley College through the pandemic and was instrumental in developing cutting–edge virtual reality technology and a laboratory at the College. He has sat on many prestigious boards and committees at the federal and provincial levels.
"The Queen's Jubilee Medal is acknowledgement of Dr. Mwaba's dedication to post–secondary education, his enthusiasm for uncovering contemporary learning options, and removing barriers to students," says Shannon Bowen–Smed, Chair of the Bow Valley College Board of Governors. "He continues to support economic development in the province of Alberta, helping thousands of students realize their skills and build successful careers."
Dr. Mwaba is the first Black college president in Alberta history. Originally from Zambia, he is an inspiration to many, including the immigrant community.
About Bow Valley College
Calgary and region's largest Comprehensive Community College "" with 14,000 full– and part–time students, Bow Valley College helps Open Doors "" Open Minds to in–demand jobs in Calgary, Alberta, and Canada. Our graduates contribute to the digital economy, TV & film production, and serve on the frontlines for healthcare and social programs. One of Canada's top 50 research colleges, Bow Valley College invests in virtual reality (VR), Work Integrated Learning (WIL), micro–credentials, and foundational opportunities.
Dr. Misheck Mwaba receives Queen Elizabeth II's Platinum Jubilee Medal


text:
Statement: SoundExchange Answers Questions We Have Received about Direct License Offers
Many independent record labels and other rights owners have recently contacted SoundExchange with questions about offers that they have received from Sirius XM. According to these inquiries, Sirius XM is seeking to directly license the use of their recordings on Sirius XM's various digital radio platforms – including its satellite radio service, as well as its webcasting, business establishment and "cable radio" platforms – instead of relying on the statutory license that we administer.
We don't advise record companies about what is best for their individual businesses and, in any event, don't know the terms of Sirius XM's offers. However, it is our responsibility to ensure that all of our constituents have a full picture of the legal, regulatory and business landscape so that any decisions they make are fully informed. We're posting this to provide some of that background.
I. SoundExchange Fights for the Value of Music.
SoundExchange represents more than 100,000 artists and record labels. We are governed by a Board of Directors comprised equally of artist and record label representatives. We spend countless hours and millions of dollars fighting for the rights of artists and rights owners. We are guided by a single principle – all creators deserve fair compensation.
The royalties paid for digital radio by services such as Sirius XM, Pandora, and other digital radio providers, and paid to SoundExchange under the statutory license, are set in proceedings before the Copyright Royalty Board ("CRB") every five years. When the CRB sets a rate, it applies to all copyright owners. SoundExchange represents artists and rights owners in those proceedings and advocates for rates that fairly value your music. We've achieved meaningful increases in the statutory rates for webcasting and satellite radio in the past. In the last satellite radio proceeding, we obtained an increase in the rate paid by Sirius XM of almost 40% over the 5-year rate term (2013-2017).
Likewise, in previous webcasting rate proceedings, we've achieved consistent increases in the webcasting royalty rates, from $0.0008 in 2006 to $0.0023 in 2014, almost tripling the rate in that time.
The proceeding to set webcasting rates for the next term (2016-2020) has already started. As in the past, we are representing our artist and record label members against a well-funded and vast array of services, including Sirius XM, Pandora, iHeartMedia (formerly known as Clear Channel), and many others.
II. SoundExchange Distributes Royalties with Unprecedented Accuracy and Speed.
In the more than 10 years since we were created, SoundExchange has distributed more than $2 billion in royalties, and in 2013, we represented approximately 10% of total revenues for the U.S. recorded music industry. In everything we do, we are guided by the principles of efficiency, transparency and accuracy:
Efficiency – We have one of the lowest administrative rates in the industry – if not the lowest. For 2013, our administrative rate was 4.5% – which covers rate settings, royalty accounting, oversight, enforcement and audits on behalf of all of our members and other activities that labels otherwise might have to undertake themselves. And we distribute royalties almost as soon as they come in the door: Earlier this year, we instituted monthly payments for thousands of artists and record labels.
Transparency – The way we distribute royalties is spelled out by statute and regulations and we've always sought the maximum degree of precision from services that we can get. We have added more detail to statements over the years and have recently launched online portals so that artists and rights owners can have instant access to their SoundExchange data.
Accuracy – We devote substantial resources to registering artists and record labels to ensure that every penny is distributed to its rightful owner, and we continue to dedicate resources to correcting the insufficient data we receive from services. And we are building a comprehensive sound recording database based on information direct from the source – data that is constantly tested and corrected by those with a direct stake in its accuracy.
III. Artists Receive 50% of the Performance Royalties Paid to SoundExchange Directly and Immediately – Regardless of Recoupment.
When services use the statutory license administered by SoundExchange, artists directly receive 50% of the royalties – even if they don't own their masters. Specifically, 45% of the performance royalties are paid directly to featured artists, whether or not they own their masters or are "recouped". And SoundExchange pays 5% of all performance royalties to a fund for distribution to non-featured artists.
The ability of artists to participate directly and immediately in this stream of revenue is a core policy of the statutory license – and of SoundExchange.
It's a matter of public record that, in the past, Sirius XM specifically promised record labels that they could collect the artist share themselves and urged those labels to accept a lower rate as a result. Sirius XM suggested that even if the offered rate was lower than the statutory rate, the record label would nonetheless receive more revenue because it would receive the portion that would otherwise go to the artists. As the CRB itself noted in 2012, payment of 100% of the royalties directly to the record labels "avoid[s] the statutory apportionment of 50% to record companies and 50% to artists and performers" and "receipt of 100% of the royalties upfront [was] clearly attractive to certain record labels and was a selling point in negotiations with independent record labels." (emphasis added).
IV. In the Last Rate-Setting Proceeding for Satellite Radio, Sirius XM Used the Below Market Rates in Its Direct Licenses to Argue that the Royalties for All Rights Owners and Artists Should Go Down.
As in past rate proceedings, we expect that Sirius XM and other digital radio services will attempt to use a handful of direct license agreements as evidence of the webcasting rates that they argue should apply to all artists and record labels.
Indeed, the centerpiece of Sirius XM's case in the 2012 rate proceeding was the direct licenses it negotiated with some independent record labels at rates below the statutory rate. The CRB did not place great weight on those deals in part because they represented only a small sliver of the market. But the CRB did not reject the evidence of those direct licenses entirely, and it is not unlikely that Sirius XM will continue to use its direct licensing efforts in order to develop "evidence" for current and future rate proceedings.
While rights owners can and should strike whatever deal makes sense for them, they should be fully informed in their decision-making. The rates that the CRB sets will apply to all copyright owners and are available to all eligible services. Sirius XM and the other digital radio services are intensely focused on how market evidence will be used in their case, and you should be as well.
Please contact us at 202-640-5858 or info@soundexchange.com if you have any questions at all.


We may still be trying to wave goodbye to winter, but if you're even remotely green-fingered your thoughts are bound to be turning to what plants you want to grow this year. I've already spent a lovely afternoon with the kids planning what to grow on their plots, and a couple of evenings working out what I want to grow in our garden and allotment over the coming months. I've done my seed order and now it's a case of waiting for the weather to oblige – roll on spring!
If you're going to grow any plants from seed, you can make life easier and increase your chances of success by having the right basic kit before you start. While you're impatiently waiting to get started on the planting, it's a good time to review your kit and make any additions if required. Here are my top tips for what you need when it comes to growing seeds.
Basic pots and seed trays in a range of sizes are essential – I never seem to have enough. Please, please try to avoid plastic, there are alternatives widely available now and the more we choose them, the more pressure we create on suppliers to stop using plastic themselves. If you've already got a collection of plastic pots, re-use them as much as possible to limit their impact on the environment.
This is a recent addition to my gardening kit, and I really can't believe I've managed for so long without one. It's a very simple piece of kit which keeps your pots, compost and tools in one place for easy access, with a shelf for smaller items like seed packets and plant markers. It's light and portable so you can move it around easily and set it up at the right height for the kids to use as well.
You can't fill pots with compost without one of these – well you can, but your hands will get pretty mucky! Try to choose one with a strong scoop and a smooth handle which feels comfortable in your hand.
If you're gardening with children, make sure you have some smaller tools that they can handle easily – a trowel and a fork are usually enough. These smaller tools also come in handy for adult use when you're working on things like small pots; I always pinch Lily's little trowel for fiddly jobs as it gets the compost just where I want it without so much spillage. Children's gardening gloves are a must-have too, I'm always quite jealous of the fab patterns they tend to have.
Brilliant for dusting a light layer of compost on top of your seeds.
Unless you want to play a guessing game when your precious seedlings emerge, make sure you label every pot you plant up. You could even get crafty with the kids and make your own plant markers – have a look at my garden craft pinterest board for lots of ideas.
Your seeds will need watering gently to avoid washing them away or damaging young shoots, so you will need a 'rose' head attachment on your watering can. This is another area where tools aimed at kids come in handy; I always water seeds and seedlings with Lily's mini version, you can see just how much use it has had!
I can't wait to get really stuck into the seed growing for this year. What are your tips for the best kit when growing from seed?
As a gardener, I can swear how important these equipment are!! Thanks for the informative post.


We were among the sponsors of a very special event Thursday – The Triangle Tip-off Luncheon. Duke's Coach K, UNC's Roy Williams, NC State's Sidney Lowe and Lavelle Moton (the new hoops coach at NCCU) shared the dais. This gathering of basketball luminaries was worthy of an ESPN special, and TV5's Jeff Gravley asked some very thoughtful questions. It was not an X's & O's discussion; it was more about hoops philosophy, values and "what's on your iPod?"
Kudos to Hill Carrow and the Triangle Sports Commission for organizing this wonderful event. The confluence of ACC and Division 1 hoops in our community is unique. (NCCU is moving up to D-1.) The universities, their teams, the legendary coaches, the rivalries – it's a significant feature of our lifestyle in the Triangle. I herein implore the coaches to make it an annual affair!


text:
« The Jimmy Fallon Bump
Tweet Your Favorites of the Year »
Four Titles to Know & Recommend, The Week of Dec. 8
In the midst of all the assessments of the best books of the year, it's refreshing to look forward to some new titles coming out next week.
All the titles covered here, and a few other notable titles arriving next week, are listed, with ordering information and alternate formats, on our downloadable spreadsheet, EarlyWord New Title Radar, Week of Dec. 8, 2014
The Boston Girl, Anita Diamant, (S&S/Scribner; S&S Audio; Thorndike)
Diamant's fifth novel arrives just after the airing of a Lifetime two-part series based on her first and most well-known novel, The Red Tent. The author is profiled in the Boston Globe (unfortunately, a review of Lifetime's adaptation, in the same issue is not positive). The story of a Jewish immigrant growing up in early-20th-century Boston, as told by her 85-year-old self to her granddaughter. Booklist, calls it, a "graphic, page-turning portrait of immigrant life in the early twentieth century" and it has a significant amount of "love" on Edelweiss.
Here, Ric hard McGuire, (RH/Pantheon)
McGuire broke new ground when his 1989 comic strip was first published in Art Spiegelman's Raw magazine. This new book-length version is being celebrated with an exhibit at the Morgan library, which has been covered in the Atlantic magazine and in the New York Times. An interview with the author is coming on NPR's Weekend Edition Sunday.
Moriarty, Anthony Horowitz, (Harper)
We urged you back in October to read the galley of this book. It is People's Book of the Week, 12/15/14 and an IndieNext pick:
"I've been reading Sherlock Holmes pastiches for 20 years, but I've never read anything as devious as this! After the famous encounter between Holmes and Moriarty at Reichenbach Falls, Inspector Athelney Jones and Pinkerton Agent Frederick Chase are thrown together to combat the rising shadow of an American crime boss looking to take over Moriarty's empire. Horowitz wisely does not try to imitate Doyle's style, but instead comes up with a unique voice with several parallels to the Holmes and Watson dynamic. As soon as you finish, you'll want to read it again with a new appreciation for Horowitz's masterful plotting. Exquisitely done!" —Steven Sautter, Books Inc., San Francisco, CA
Irene: The Commandant Camille Verhoeven Trilogy, Pierre Lemaitre, (Quercus/MacLehose)
IndieNext, Dec — "This extremely suspenseful, fast-paced crime novel is not for the fainthearted. Its graphic violence may turn some readers away, but those who stick through the opening scenes will be richly rewarded by following Commander Verhoeven's pursuit of a monstrous serial killer who models his gruesome crimes on scenes from classic crime novels. The intense action is enriched by scenes from Verhoeven's domestic life, as well as the interactions among the distinct personalities of his Paris detective squad." —Joe Strebel, Anderson's Bookshops, Naperville, IL
This entry was posted on Friday, December 5th, 2014 at 11:51 am	and is filed under 2014 -- Fall, New Title Radar. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.


Agra, Feb 16 (IANS) Several shops and business establishments in Uttar Pradesh's Agra city downed their shutters on Saturday morning to protest the terror attack on a CRPF convoy in Jammu and Kashmir's Pulwama district that left 49 troopers dead.
Groups of people went around markets and localities, shouting slogans against Pakistani leaders and torching their effigies and the Pakistani flag.
Meanwhile, the last journey of Central Reserve Police Force (CRPF) trooper Kaushal Kumar Rawat, a resident of Kahrai village, was attened by thousands of people who were joined by Cabinet Minister S.P. Singh Baghel and several leaders of the Bharatiya Janata Party and senior district officials. His body arrived here in the wee hours.
Rawat's family told the media that they only hope his martyrdom does not go waste and a fitting reply be given to the enemy.
His daughter Apoorva, who works for a private airlines in New Delhi, said only two days ago she had a telephonic conversation with her father.
Rawat leaves behind his wife, daughter and a son. He had been recently transferred and was on his way to Srinagar from Siliguri when the tragic explosion took his life.
Family members have offered to give land for a memorial in the village.
The Uttar Pradesh government had announced Rs 25 lakh each for the families of the 12 troopers from the state who were killed in the attack and a job to one member of the bereaved family.


sweetee111 sweetee111 jasmin. MissDolly69. Pleasurecouplexx. YourAlinka.
EnticingKaraMillerAliceAlexCoopxSexTransClass .MimiLafleursyminaSubmisiveNobleMagicBabyCute .NaughtyMagdalenaJessicaJanssenPleasurecouplexxNickyWarm .AlexCoopSarahJanePDXHaveToPlayYummyLambert .HaveToPlayNickyHotGirlGinnyCarterVINCENTX2 .CurlySelenakatherinsenxualNickyWarmSusanYoungSexy .MonaPearlBigAlainCurvyPhoebeKISSableMUTYA .KISSableMUTYAQUEENANUEHaveToPlayYummyLambert .PHERLAMATUREBonnieKISSGinnyCarterRagnnya .MichellFun1katherinsenxualAgnessDREAMbests3xsome .NickyWarmMissAliannaXxASIANsexDOMxXSexyHelga4u .
BraxxtonBanxLumberBonnieKISSViktoriaStar .xSexTransClassPleasurecouplexxBonnieBeautyTHeWildShow .CrystalMidoriBbReadyForFunsyminaBonnieBeauty .JessicaJanssenCurlySelenaAprilnightbests3xsome .THeWildShowjimmyboomHollyNortonXNaughtyMagdalena .BonnieKISSAdinaMOORBbReadyForFunKISSableMUTYA .modernbettiepageNathalyCanoHollyNortonXTHeWildShow .ChloeConnerCloversissyAgnessDREAMbests3xsome .sexyrachel846jimmyboomCurlySelenaKISSableMUTYA .VanessaPrincessYoungSexyLovelyCuteROMAf0rULuvXMeBaby .HollyNortonXLinaLaiXRosieRain19SweetAlizee .


The mineromedicinal Spring in Caldes d'Estrac is heated and mineralized at 2,800 meters depth, emerging at 38.8°. This is magnificent and unique pure crystalline water, which is constantly flowing in the Balneari, preserving its biological, physical and chemical properties, with a huge healing and therapeutic potential.
The salt therapy, known as halotherapy, consists in neutralization of the negative and dense energies with the salt ions. It stimulates cilia movement, helps the natural defensive reactions of the human organism and is also useful in the treatment of allergies.
This is a unique and traditional treatment of the Balneari with mineromedicinal water, flowing directly from the source and constantly renewed, maintaining its temperature at 38.8 degrees, as well as its original chemical and physical properties.
At our Health Resort you can request physio / quiro therapy, osteopathy and therapy with babies. If you wish to pamper your body, you can also enjoy a facial treatment or a revitalizing and detoxifying wrap.
The mineromedicinal and therapeutic properties of the thermal water make it ideal for the treatment of health problems and strengthening of the immune system for all those who benefit from it.
Because of its physical and chemical properties, our water regenerates the skin and stimulates the cells. Furthermore, it is an excellent system to enhance wellbeing and comfort feeling.
It includes accommodation in Calella Hotel Volga ****, meals on full board, double rooms for shared use and private transportation to the Balneari. Basic thermal treatments, recognition and medical monitoring by Dr. Màrius Biscarri.


text:
One month in, we've learned a lot about the Ukraine scandal
By David LauterSenior Editor
Oct. 18, 2019 8:46 AM PT
A madly spinning news cycle has characterized the Trump presidency since Day One: Controversies that might once have played out over a week rise and fall in a day, swept aside by another and another and another.
The White House announcement that President Trump would host next summer's Group of 7 meeting at his Doral resort in Florida, for example, got overshadowed within the course of a single news conference, as White House acting Chief of Staff Mick Mulvaney committed the classic Washington error of unintentionally speaking the truth.
And so, it's worth pausing for a moment to note that we're just now four weeks into the Ukraine scandal that has generated an impeachment inquiry in the House. The story, like few others in the Trump era, has dominated political news for a month. And already, it's reached a stage of public knowledge and impact that in the Watergate scandal of the 1970s took a year.
Newsletter: Sign up for Essential Politics
Essential Politics is published Monday and Friday.
WHAT WE KNOW NOW
The initial White House strategy in the impeachment investigation was to stonewall.
In a letter 10 days ago, White House Counsel Pat Cipollone denounced the impeachment inquiry as "baseless" and "unconstitutional" and said the executive branch "cannot participate." Administration officials attempted to block witnesses from appearing for depositions requested by House investigators.
That effort largely failed, foiled by quick subpoenas from the House and the willingness of current and former high-ranking officials to defy the White House and parade to the high-security room in the basement of the Capitol where Rep. Adam B. Schiff (D-Burbank), the chairman of the House Intelligence Committee, and his colleagues and staff have interviewed them, often for 10 hours or more at a stretch.
Trump, who offers no loyalty to those who work for him, has received little in return.
The White House has had more success in preventing House investigators from getting documents, as a host of executive branch agencies, including the State Department and the Office of Management and Budget, have refused to comply with subpoenas. That could lead to a battle in court but also may provide grounds for an impeachment count related to obstruction, Democratic leaders have warned.
Schiff has kept the full testimony under wraps, justifying the secrecy as necessary to prevent witnesses from coordinating their stories or concocting covers. The committees will release transcripts, redacted to remove classified information, once the investigative part of the impeachment process ends, he told House members this week.
Despite that, enough of the testimony has reached the public -- including opening statements from several witnesses and text messages among diplomats that Schiff released -- to significantly fill out the case. And the plethora of leads has complicated Democratic efforts to wrap up the case before Thanksgiving, Jennifer Haberkorn reported.
The evidence to date, much of which is not disputed, shows Trump personally played the central role in holding up military aid that the Ukrainians viewed as crucial to their security and insisting that the price of releasing it would be a Ukrainian announcement of investigations into his political opponents.
The evidence shows that in the spring, Trump told Mulvaney to hold up some $400 million in military aid to Ukraine that Congress had appropriated.
National security officials who asked about the delay in the aid did not receive an explanation. But Trump told U.S. diplomats and Energy Secretary Rick Perry, who was one of the administration's chief contacts with the Ukrainians, that to resolve the situation, they needed to discuss it with his personal lawyer, Rudolph W. Giuliani.
The message from Trump was direct, Perry told the Wall Street Journal in an interview: "Visit with Rudy." On Thursday, Perry announced his resignation.
Giuliani and two associates, Lev Parnas and Igor Fruman, meanwhile, held several meetings with Ukrainian officials aimed at getting the newly elected government of President Volodymyr Zelensky to announce an investigation into a gas company, Burisima, on the board of which Hunter Biden, the son of the former vice president, once sat.
They also wanted an investigation into whether Ukrainians had played a role in the hacking of the Democratic National Committee's computer system in 2015 and 2016 -- break-ins that U.S. intelligence have identified as coming from two Russian military cyber-warfare units. The theory that the hack came from Ukraine, not Russia, has circulated on right-wing media, without evidence, as a way of discrediting the investigations into Russian efforts to help Trump in the 2016 election.
Giuliani's involvement so disturbed national security officials that John Bolton, Trump's former national security advisor, told one of his deputies, Fiona Hill, to report the matter to White House lawyers.
"I am not part of whatever drug deal Sondland and Mulvaney are cooking up," Bolton said, according to Hill's testimony, referring to Gordon Sondland, the U.S. ambassador to the European Union, whom Trump had tapped to help coordinate the Ukraine effort.
Parnas and Fruman were arrested just over a week ago as they tried to leave the country and were charged with violating campaign finance laws. Prosecutors from the U.S. attorney's office in Manhattan, which Giuliani once headed, are handling that case and are also looking at Giuliani's activities, according to people with knowledge of the investigation.
Sondland, testifying Thursday, explicitly implicated Trump.
"I would not have recommended that Mr. Giuliani or any private citizen be involved in these foreign policy matters," he said in his opening statement.
"However, based on the President's direction, we were faced with a choice: We could abandon the goal of a White House meeting for President Zelensky, which we all believed was crucial to strengthening U.S.-Ukrainian ties and furthering long-held U.S. foreign policy goals in the region; or we could do as President Trump directed and talk to Mr. Giuliani to address the President's concerns."
He also testified that he knew Giuliani was demanding that the Ukrainians specifically say they were investigating Burisima but that he did not know until much later that Burisima was connected to Hunter Biden, a denial that Democrats find hard to believe.
Sondland, special envoy Kurt Volker and other U.S. diplomats worked through the spring and early summer to get the Ukrainians to issue a statement that would meet Giuliani's terms.
Then, on July 25, Trump spoke by phone with Zelensky. When Zelensky reminded Trump of his country's desire to buy U.S.-made Javelin antitank weapons, Trump, according to the account of the call that the White House released last month, responded: "I would like you to do us a favor though."
He then went on to ask Zelensky to meet with Giuliani and specifically mentioned Biden.
As that evidence has unfolded, the White House has backed away from its insistence that there was "no quid pro quo" in Trump's statements. Mulvaney made that explicit Thursday in a briefing for reporters. He later tried to take back his statement, but his words were clear:
"Absolutely. No question about that," he said, acknowledging that Trump wanted Ukraine to investigate. "But that's it, and that's why we held up the money."
To those who would see that as a problem, he had a simple response: "Get over it."
HOW THE PUBLIC SEES IT
In the days immediately after the scandal first broke and House Speaker Nancy Pelosi announced the start of the impeachment inquiry, polls found a significant shift in public opinion, moving toward support for impeaching Trump.
Since then, support appears to have hit a plateau, most polls indicate. Democrats, who were divided over impeachment before the Ukraine news, now overwhelmingly support it. A large majority of Republicans have consistently opposed it.
New data released Thursday by the nonpartisan Pew Research Center show that about 9% of Americans have changed their views from opposition to support for impeachment since before the Ukraine stories broke. Most of those who shifted were Democrats, although about one in three were Republicans.
The number who have changed their minds is not huge, but in a country that's deeply divided by partisanship, where the last election was determined by a tiny handful of voters in three key states, it's a notable shift.
It's also significant that multiple polls have shown Democrats more united on the issue than Republicans, with a significant minority of Republican voters seeing Trump's actions as inappropriate and a smaller, but still notable, minority seeing them as impeachable.
"Get over it" may suffice to hold Trump's core supporters -- and with them the senators necessary to stave off conviction in the Senate -- but it's a risky strategy for ultimately saving Trump's presidency.
SYRIA AND THE MELTDOWN
In the midst of the impeachment fight, Trump angered key Republican lawmakers by acquiescing in a Turkish attack against Kurdish forces in Syria who had served as key U.S. allies in the fight against the Islamic State militants.
As Noah Bierman and Sarah Wire wrote, Trump's move to pull out a small contingent of U.S. troops that had served as a buffer between Turkish and Kurdish forces brought angry denunciations from senior Republicans, like Sen. Lindsey Graham of South Carolina.
"This will be a disaster worse than President Obama's decision to leave Iraq," Graham said.
On Wednesday, the House passed a resolution condemning Trump's pullout, 354 to 60, with a majority of Republicans voting against the administration.
Later that day, Trump met with the congressional leadership and delivered an angry diatribe aimed mostly at Pelosi, which she characterized as a "meltdown."
On Thursday, Vice President Mike Pence arrived in Ankara, Turkey, on an urgent mission designed to salvage something from a foreign policy debacle. After about five hours of talks, Pence signed off on an agreement that gave the Turks almost everything they wanted, Eli Stokols reported from the scene.
Trump's words and actions on Syria show his core, isolationist beliefs on foreign policy and provide strong suggestions of what he might do if he's reelected, Doyle McManus wrote in his column.
THE DEMOCRATIC CAMPAIGN
The Democratic candidates held their fourth debate this week, as Melanie Mason, Evan Halper and Bierman wrote. Sen. Bernie Sanders looked healthier, Mayor Pete Buttigieg and Sen. Amy Klobuchar seemed feistier and Joe Biden didn't commit any egregious faux pas, Mark Barabak noted in his takeaways from the debate. In short, the encounter seemed to largely cement the status quo.
The most notable aspect of the debate, as Janet Hook noted, was that rival candidates largely treated Sen. Elizabeth Warren as the front-runner.
As Hook wrote before the debate, Warren, 70, has succeeded in conveying an image of relative youth and vigor without ever specifically mentioning the ages of Biden, 73, or Sanders, 78. At least one recent survey found that most voters, asked to guess candidates' ages, believed Warren was in her mid-60s while correctly pegging Sanders' and Biden's ages.
Halper reported on one of the most notable aspects of this year's Democratic campaign: billionaires are the target to an extent that goes beyond any attacks on concentrated wealth seen since the 1930s.
Speaking of billionaires, Tom Steyer spent $47 million in 84 days on his presidential bid, Seema Mehta reported. That's bought enough name recognition to get him into the debates, but going further will require the former hedge fund manager turned political activist to surmount some big hurdles.
Meanwhile, Mehta reported, Biden's poor fundraising has left his campaign with much less cash on hand than his main rivals.
Of course, Biden's fundraising isn't so bad if you compare him with Wayne Messam, the mayor of Miramar, Fla. Messam says he's running for president, but is he really? As Melissa Gomez reported, he reported raising $5 in the third quarter.
"I'm still technically in the race," he told her.
That wraps up this week. Until next time, keep track of all the developments in national politics and the Trump administration on our Politics page and on Twitter @latimespolitics.
Send your comments, suggestions and news tips to politics@latimes.com.
If you like this newsletter, tell your friends to sign up.
david.lauter@latimes.com
David Lauter
David Lauter is a senior editor at the Los Angeles Times, based in Washington, D.C. He began writing news in Washington in 1981 and since then has covered Congress, the Supreme Court, the White House under Presidents George H.W. Bush and Bill Clinton and four U.S. presidential campaigns. He served as Washington bureau chief from 2011 through 2020. Lauter lived in Los Angeles from 1995 to 2011, where he was The Times' deputy Foreign editor, deputy Metro editor and then assistant managing editor responsible for California coverage.
Blinken visits the Palestinian West Bank, where residents are disillusioned and leaders are angry
George Santos stepping down from committees amid ethics issues
Latest Politics
New grand jury is examining Trump hush money, reports say
Blinken urges calm, supports Palestinian state in meeting with Israel's Netanyahu
'Amtrak Joe' Biden hails plans for big East Coast tunnel fix
California fines detention center operator $100,000 over immigrants' working conditions


We can now use Amazon Simple Queue Service (SQS) to trigger AWS Lambda functions! This is a stellar update with some key functionality that I've personally been looking forward to for more than 4 years. I know our customers are excited to take it for a spin so feel free to skip to the walk through section below if you don't want a trip down memory lane.
SQS was the first service we ever launched with AWS back in 2004, 14 years ago. For some perspective, the largest commercial hard drives in 2004 were around 60GB, PHP 5 came out, Facebook had just launched, the TV show Friends ended, GMail was brand new, and I was still in high school. Looking back, I can see some of the tenets that make AWS what it is today were present even very early on in the development of SQS: fully managed, network accessible, pay-as-you-go, and no minimum commitments. Today, SQS is one of our most popular services used by hundreds of thousands of customers at absolutely massive scales as one of the fundamental building blocks of many applications.
AWS Lambda, by comparison, is a relative new kid on the block having been released at AWS re:Invent in 2014 (I was in the crowd that day!). Lambda is a compute service that lets you run code without provisioning or managing servers and it launched the serverless revolution back in 2014. It has seen immediate adoption across a wide array of use-cases from web and mobile backends to IT policy engines to data processing pipelines. Today, Lambda supports Node.js, Java, Go, C#, and Python runtimes letting customers minimize changes to existing codebases and giving them flexibility to build new ones. Over the past 4 years we've added a large number of features and event sources for Lambda making it easier for customers to just get things done. By adding support for SQS to Lambda we're removing a lot of the undifferentiated heavy lifting of running a polling service or creating an SQS to SNS mapping.
Let's take a look at how this all works.
I've been helping out on a project recently where we're doing a number of integrations with third-party services. The integration platform is built on AWS Lambda and the Serverless framework.
In last couple of years, we have observed evolution of several message brokers and queuing services which are all fast, reliable and scalable. While the list is long, in this blog, I will limit the discussion to SQS, Kinesis and Kafka. Simple Queuing Service (SQS) is a fully managed and scalable queuing service on AWS. Kinesis is another service offered by AWS that makes it easy to load and analyze streaming data and also provides the ability to build custom streaming data applications for special requirements. Apache Kafka is a fast, scalable, durable, and fault-tolerant publish-subscribe messaging system which is often used in place of traditional message brokers like JMS and AMQP because of its characteristics like higher throughput, reliability and replication.
While making decisions about which messaging system is right for you, it is important to understand not only the technical differences but also the implications of operational costs both in terms of running them at scale as well as monitoring them. In this blog, I will touch upon our experiences and learning at OpsClarity, based on our evaluation of messaging systems and our migration from SQS to Kafka.
The Gold Standard for modern cloud-native applications is a serverless architecture. AWS Lambda allows you to implement scalable and fault tolerant applications without the need of a single virtual machine.
You don't need to manage a fleet of virtual machines anymore.
Deploying new versions of your code can be entirely controlled by API calls.
This article shows you how to process asynchronous tasks serverless. Possible use cases are: sending out massive amounts of emails, transcoding video files after upload, or analyzing user behavior. An SQS queue will be used to decouple your microservice from other parts of your system. You'll learn how to implement the microservice with AWS Lambda.


Mark Twain wasn't much of a rugby enthusiast but his quote, "history doesn't repeat itself, but it often rhymes" rings true to our sport.
I thought as much standing pitch side at the RDS on Saturday watching the champions of Europe reach another level. The Channel 4 set-up provides ex-players/pundits with an important perspective (my scarf providing colleagues with plenty of fodder).
Seeing Toulouse shoulders sag I remembered when the feeling was reversed. That's where the famous French club currently exist – they are contenders again, and this also relates to Munster the night before in Gloucester; both teams have similar traits to Leinster in the mid-2000s. Before the flood of trophies.
Sure, Munster and Toulouse possess a history we could only dream about back then, with six European titles between them, but that means nothing in the context of recent seasons. The current teams have no medals to show the grandkids, nothing to reinvigorate historically elite organisations. Nothing to compare with gold stars embroidered on their jerseys.
It may take a few more attempts to knock Leinster off their perch but they are on the right track while other clubs struggle to find any sort of coherent path at all.
The psyche of those in search of silverware is something my generation of Leinster player would understand. We had some success with Ireland before the 2009 Grand Slam; Triple Crowns and a Celtic League Cup, but fell short of major titles and usually in circumstances when we naively believed we were ready, only to painfully discover there was a long way still to travel.
Munster players understand what I mean. Toulouse are beginning to realise experiences like Saturday in Dublin have to happen as much as we needed to be thumped in Limerick and the south of France.
You always have a choice: keep repeating the same preparation and accept the beatings as your lot in life, or learn and evolve. Watching the impact made by Joey Carbery and Tadhg Beirne this season, with last Friday night in Kingsholm as good an example as any, it seems like Munster have added the necessary pieces to a puzzle that left them feeling cold when losing the 2017 Pro12 final to Scarlets, and all those semi-finals Peter O'Mahony is sick to the teeth talking about.
Leinster experienced a similar change in mentality when Rocky Elsom and Isa Nacewa were added to our ranks in 2008. That Munster's newest men are Irish internationals only adds to their overall value and shows how far the system has progressed.
I get where Munster are at. I understand their pain, the motivation that drives them every day to get better, and it is clear that they only need to take a few more steps in their current trajectory before they are 80 minutes away from grabbing hold of a trophy last captured in 2008.
Eleven years of waiting is a very long time in sport. They have had to completely alter how they go about playing and behaving under five different head coaches. We experienced similar problems from the Gary Ella season (2003/04) and it took several misfiring campaigns, along with coaching and player turnover before we were crowned European champions. It definitely starts away from the field.
Ulster are perhaps only realising this now. They must continue to rebuild their squad next summer, so victory over Racing 92 shouldn't be seen as anything more than it was – a flawed but courageous home result. They remain heavily reliant on five or six players and while they can afford to lose one, even two, John Cooney and Iain Henderson, the likes of Will Addison, Jacob Stockdale, Jordi Murphy and Rory Best need to be on the field for every big game. The strain on their understrength squad will only be evident in April.
Dan McFarland's primary role this season is to grow a collective belief system.
Consistently high levels of performance always stem from the same source – a team's internal culture.
Toulouse are the same, more advanced than Ulster if slightly adrift of Munster's rising stock. They came to the toughest place in Europe to win a rugby game and left completely knackered but with valuable lessons.
I suspect they will grow from the experience (like Munster have since last season's semi-final defeat to Racing 92).
You see plenty watching pitch side. The champions were so clever in how they coped with the diagonally blowing gale.
Injuries across the board made it seem like a real opportunity for Toulouse but the quality of Leinster's coaching staff to construct a very simple plan proved the difference.
I don't think people fully understand how hard it is to keep 70 per cent possession for 40 minutes while running into a head wind. Toulouse barely touched the ball in the first half. They celebrated a turnover after 40-odd phases like it was points on the board but they were too wrecked, from all the defending, to construct a multi-phase attack of their own.
The kicking option was almost completely removed from the equation. Only Luke McGrath at scrumhalf could put boot to ball and only when he was near the left touchline. The wind was that strong. Think about the levels of discipline required, and look who delivered for Leinster: Rhys Ruddock and Jack Conan relentlessly carried with immaculate ball presentation (a clear improvement from the Munster loss).
Jordan Larmour's cleanout on Yoann Huget, two phases before Conan's try, was straight from the Fergus McFadden school of excellence. When Garry Ringrose threw the big pass over the top for Adam Byrne to step inside Maxime Medard something clicked in Larmour's brain: there is no offload here, so he pivoted two steps sideways to shunt Huget's body up and over the ball. This guaranteed crisp possession for Ruddock to make another dent and Toulouse's red wall crumbled when Conan arrived at pace.
The wind advantage was negated by Leinster because Toulouse couldn't get the ball. That's down to constant accuracy at the breakdown. It's the blueprint for modern, winning rugby.
Preparation for this game screamed clarity. Everyone knew their job, keeping the ball being the overriding tactic, but it was a day for McFadden, Sean O'Brien, Jack McGrath – that sort of player – to roll up the sleeves and get stuck in. All three of them, and a probable four Ireland starters against England on February 2nd were spectators like the rest of us.
No problem. Rory O'Loughlin and Larmour filled the jerseys. Ross Byrne carried into heavy traffic again and again, instead of flinging the 50/50 pass into the wind. Dave Kearney and Adam Byrne are hardly new to this environment but they delivered when their opportunities arrived. Such names carried the club forward. Here was a powerful culture in full bloom.
Everyone on the outside looking in was worried about history rhyming yet Leinster coped without eight major contributors (James Lowe being suspended) three and half years after Ireland failed to perform without five key men in a World Cup quarter-final.
I was excited to see the future of Toulouse rugby, Thomas Ramos and Romain Ntamack, up close but this young duo were blown away. Their presence suggests a return to old values, the growing of talent through their academy, but this takes time.
Again, the RDS should prove a highly informative exercise for the French club. I saw something else at pitch level. How Leinster carry into contact, or how they seek to avoid collisions when possible, is how rugby saves itself. Toulouse's 120kg men could not get big shots on most Leinster carriers because of subtle steps and swerves before the tackle. This requires hours upon hours of coaching and individual player work. The ability of Cian Healy and Conan in particular to move the point of contact was fantastic. See their crucial steps in or out or through the tackle to make it easier for the incoming two cleaners.
Coaches all over Ireland can show Saturday's opening 40 minutes to their teams when facing a bigger pack. The virtuous circle in all its glory.
Munster were not as inhibited by conditions in Gloucester so after two or three phases of heavy contact Carbery could attempt a strike play. They will have a tougher time of it Saturday against Exeter, and without O'Mahony, but I say this with a straight face: there are plenty of similarities from this Munster group to our Leinster team up until May 2009. Their culture, as reflected by recent performances, grows stronger.
We took so much from beating Munster in games that didn't really matter. We discovered our true potential under Michael Cheika when Isa, Rocky and CJ van der Linde arrived. In Carbery, Beirne and Farrell the pieces now look to be in place.
They might have to find a way past Leinster but belief won't be a problem after what we witnessed over Christmas.
They would have been deeply affected by Bilbao last May the same way Leinster players squirmed watching Axel and Paulie lift the European Cup. Mould your nemesis into your greatest motivational tool. It's about getting to where you feel you are good enough to be regardless of what obstacles are placed in your path. Rugby's history doesn't repeat itself but it often rhymes.


Looking to Live a Balanced Art Life?
I was, and I found it.
Back in 2011 when I started my studies as a visual practitioner, I had an idea to apply my newly acquired skills of drawing out conversations to the art coaching I was doing as a recent retired publisher of an arts magazine and exhibition director at an arts center. I was fascinated by the way making inquiries and writing down the responses in large-format had an impact on understanding, visioning, and outcomes for both the me and the artist. By 2014 I had developed an art career coaching model called Art Career Theorem (ACT) and luckily I had plenty of artists who were willing to be coached and were curious about the model.
Pictured above: Snapshots from an ACT workshop.
With a foundation of values-based decision making and visioning the art life, I guide artists through the model so they may have the tools to discover, envision, plan, and make decisions to live the art life they desire. I offer this model through workshops, artist accountability meetups and 1:1 coaching. My approach to delivering the model includes Appreciative Inquiry and graphic facilitation.
Every year in November, I reflect on the past year's accomplishments and re-evaluate my trajectory as an artist, graphic facilitator, and advocate for the arts. I apply the ACT model to myself and follow the steps to ensure the model is still relevant. Every year I am surprised by what I have achieved and what changes I need to make in my decision model and behaviors to "level up" my game. I love the challenge and learning new ways to model the way for other artists.
In the fall of 2017, I landed back in Southwest Colorado after a 6-month sabbatical and 3-year hiatus near Washington, DC where I worked as a full-time graphic facilitator and senior consultant. While I applied the ACT model to my work as an organizational development consultant, I realized that the practical applications of the work had value beyond the arts. Upon return to the arts community I was once an active participant of, I wrote a grant to the Colorado Creative Industries (CCI) to scale the ACT model into a train-the-trainer program. I know the value of this work and the importance of it being accessible to others.
Thanks to being awarded the Career Advancement grant from the CCI and National Endowment for the Arts (NEA), I can scale the ACT model and am looking for the opportunity to work with more artists in their pursuit of living a balanced art life.
And as for me, I found it.
The ACT model grew from 15 years of experience working with artists through community art centers, art publishing and career coaching. Heather Leavitt Martinez, an artist herself, uses graphic facilitation to coach artists through a series of self-assessments and exercises that increases self-awareness and guides artists to set values-based goals, make decisions, and sustain the art life they want to live.
Many thanks to the Colorado Creative Industries and National Endowment for the Arts for recognizing the value of Art Career Theorem by granting the Career Advancement award to grow the program into a train-the-trainer program.
If you are an artist who would like to learn more about becoming a visual practitioner or an arts coach, please email me. I would love to talk with you about the possibilities.
I love that I learned so much more about you from this blog post, Heather! I didn't know you were a magazine editor and an ED of an arts center. I bet those experiences contribute to how you manage the various parts of your visual practice and career. I am always amazed at how wickedly interesting our IFVP members are!
Many many thanks for this classic article and play one of the classic happy wheels games free of cost without any payment the objective of the happy wheel is to get the victory over the rival.


If you are looking for the top LED TVs, look no further than Sears Home Appliance Showrooms located in Houston, TX. We've got a large selection of all types of LED TVs in different sizes and price ranges. Not looking to spend a small fortune? Don't worry - Sears Home Appliance Showrooms located in Houston, TX offers high quality LED TVs at discounted prices. Check out a range of smart TVs with excellent screen resolution and easy set-up. Shop for an LED TV from Sears Home Appliance Showrooms located in Houston, TX for a TV that will give you excellent sound and picture at a great value!
For the full experience, check out our accessories to create a home theater in the comfort of your own living room. Save big and buy speakers to perfect the sound on your LED TV. Kick back in front of your LED TV with a new couch from the furniture department. Sears Home Appliance Showrooms in Houston, TX has a wide variety of LED TVs available in an array of colors and sizes. Our store is 5000 square feet so you'll have plenty of space to walk around while browsing through our collection of high-quality LED TVs.
Need help choosing an LED TV? Schedule an appointment with one of our LED TV experts by calling (281) 492-2228. Alternatively, come visit us today at your local store located at 1150 N Fry Road in Houston. Make sure to follow Sears Home Appliance Showrooms in Houston, TX on Facebook so you can stay up to date on our special offers, store announcements, and our latest sales!


On Friday morning Meg and I headed out to capture our Apple Fest adventure for your fine faces. Attending Apple Fest used to be a yearly tradition for me (until I broke up with the boyfriend I first went to Apple Fest with and then it was like one of those things that you tell yourself you can have just for yourself now! but then you go and you're like, "Whoa, so many memories, why didn't I just lock myself into a room decorated with photos of his face and a constant loop of our song playing over and over instead?!" and so it was just too painful to go back after that and HEY STOP ASKING ME SO MANY QUESTIONS ABOUT IT ALREADY) and Meg hadn't been to an Apple Fest for years, so we were pretty damn excited to make an Inaugural Girl from the Northwoods Pilgrimage to this annual autumn event.
Starting out the day at Delta Diner – because as every self-respecting girl from the Northwoods knows, you can't have a full day without a full breakfast – we stuffed our faces with the Stuffed French Toast (me) and the Lucky Denny (Meg) while we talked about our agenda for the day.
The one thing I have never actually done on all of my Apple Fest jaunts is actually visit an apple orchard.
So we decided to remedy that glaring mistake by visiting a few choice orchards before hitting up the street fest. The highlight of our orchard hopping was Hauser's Superior View Farm: A beautiful orchard that boasts a gorgeous view of Lake Superior (accessed from a looking point at the top of the barn) it's wooded acres and sprawling grounds quickly showed to be a favorite among Apple Fest goers.
We took ourselves over to the wine tasting tent to meet with Scott Hauser, who took us through a rousing and entertaining wine tasting of Bayfield Winery selections.
Almost all of the wines offered by Bayfield Winery are made with apples, with a large number combining apples with other orchard produce such as blackberries, raspberries, blueberries, and cranberries, some featuring hints of oak and currants. While I loved J.D. Hauser's Grand Reserve ("A fine dry apple wine…aged in oak with a smooth smoky flavor, an understated blend of apple and oak"), Hauser's Colonial (Scott told us that Jefferson would drink a glass of this semi-dry apple wine – it's a 300 year old recipe – every morning with breakfast. So it's not only delicious, but it also gives you permission to have wine with breakfast as a historically-important act of respect and reverence for our forefathers), the Cranberry Farm House Cider (a combination of sweet apples blended with tart cranberries, Scott told us that this was a perfect wine to have with Thanksgiving dinner!), and Meg dug the Berry-Licious ("a sweet wine with fantastic flavors of the summer berries, raspberry, blueberry, and blackberry"), the Sweet Apple Wine was a standout favorite for both of us.
During the wine tasting, Scott encouraged us to visit All Sister's Winery. At first we were like, "Uh, thanks but no thanks, Scott. Do we look like the kind of girls who want to spend all day drinking wine?!" He was like, "Yeah, kinda." After learning it was just down the road, we told him that we would at least think about checking it out, and then – when we were sure he couldn't see us anymore – we ran the rest of the way to our car and raced over there.
My mom has been to All Sisters before and has raved about it, so I was pretty excited to see it for myself. We were greeted by Caitlin Hauser, who led us through a tasting of the All Sisters offerings. "It tastes like a forest fire," Meg quipped at one point, after tasting the Witty & Wild. And it did. Mainly because forest fires TASTE AWESOME.
After going through the tasting and then buying out the place (Christmas is just a mere 60+ days away!), we finally headed to Bayfield for the street fest.
While driving into town, I told Meg about the big flood in 1942 and subsequent landslide that culminated in dead bodies being washed away from their graves in the Bayfield cemetery, including a man who had been buried wearing nothing but a green tie (as chronicled in the excellent Badger Boneyards by Dennis McCann). This is always a great story to tell anyone who is preparing to spend a day in Bayfield, and I highly recommend you heighten your own friend's Bayfield's experiences with it.
Our first stop was Morty's Pub, where we freshened up from our rigorous morning of wine tasting, and then sidled up to the bar to warm up with some spiked mulled cider and an apple pie shot. The apple pie shots were like having the entire Apple Festival break out into a dance party in your mouth (and that's coming from someone who doesn't even like shots).
You can make your own at home with Sour Apple Pucker and Butterscotch Schnapps!
After warming up a bit (it was a rather brisk and windy day…weird, right, since it was October and we were on the shores of Lake Superior…) we decided to stroll down to the water to check out the arts and crafts booths. I have to say this: One of the reasons why I love the Apple Fest so much is that, even though I'm not a big arts-and-crafts-fair type girl, even I can tell that Apple Fest's arts and crafts vendors are top-notch.
Though it was so windy down by the water that we felt like we were literally going to be picked up and pitched into the Superior, we highly enjoyed the collection of artists, metal and wood workers, jewelers, and photographers gathered at the park.
For lunch we headed into the Lounge at the Bayfield Inn, where we were encouraged by fellow patrons to try the Lake Superior White Fish Tacos and Bloody Mary special. Again, it took a lot of convincing – drinking at lunch on a Friday day off?! Fine, but only for research – but once we relented….oh wow, my friends. I've had a lot of fish tacos. I've had a lot of Bloody Marys. And both were pretty freaking amazing. I have it on good authority that this special isn't just for Apple Fest weekend, so on your next trip up to Bayfield, stop in at the Lounge and see if it's available. You'll thank me for it.
After lunch, we walked around a bit more, browsed at some of the shops, and then headed into the Big Water Coffee Roasters for a little afternoon pick-me-up. We've been planning on doing a full-fledged Northwoods Spotlight on this fantastic roastery for months now, and that sense of urgency was only heightened by our visit on Friday. For geeks like Meg and I who are totally into stuff like that, their branding? Fan-freaking-TASTIC. The newish male barista wasn't too rough on the eyes, either. Aaaaand – I am totally not exaggerating here – I had pretty much the most amazing Pumpkin Spice Latte there that I have ever had in my life.
And if you think I know about fish tacos and Bloody Marys? (hint: I do) That's nothing compared to my love for and expertise in regards to Pumpkin Spice Lattes.
We're getting to know each other so well with this post! I feel so close to you guys right now.
If we would have thought ahead, Meg and I would have had made a plan to try all the different foods from the Apple Fest vendors and take pictures and rate them all for you, but instead we were totally selfish and got waaaay too full on wine, bloody marys, fish tacos, and pumpkin spice lattes to do that.
We *did* pop into a store that advertised free samples of pumpkin pie fudge, but when we went in? There weren't ANY free samples, much less samples of pumpkin pie fudge. Which means they were doing false advertising just to get people like me who love pumpkin pie into their store, and then they cruelly dash our hopes for pumpkin pie fudge amazingness against the rocky shores of "HAHAHA, TRICKED YOU." I will never go in there again. If anyone asks why, just point them to this incredibly irrational portion of this post.
So instead of doing our jobs as crackerjack reporters who help you to make your Apple Fest experience its memorable best, we were just selfish and wandered around to different shops and took ridic pictures of ourselves around town.
We're gonna get better at this whole "Let's go do a thing and then write about it for other people!" stuff, you guys. I swear it.
To round off the day, we decided to hit the library book sale, and on the way there we ran into Hannah Stonehouse Hudson of John & Shep on Lake Superior fame. Out walking her dogs, Meg chatted with her a bit but played it cool, deciding not gush to her face about how cool she was and how much she admired her work, and instead we decided to just gush about it to each other as we were walking down the library stairs to the book sale.
All in all, it was a fantastic day at the Bayfield Apple Fest, and spending Friday there just made us want to get up there again and again to do more features on all the great places and things to be found and enjoyed in one of our favorite Northwoods towns.
Until next time, Bayfield…your pumpkins spice lattes will be in our dreams.


text:
LennyCo — June 27, 2019 in Blogging
Democrats invoke a post-Trump America in first half of debate derby
The rest of the party's crowded 2020 field will follow on Thursday to fire their first shots in their party's battle to make Trump a one termer.
In round two, the front-runner Joe Biden, Sen. Bernie Sanders and Sen. Kamala Harris among others can seize on the opening night's clashes and big moments to refine their own arguments to forge a dominant early impression in voters' minds.
Viewers yet to tune into the nascent presidential race but who dipped into the first primary debate saw Washington celebrities they might just recognize and no-hopers they've never heard of fighting desperately to keep their 1% campaigns alive.
The meaty issues-driven debate also offered a preview of what political life might look like after Trump. It will be earnest, involve stark policy turns and perhaps be a little dull. And any new Democratic president in 2021 might go out of his way to speak Spanish in public, as several candidates on stage in Miami did.
The stylistic contrast with Trump was struck most effectively by candidates, like Sens. Warren and Amy Klobuchar, vying to become the first woman President and Castro who wants to be the first Latino commander-in-chief.
RELATED: 8 takeaways from the Democratic presidential debate's first night
They personified the question of whether angry white male candidates would be the most effective choice to take on a President who is always on the verge of an outburst. Biden will try to reinforce his argument that despite being from the same demographic group as the President, his experience makes him the most likely Democrat to take Trump down.
There was no one on stage — and there won't be on Thursday night — to match Trump's insult-flinging, manic style that broke the mold of how to win the White House and has dragged the nation into an incessant political psychodrama ever since.
"BORING!" was Trump's tweeted verdict on debate night in Miami, as he flew to Japan on Air Force One.
The President's political fate might rest on whether enough Americans agree with him or want to return to a quieter, more normal mode of political debate where the biggest divides are on policy and not personal.
The election will also turn on whether the expansive government-led reforms envisaged by the Democratic candidates can attract a majority of electoral votes in a clear change of political direction.
For progressives, the arguments being spelled out on the economy, health care, global warming, gun control are rooted in a strong sense of national morality and are daring.
For more conservative voters they could come across as radical or scary and Trump and his team have plenty of fodder as they seek to portray the Democratic platform as far left socialism.
Perhaps surprisingly, given Trump's dominance of public life over the last two years, the President took his hits, but he was far from the dominant theme of the first big 2020 moment.
A new phase of the campaign
The twin debates mark a new phase of the campaign and offer the candidates their biggest television audience yet.
They took the stage with fears mounting of war with Iran, with the US locked in a trade war with China and as tragic photos of a father and his 23-month-old daughter drowned in the Rio Grande after a failed attempt to cross the border focused attention on Trump's hardline immigration policy.
It's too early to know whether Warren's steady showing will help her win the nomination or if Castro's breakout night will vault him into the race's top tier.
Former Texas Rep. Beto O'Rourke tried to make a splash by speaking Spanish in his first answer. But he got owned on immigration by Castro in an all Texas-knock down.
First votes are nearly seven months away in the middle of next winter in Iowa, and there will be plenty of winners and losers in the horse race by then. In fact, many candidates on stage Wednesday will likely be gone when the Hawkeye State has its say.
But what is certain is that over two hours on a crowded stage voters saw the ideological divides and the clash over the character of America that will decide the 2020 election.
For the Democrats on stage, the economy is not the roaring success painted by Trump but benefits only the wealthiest Americans and enriches drugs companies while patients struggle.
"Who is the economy really working for, it's doing great for thinner and thinner slices at the top," Warren said.
If the next President is a Democrat, it might not be a crime to cross the border illegally. And undocumented migrant children will not be separated from their parents when they do make it to US soil.
Abortion will not be under threat but a guaranteed right.
"There's three women up here who have fought pretty hard for a woman's right to choose," Minnesota Sen. Amy Klobuchar said.
If New Jersey Sen. Cory Booker gets his way, you might need a federal license to buy a gun.
"I hear gunshots in my neighborhood," Booker said. "I think I'm the only one, I hope I am the only one that had seven people shot in their neighborhood just last week."
Democratic post-Trump America would fight climate change, not call it a hoax.
"(Trump) says wind turbines cause cancer, we know they cause jobs," said Washington Gov. Jay Inslee, who is an after-thought in most polls.
While there's a chance that everyone can get health care, it might mean that private health plans will have to go.
"Private insurance is not working for tens of millions of Americans," New York Mayor Bill de Blasio, a recent entrant into the race said.
Discord on this issue among the candidates hinted at the great fault line in the Democratic Party between its progressive wing and contenders like Klobuchar who believe the middle ground is the best way to dispense with Trump.
Ohio Rep. Tim Ryan pleaded with his fellow candidates to adopt a working man's politics that could help combat Trump in his Midwest heartlands.
"I don't know how you feel but I am ready to play some offense," Ryan said.
Hawaii Rep. Tulsi Gabbard, who drew on her military service to introduce herself to many voters for the first time, ended the debate invoking an idealized version of a new America.
"As President, our White House, our White House will be a beacon of light, providing hope and opportunity," she said.
Former Maryland Rep. John Delaney, who has been running for months unnoticed by most Americans who are not Democratic activists, took a pragmatic stance on the health care question.
"I think we should be the party that keeps what's working and fixes what's broken," he said.
What no one can know, is if there was a President on stage on Wednesday night — or if there will be on Thursday. The question of how best to confront Trump in his element on a debate stage is for another day.
But it's already obvious that Americans are going to have a distinct political choice come November 2020.
Moderate GOP voices on immigration were wiped out in the 2018 Democratic wave
For an immigrant, seeing a 'police car is something that makes me go cold' (Opinion)
George Will's startling assessment of Donald Trump
Area 51: Feds warn UFO enthusiasts against storming
American Jews don't want to be Trump's political pawns (opinion)