If you’re like me, when you play a song in different tunings (especially ridiculously low tunings), you can’t always go as low as you can because of string gauge or scale limitations. I play a lot of low-tuned stuff, especially thall, and those tunings are crazy.
Whenever I tune down, sometimes I’ll have a guitar that is, say, in Drop D or Drop C tuning. Instead of messing with my intonation, I’ll use a pitch shifter to tune down instead. Pitch shifters like the Digitech Drop (an awesome polyphonic drop pedal) allow you to go down a whole octave.
So, get this: Vessel III from Sleep Token supposedly had their birth certificate leaked online. Fans were freaking out, thinking, “Who does that to a band that thrives on mystery?” The leak was said to have happened in a Sleep Token Telegram group, which—talk about timing—shut down right after.
But here’s the kicker: there’s zero proof. Nada. Zilch. In the internet age, where everything sticks like gum on a shoe, there’s not even a blurry picture of this so-called leak. No screenshots, no whispers, nothing. Makes you wonder, right?
The Australian government has turned its attention to the issue of supermarket price gouging. With grocery giants recording strong profits amid growing concerns about the gap between supermarket prices and farmers’ earnings, a review of the food and grocery code of conduct has been announced. Prime Minister Anthony Albanese has offered additional powers to the Australian Competition & Consumer Commission (ACCC) to tackle this issue, suggesting that supermarkets not passing on savings to customers is “completely unacceptable.”
Ah, breakpoints. Those little digital stop signs that every front-end developer swears by. But let’s be real for a second – breakpoints are the high-maintenance divas of the debugging world. You set them up, pamper and adjust them, and what do they do? They freeze your entire application to tell you that, surprise, there’s a bug. Gee, thanks.
Now, let me introduce you to the unsung hero of the debuggers: console.log(). This little gem is the duct tape of programming. It’s not pretty, it’s not sophisticated, but damn, does it get the job done. While breakpoints are busy putting on their makeup, console.log is already out there, in the trenches, getting its hands dirty.
When scaffolding new projects or features, repetitive tasks like file creation and boilerplate code can waste valuable time. That’s where Plop comes in—a micro-generator framework that helps automate these monotonous processes. Today, we’re diving into the world of recursive prompts in Plop, which allows you to interactively collect data in a loop based on user input.
What Are Recursive Prompts? Recursive prompts enable you to repeatedly ask the user a series of questions until a certain condition is met. This is particularly useful when the required inputs are not fixed, such as adding an unknown number of items to a list.
Sometimes you have a request that doesn’t immediately return a response. For example, the user uploads some audio files and you process those and return them.
Using the Aurelia 2 Fetch Client, we are going to build an implementation that allows us to poll a specific endpoint and use callback functions to configure our response.
import { HttpClient } from '@aurelia/fetch-client'; export interface PollingOptions { pollingIntervalMs?: number; maxPollingAttempts?: number; isSuccess?: (response: Response) => boolean; parse?: (response: Response) => Promise; } export class PollingHttpClient { private readonly httpClient: HttpClient; private readonly defaultPollingIntervalMs = 1000; private readonly defaultMaxPollingAttempts = 10; constructor() { this.httpClient = new HttpClient(); } async pollUntilSuccess( url: string, options?: RequestInit, pollingOptions?: PollingOptions ): Promise { const pollingIntervalMs = pollingOptions?.pollingIntervalMs ?? this.defaultPollingIntervalMs; const maxPollingAttempts = pollingOptions?.maxPollingAttempts ?? this.defaultMaxPollingAttempts; const isSuccess = pollingOptions?.isSuccess ?? ((response) => response.ok); const parse = pollingOptions?.parse ?? ((response) => response.json() as Promise); let attempts = 0; while (attempts < maxPollingAttempts) { try { const response = await this.httpClient.fetch(url, options); if (isSuccess(response)) { return await parse(response); } } catch (error) { console.error('Fetch error:', error); } attempts++; await new Promise(resolve => setTimeout(resolve, pollingIntervalMs)); } throw new Error(\`Polling failed after ${maxPollingAttempts} attempts.\`); } } To use it, simply instantiate it like you would the ordinary Fetch client:
Ah, beef jerky – the quintessential snack that’s both a road trip staple and a gourmet delight. Often found nestled between kale chips and protein bars, this meaty treat is a favourite for many. But why does this dehydrated delight often cost more than a decent steak at your local pub?
The heart of any good beef jerky is, obviously, the beef. We’re not talking about any old cut here. Jerky calls for premium, lean cuts – think eye round or topside. These aren’t your budget meat cuts; they’re the kind that would make a fantastic Sunday roast. And as any savvy shopper at Woolies or Coles knows, higher quality equals a higher price tag.
OpenAI, the AI alchemist who once charmed us with GPT-3’s witty prose and GPT-4’s early brilliance, has stumbled upon a potent new potion: the Elixir of Unreliability. ChatGPT, once a code-crunching, creativity-conjuring genie, has mutated into a buggy bottleneck, leaving users drowning in frustration and searching for the magic that’s gone missing.
Remember those heady days in 2023 when GPT-4 burst onto the scene, weaving code tapestries and spinning tales that glittered like spun gold? Those were the days of true AI wizardry. Fast forward, and the lustre has gone duller than a tarnished trophy. Constant model tweaks, presumably in the name of alignment, have turned the once-dazzling diamond into a chipped piece of coal. Responses stumble in like a hungover party guest, riddled with errors and devoid of the spark that made GPT-4 so special.
Australians grappling with the rising cost of living have a new target: supermarkets. Accusations of “record profits” and “price gouging” have intensified, prompting a closer look at the grocery giants and their role in the current economic landscape.
Australia’s grocery aisles have become battlegrounds. On one side, shoppers grapple with rising prices, feeling squeezed by every trip to Coles or Woolworths. On the other side, the supermarket giants stand tall, reporting record profits and touting the benefits of their own-brand products, emblazoned with generic labels and promising lower prices. But is this private label push a win for wallets, or are we being subtly exploited in a game rigged for supermarket profit?
Chess is an age-old game that many cherish for its elegance, simplicity, and depth. In a time when technology is seeping into every aspect of life, the ChessUp board emerges, promising to elevate the game without losing its essence. But can it deliver?
I am relatively new to chess. My eight-year-old son has been playing chess since he was four, and he was the one who taught me how to play funnily enough. He beats me quite often, and the gap has widened because he gets chess lessons at school. I wanted something with some smarts to help me improve at chess and improve my son’s game too.