https://media.notthebee.com/articles/698a3c3b45340698a3c3b45341.jpg
Fudds gonna Fudd.
Not the Bee
Just another WordPress site
https://media.notthebee.com/articles/698a3c3b45340698a3c3b45341.jpg
Fudds gonna Fudd.
Not the Bee
https://repository-images.githubusercontent.com/1085312500/6ec13265-eaca-4031-81af-e2b0afc2099d
Stop writing spaghetti code for imports.
Laravel Ingest is a robust, configuration-driven ETL (Extract, Transform, Load) framework for Laravel. It replaces
fragile, procedural import scripts with elegant, declarative configuration classes.
Whether you are importing 100 rows or 10 million, Laravel Ingest handles the heavy lifting: streaming, chunking,
queueing, validation, relationships, and error reporting.
Most import implementations suffer from the same issues: memory leaks, timeouts, lack of validation, and messy
controllers.
Laravel Ingest solves this by treating imports as a first-class citizen:
BelongsTo and BelongsToMany relationships (e.g., finding IDs byFull documentation is available at zappzerapp.github.io/laravel-ingest.
composer require zappzerapp/laravel-ingest # Publish config & migrations php artisan vendor:publish --provider="LaravelIngest\IngestServiceProvider" # Create tables php artisan migrate
Create a class implementing IngestDefinition. This is the only code you need to write.
namespace App\Ingest; use App\Models\User; use LaravelIngest\Contracts\IngestDefinition; use LaravelIngest\IngestConfig; use LaravelIngest\Enums\SourceType; use LaravelIngest\Enums\DuplicateStrategy; class UserImporter implements IngestDefinition { public function getConfig(): IngestConfig { return IngestConfig::for(User::class) ->fromSource(SourceType::UPLOAD) ->keyedBy('email') // Identify records by email ->onDuplicate(DuplicateStrategy::UPDATE) // Update if exists // Map CSV columns to DB attributes ->map('Full Name', 'name') ->map(['E-Mail', 'Email Address'], 'email') // Supports aliases // Handle Relationships automatically ->relate('Role', 'role', Role::class, 'slug', createIfMissing: true) // Validate rows before processing ->validate([ 'email' => 'required|email', 'Full Name' => 'required|string|min:3' ]); } }
In App\Providers\AppServiceProvider:
use LaravelIngest\IngestServiceProvider; public function register(): void { $this->app->tag([UserImporter::class], IngestServiceProvider::INGEST_DEFINITION_TAG); }
You can now trigger the import via CLI or API.
Via Artisan (Backend / Cron):
php artisan ingest:run user-importer --file=users.csv
Via API (Frontend / Upload):
curl -X POST \ -H "Authorization: Bearer <token>" \ -F "file=@users.csv" \ https://your-app.com/api/v1/ingest/upload/user-importer
Want to see Laravel Ingest in action? Check out our Laravel Ingest Demo repository for a complete working example.
# Clone the demo git clone https://github.com/zappzerapp/Laravel-Ingest-Demo.git cd Laravel-Ingest-Demo # Start and benchmark docker compose up -d docker compose exec app php artisan benchmark:ingest
Ingest runs happen in the background. You can monitor and manage them easily:
| Command | Description |
|---|---|
ingest:list |
Show all registered importers. |
ingest:status {id} |
Show progress bar, stats, and errors for a run. |
ingest:cancel {id} |
Stop a running import gracefully. |
ingest:retry {id} |
Create a new run containing only the rows that failed previously. |
The package automatically exposes endpoints for building UI integrations (e.g., React/Vue progress bars).
GET /api/v1/ingest – List recent runs.GET /api/v1/ingest/{id} – Get status and progress.GET /api/v1/ingest/{id}/errors/summary – Get aggregated error stats (e.g., "50x Email invalid").GET /api/v1/ingest/{id}/failed-rows/download – Download a CSV of failed rows to fix & re-upload.Hook into the lifecycle to send notifications (e.g., Slack) or trigger downstream logic.
LaravelIngest\Events\IngestRunStartedLaravelIngest\Events\ChunkProcessedLaravelIngest\Events\RowProcessedLaravelIngest\Events\IngestRunCompletedLaravelIngest\Events\IngestRunFailedTo keep your database clean, logs are prunable. Add this to your scheduler:
$schedule->command('model:prune', [ '--model' => [LaravelIngest\Models\IngestRow::class], ])->daily();
The IngestConfig fluent API handles complex scenarios with ease.
IngestConfig::for(Product::class) // Sources: UPLOAD, FILESYSTEM, URL, FTP, SFTP ->fromSource(SourceType::FTP, ['disk' => 'erp', 'path' => 'daily.csv']) // Performance ->setChunkSize(1000) ->atomic() // Wrap chunks in transactions // Logic ->keyedBy('sku') ->onDuplicate(DuplicateStrategy::UPDATE_IF_NEWER) ->compareTimestamp('last_modified_at', 'updated_at') // Transformation ->mapAndTransform('price_cents', 'price', fn($val) => $val / 100) ->resolveModelUsing(fn($row) => $row['type'] === 'digital' ? DigitalProduct::class : Product::class);
See the Documentation for all available methods.
We provide a Docker-based test environment to ensure consistency.
# Start Docker composer docker:up # Run Tests composer docker:test # Check Coverage composer docker:coverage
We welcome contributions! Please see CONTRIBUTING.md for details.
The MIT License (MIT). Please see License File for more information.
Laravel News Links
https://www.yahoo.com/news/video/watching-super-bowl-sports-commercials-211907376.html?format=embed®ion=US&lang=en-US&site=news&player_autoplay=false
The 2026 Super Bowl between the New England Patriots and the Seattle Seahawks will air on NBC this Sunday, Feb. 8. The game will also stream on Peacock. If you don’t have NBC over the air and don’t subscribe to Peacock, there are still ways to watch Super Bowl LX — and Bad Bunny’s history-making halftime show — for free. Here’s how to tune in.
Date: Sunday, Feb. 8
Time: 6:30 p.m. ET
Location: Levi’s Stadium in Santa Clara, Calif.
TV channel: NBC, Telemundo
Streaming: Peacock, DirecTV, NFL+ and more
Super Bowl LX will air on NBC. A Spanish-language broadcast is available on Telemundo.
You can stream NBC and Telemundo on platforms like DirecTV and Hulu + Live TV; both offer free trials and are among Engadget’s choices for best streaming services for live TV. (Note that Fubo and NBC are currently in the midst of a contract dispute and NBC channels are not available on the platform.)
The 2026 Super Bowl kicks off at 6:30 p.m. ET/3:30 p.m. PT on Sunday, Feb. 8. Green Day will be performing a pre-game special starting at 6 p.m. ET.
The AFC champions, the New England Patriots, will play the NFC champions, the Seattle Seahawks.
The 2026 Super Bowl will be held at Levi’s Stadium in Santa Clara, Calif., home of the San Francisco 49ers.
Bad Bunny is headlining the 2026 Super Bowl halftime performance. You can expect that show to begin after the second quarter, likely between 8-8:30 p.m. ET. Green Day will perform a pre-game show starting at 6 p.m. ET. If you’re tuning in before the game, singer Charlie Puth will perform the National Anthem, Brandi Carlile is scheduled to sing "America the Beautiful," and Grammy winner Coco Jones will perform "Lift Every Voice and Sing."
This article originally appeared on Engadget at https://www.engadget.com/entertainment/streaming/how-to-stream-the-2026-super-bowl-for-free-patriots-vs-seahawks-time-where-to-watch-and-more-124512202.html?src=rssEngadget
https://villagesql.com/blog/content/images/size/w1200/2026/02/VillageSQL_PrimaryLogo_Vert_Light–1-.png
MySQL is the world’s most popular open-source database by many measures but a persistent innovation gap has emerged. This gap causes developers to select other databases over MySQL for new application development, particularly when AI is involved. Today, we are launching VillageSQL to close that gap and empower the MySQL community by enabling permissionless innovation via extensions. VillageSQL is the innovation platform for MySQL and is focused on giving MySQL a new path for the agentic AI era.
VillageSQL Server for MySQL is an open-source tracking fork that is a drop-in replacement for MySQL. It introduces an extension framework that includes custom data types and custom functions (with custom indexes coming soon). This extension framework unlocks rapid innovation for existing MySQL installations. It also allows developers building AI, agentic, and enterprise applications to choose MySQL without waiting for new features in future releases.
Ready to try it out? VillageSQL Server is now available in alpha.
The MySQL Innovation Gap
In recent years, much of the innovation and community development with open-source databases has focused on the PostgreSQL ecosystem. PostgreSQL development is governed by predictable community guidelines and the database supports a robust extension framework. An extension, framework like those found in many open-source projects such as PostgreSQL, Jenkins, or Grafana, enables developers to implement and publish new functionality to extend and modify the core of the project. Extensions don’t require broader agreement of the community before publishing. This is a powerful, permissive dynamic that unlocks the creativity of the community.
At the same time, gaps exist in MySQL’s functionality that have hindered its relevance with AI-era workloads. For example, there is no built-in implementation of vector search that retrieval augmented generation (RAG) use cases require. MySQL supports limited extensibility via plug-ins and components, but their limitations have hindered innovation in the MySQL ecosystem.
Introducing the Extension Framework for MySQL
We founded VillageSQL with the mission to empower the MySQL community by enabling permissionless innovation. VillageSQL Server is a tracking fork of MySQL. It is a drop-in replacement and supports adding new functionality through extensions. While MySQL supports, and has benefited from, a plugin architecture and a component framework, we believe extensions offer a more holistic and structured approach to extending the database. Installing extensions is simple and MySQL-idiomatic (or, what we call, “Myonic”).
We are launching a handful of extensions we thought were interesting. These extensions enable AI prompting via SQL functions, along with support for UUIDs, network addresses (IPv6/MAC), cryptographic functions, and a complex number data type. Our roadmap includes new AI features like vector indexing and optimized vector search. We’ve designed VillageSQL so developers can build and share their own extensions, and we can’t wait to see what the community builds next.
How it Works: "Myonic" Extensions
We define an extension in VillageSQL as a single packaging of extended types, indexes (coming soon), and functions that work together as a cohesive logical unit. Developers deploy these logical units as external repos or compiled dynamic libraries. A database administrator can copy the extension file into the VillageSQL extensions directory and run the SQL command ‘INSTALL EXTENSION_NAME’ to add the extension’s functionality to the database engine.
# Install UUID extension
INSTALL EXTENSION ‘vsql_uuid’;# Create a users table with UUID primary key
CREATE TABLE users (
id UUID PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
This release is intended to provide developers with a preview for experimentation and feedback, not production workloads. For a look at where we are headed, including the path to a production-ready release, see the roadmap.
It Takes a Village
At VillageSQL, we believe in a community-driven approach. This means empowering and supporting contributors across developers and companies to allow self-directed implementations of extensions. Join the village today by writing and contributing extensions, reviewing documentation, submitting bugs, etc. on GitHub. Connect with us on Discord. Subscribe for updates over email here.
We are very excited to see where the MySQL community takes this project, but we already know “it takes a village” to be successful.
To get started or learn more, go to villagesql.com/.
Dominic Preuss (Village Steward/CEO) and Steve Schirripa (Village Architect/CTO) – Co-Founders
Planet for the MySQL Community
BrianFagioli writes: Google has quietly retired the ZetaSQL name and rebranded its open source SQL analysis and parsing project as GoogleSQL. This is not a technical change but a naming cleanup meant to align the open source code with the SQL dialect already used across Google products like BigQuery and Spanner. Internally, Google has long called the dialect GoogleSQL, even while the open source project lived under a different name. By unifying everything under GoogleSQL, Google says it wants to reduce confusion and make it clearer that the same SQL foundation is shared across its cloud services and open source tooling. The code, features, and team remain unchanged. Only the name is different. GoogleSQL is now the single label Google wants developers to recognize and use going forward.
Read more of this story at Slashdot.
Slashdot
https://placeholderblog.netlify.app/assets/blog/vector.jpg?v=1
You know that feeling when you’re building a Laravel app and you just need a tiny bit of reactivity? A counter. A toggle. Something that feels overkill for a full Vue component but too annoying for vanilla JavaScript?
I kept reaching for Alpine.js, which is great, but I wanted Vue’s Composition API. The ref(), the computed(), the familiar syntax I already know. So I built Vector.
Vector is a Laravel package that lets you write Vue directly in your Blade templates with zero ceremony:
<script setup>
const i = ref(0);
</script>
<div>
<button @click="i++">Click Me</button>
<div>
Count: @
</div>
<div v-if="i > 5">Success!</div>
</div>
That’s the whole thing. No build step for your components. No separate .vue files. No special directives wrapping your code. Just a <script setup> tag and you’re done.
The <script setup> tag gets transformed at compile time. Vector treats the element immediately after the script tag as your Vue template. Everything inside that element becomes reactive, and anything outside it remains regular Blade.
<script setup> blocksThe key part is the variable extraction. It parses const, let, and var declarations and auto-returns them to the template. You write normal code, it figures out the rest.
Since Blade also uses for output, you need to prefix Vue’s mustache syntax with @ to prevent Blade from processing it:
@
Alternatively, use Vue directives like v-text which don’t conflict with Blade:
<span v-text="count"></span>
composer require brunoabpinto/vector
Add Vector to your Vite entry points in vite.config.js:
plugins: [
laravel({
input: [
"resources/css/app.css",
"resources/js/app.js",
"resources/js/vendor/vector.js",
],
// ...
}),
],
resolve: {
alias: {
'vue': 'vue/dist/vue.esm-bundler.js',
},
},
Add @vectorJs before your closing </body> tag in your layout:
<body>
@vectorJs
</body>
That’s it. Vector auto-publishes its runtime, and @vectorJs loads it where you need it.
Let’s be real about what this is:
Good for:
Not great for:
The package is available on GitHub. Star it, fork it, tell me it’s an abomination. Whatever feels right.
composer require brunoabpinto/vector
Laravel News Links
https://theawesomer.com/photos/2026/02/rotating_marble_machine_t.jpg
This desktop marble machine by MaKim Projects features a rotating tower that keeps things rolling all day long. After its steel spheres roll down a series of twisting and spiraled ramps, they return to the top on its illuminated corkscrew elevator. Want your own? The 3D model is available on MakerWorld, with a parts kit for sale on the Bambu Lab store.
The Awesomer
https://media.notthebee.com/articles/6981038e1a2c56981038e1a2c6.jpg
This is a real ad:
Not the Bee
Laravel News Links
https://theawesomer.com/photos/2026/01/dying_by_lightsaber_t.jpg
When people in Star Wars get killed or dismembered by a lightsaber, it’s a pretty neat, tidy, and speedy event. But the morbid Mr. Death explains what’s more likely to happen to a human struck by a 20,000°C plasma beam when taking real-world physics into account. It sounds quite awful compared to what we’ve seen on screen.
The Awesomer