How to Stop Your iPhone Camera From Recognizing Text Everywhere

https://i.kinja-img.com/gawker-media/image/upload/c_fill,f_auto,fl_progressive,g_center,h_675,pg_1,q_80,w_1200/460aa26097c46a15db4eb0c00a5513d1.jpg

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.

   

Lifehacker

(Almost) Perfect: ORCA Walker Tote Ultralight Soft Cooler Review

https://s3.amazonaws.com/images.gearjunkie.com/uploads/2022/02/ORCA-Walker-Tote-cooler.jpg

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

ORCA Walker Tote cooler
(Photo/David Young)

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

ORCA Walker Tote Ultralight Cooler

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.

Carrying - ORCA Walker Tote Ultralight Soft Sided Cooler
(Photo/David Young)

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.

Check Price at ORCA CoolersCheck Price at AmazonCheck Price at Walmart

couple setting up camp with electric cooler
The Best Electric Coolers of 2022

We tested the best electric coolers of 2022 with options for every budget and need. Top picks include Dometic, ARB, Engel, and more! Read more…

The post (Almost) Perfect: ORCA Walker Tote Ultralight Soft Cooler Review appeared first on GearJunkie.

GearJunkie

Make pivot tables using the new Laravel 9 migration closures

https://opengraph.githubassets.com/e6160907e12387e0dfc32f03979df89b1707fa8fb48f4fc8f4ebc613d2e29ed8/josezenem/laravel-make-migration-pivot

Make Laravel Pivot Tables using the new Laravel 9 closure migration format

Latest Version on Packagist
GitHub Code Style Action Status
Total Downloads

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

return new class extends Migration {
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        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');
        });
    }

Installation

You can install the package via composer:

composer require josezenem/laravel-make-migration-pivot

Usage

php artisan make:pivot Category Blog

Optionally, you can publish the stubs using

php artisan vendor:publish --tag="laravel-make-migration-pivot-stubs"

Testing

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Laravel News Links

Comic for March 02, 2022

https://assets.amuniversal.com/22e032c0730b013a9919005056a9545d

Thank you for voting.

Hmm. Something went wrong. We will take a look as soon as we can.

Dilbert Daily Strip

This is the way

 

Every Red state needs to do this.

Systematically go through and weed out every department and degree program that is just accredited Leftist indoctrination.

Fire the professors.

Spend the money on vocational education.

Gun Free Zone

Multitenant Laravel Notifications

https://s0.wp.com/i/blank.jpg

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!

Laravel News Links