Back when it was first released, we called Live Text the best new feature in iOS 15, and it’s not hard to see why—the tool can recognize any text in any photo (or within the camera view) so you can copy and share it. But the more we use it, the more annoying we find it can be. When you’re in the camera view, for example, and you point your camera toward something that you want to capture, you tap the subject to focus, and instead, your iPhone selects some text. Similarly, when you’re browsing your photo library, you may try to zoom into a picture, and instead, you get a pop-up asking if you’d like to navigate to an address instead.
If you’re similarly annoyed, you can disable the Live Text feature in the camera view, in the Photos app, and everywhere on the Mac, as well.
How to disable Live Text in Camera view on iPhone and iPad
Let’s deal with the most annoying part first. If Live Text gets in the way of your photography, you can disable it only for the Camera app. Go to Settings > Camera and disable the “Show Detected Text” feature.
How to disable Live Text everywhere on iPhone and iPad
If you want to disable the text recognition feature across the board, there’s a separate setting. This option will disable the feature in the Photos app, and in places like Safari, or the screenshot editor (where you can use Live Text on any image). To do this, go to Settings > General > Language & Region and disable the “Live Text” feature.
Once you disable the Live Text feature from here, it’s disabled everywhere, including the Camera app.
How to disable Live Text everywhere on Mac
macOS Monterey brought Live Text to the Mac, helping you simply select and copy text from any image. But if you’re not a fan, you can disable it across the entire OS: Click the Apple icon from the top menu bar, go to “System Preferences” > Language & Region > General, and from the “Live Text” section, disable the “Select Text in Images” feature.
If you change your mind, you can always go back to System Preferences to enable the feature.
Ideal for that quick, spur-of-the-moment day trip or tailgating party, the ORCA Walker Tote is an ultralight soft-sided cooler that offers great durability and ice retention.
These days there is a glut of coolers on the market. It can be hard to tell the difference between various kinds and what makes them worth the price tag. The ORCA Walker Tote is an ultralight option, weighing 3.6 pounds dry, that is versatile, holds 18 cans, and is very easy to use for a variety of trips from camping to backyard barbecues.
So, out of all the coolers, why this one?
In short: ORCA’s big brother, the Walker 20 Cooler, made GearJunkie’s Best Soft Coolers list, so we were intrigued to see a new Walker cooler hitting the shelves. This is a slightly smaller version, for those looking for the same level of cold storage in a more compact form. And aside from boasting a tote style, this Walker has an updated, slimmer design and new volume.
ORCA Walker Tote Cooler Review: First Impressions
While touted as a soft-sided cooler, the ORCA is very stout and well built. From top to bottom, the cooler is crafted with durability in mind. The zipper is a Master Seal #10 waterproof zipper, ensuring the ORCA is leakproof and will keep contents cold for 24 hours and beyond.
The sides are heavily insulated, and the underside has tough, rubberized padded skin for added protection when you set the cooler down on sand and rocks. The bottom line, it is ready to rock right out of the box.
Opening and carrying the ORCA Walker Tote cooler is a breeze with the easy-open magnetic split handle. Rather than clasping together, the two-sided handles interlock and hold in place easily with strong magnets.
It’s an intuitive and simple mechanism to carry the cooler. The opposing magnets also stay open when unzipping the cooler, making access to the interior a breeze.
Compared to the Walker 20, the Walker Tote is a bit smaller: ½-inch shorter in length, 2 inches shorter in height, and 1½-inch shorter in width. They share similar designs, materials, and features.
ORCA Walker Tote Specs
Length: 15 in.
Width: 9.5 in.
Height: 15.25 in.
Dry weight: 3.6 lbs.
Max load: 50 lbs.
Claimed hours iced/cold: 12-24 hrs.
Ice retention test: ~28 hrs. iced
Cooler Test While Chilling Poolside
With a trip set for Arizona, I loaded up the cooler with some beer — 16 cans, to be exact — and set out on the road. The just over foot-high cooler fit snugly in the trunk of my car as I headed to the desert.
The cooler started about a quarter full of ice, and I let it sit in the trunk for the 2-day drive in some 70-degree weather. When I arrived, I opened the cooler to find most of the ice melted, but the drinks were still cold.
I restocked the ice and brews and tested out the ORCA poolside. And here is where it excels. This is what the ORCA Walker Tote is made for: a grab-and-go poolside session. The exterior side pocket held a paperback book and my sunglasses, while the cooler transported the canned brews with ease. (There’s an interior waterproof pocket as well.)
The detachable padded shoulder strap made it simple to carry the cooler to and from the pool, and the tote fits nicely by a chair or table without getting in the way. It really is an ideal size for a day out.
A Known Issue
Overall, I was impressed by the ORCA Walker Tote. However, during my trip, the metal clasp holding the shoulder harness to the Tote broke, rendering the shoulder carry option useless. For the price of the cooler and the “durability” tag, I was disappointed to see this during the use of a normal road trip.
ORCA stated that this is an issue they are aware of and that clasps have broken from time to time. ORCA has a 3-year warranty that includes manufacturer defects such as a break like this. It’s worth noting that ORCA does expect to have the issue fixed in updated versions of both the Walker Tote and Walker 20 slated for fall 2022. (We’ll keep you updated.)
The other drawback is that the mouth of the cooler has difficulty staying open and, as a result, can be hard to fill with ice. Aside from this, the cooler performed well.
Conclusion
The Walker Tote’s body is strong, it keeps its contents cold, it’s easy to transport, and it looks good. (You may even get some jealous glances of cooler envy!) If it were not for the broken shoulder strap clasp and small guarded entry, it’d be the ideal tote for nearly any road trip or waterfront adventure.
Overall, this is a durable light cooler that looks good and offers great ice retention for a day trip. It’s compact, capable, and tough — throw it in the back of your vehicle, and beverages or food will be good to go when you hit the beach or pool.
Make Laravel Pivot Tables using the new Laravel 9 closure migration format
This will allow you to create pivot table migration files using the new Laravel 9 closure migration format by simply passing two models. Under the hood the system will inspect the two models to generate the pivot table and foreign key names.
php artisan make:pivot Category Blog
Will generate the following migration
returnnewclassextendsMigration {
/** * Run the migrations. * * @return void */publicfunctionup()
{
Schema::create('blog_category', function (Blueprint$table) {
$table->foreignIdFor(Blog::class)->constrained()->onDelete('cascade');
$table->foreignIdFor(Category::class)->constrained()->onDelete('cascade');
$table->primary(['blog_id', 'category_id']);
$table->index('blog_id');
$table->index('category_id');
});
}
http://img.youtube.com/vi/TW5FPOfIOvc/0.jpgThree new Blade directives that would help our edit forms to get a bit shorter. Let me show you a demo.Laravel News Links
https://i.ytimg.com/vi/tRpWTYTUCfM/maxresdefault.jpgHere, we will be looking at what are the 5 new things that are added in Laravel version 9.1.0Laravel News Links
The Wyoming Senate has voted 16 to 14 to eliminate the U. of Wyoming Gender Studies program. (Bill below). This will not only eliminate not only the gender studies department, but also courses and non-academic programs related to gender.
Laravel Notifications are an awesome tool that provides built-in support for sending notifications, in dozens of different channels, like Slack, Telegram, SMS, etc.
In this tutorial, we will see how we can customise Laravel Notifications core to accommodate a multi-tenant setup in a single database.
Note: This tutorial is using Laravel 9.x but should be working for older Laravel versions as well.
Step 1: The Notifications Table
The first thing we need to do is publish the default notifications table using
php artisan notifications:table
You should now have a new migration file under database/migrations which should look like this
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
public function up()
{
Schema::create('notifications', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('type');
$table->morphs('notifiable');
$table->text('data');
$table->timestamp('read_at')->nullable();
$table->timestamps();
});
}
};
Ideally, we would like to have a foreign key to the tenant model.
Schema::create('notifications', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('type');
$table->morphs('notifiable');
$table->text('data');
$table->timestamp('read_at')->nullable();
$table->timestamps();
$table->foreignId('tenant_id')->constrained(); // <- Add this
});
If tenants are supposed to be receiving notifications you might want to make the tenant_id column nullable.
Step 2: Override Laravel’s Database Channel
The next step would be to find a way to fill in that column whenever a notification is being stored in the database. For that, we need to extend the default DatabaseChannel class and replace our version in the Laravel Container.
What we need is a new class called DatabaseChannel which extends Illuminate\Notifications\Channels\DatabaseChannel.
<?php
namespace App\Notifications\Channels;
use Illuminate\Notifications\Notification;
class DatabaseChannel extends \Illuminate\Notifications\Channels\DatabaseChannel
{
public function buildPayload($notifiable, Notification $notification)
{
return [
'id' => $notification->id,
'type' => get_class($notification),
'data' => $this->getData($notifiable, $notification),
'read_at' => null,
'tenant_id' => $notification->tenant_id,
];
}
}
Step 3: Create a tenant-aware Notification
Now, whenever we create a new notification we need to inject the tenant_id property so that we can insert it into the database.
<?php
namespace App\Notifications;
use Illuminate\Notifications\Notification;
class BaseNotification extends Notification
{
public $tenant_id;
public function __construct($tenant_id)
{
$this->tenant_id = $tenant_id;
}
public function via()
{
return ['database'];
}
public function toDatabase($notifiable)
{
return [
// your payload
];
}
}
Step 4: Use our implementation of the DatabaseChannel
Finally, we need to switch Laravel’s implementation of the DatabaseChannel with ours. To do that we just need to set this up inside the boot method of the AppServiceProvider.
<?php
namespace App\Providers;
use App\Notifications\Channels\DatabaseChannel;
use \Illuminate\Notifications\Channels\DatabaseChannel as BaseDatabaseChannel;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
$this->app->instance(BaseDatabaseChannel::class, new DatabaseChannel());
}
}
Ready!
And that’s it!
You now have multi-tenant notifications set up in your Laravel project!