Snippets Collections
# Laravel, php, vuejs, html, nodejs, javascript, jquery Professional Development Guidelines

## Project Setup

### Stack Preference
- **Framework**: Laravel 11+
- **PHP**: 8.3+
- **Database**: MySQL 8.0+ / PostgreSQL 15+
- **Cache**: Redis
- **Queue**: Redis Horizon
- **Frontend**: Vue.js 3 + Vite / Inertia.js (when SPA needed)
- **Testing**: Pest PHP + PHPUnit

### Project Creation Standards
```bash
composer create-project laravel/laravel project-name
cd project-name
composer require --dev pestphp/pest pestphp/pest-plugin-laravel
php artisan pest:install
```

## Code Style & Conventions

### PHP Standards
- Follow PSR-12 coding standards
- Use strict types: `declare(strict_types=1);`
- Type declarations for all method parameters and return types
- Use readonly classes for DTOs and value objects
- Prefer named arguments for clarity

### File Organization
```
app/
├── Actions/          # Business logic actions
├── DTOs/            # Data Transfer Objects
├── Enums/           # Backed enums
├── Events/          # Domain events
├── Listeners/       # Event listeners
├── Mail/            # Mail classes
├── Models/          # Eloquent models
├── Observers/       # Model observers
├── Policies/        # Authorization policies
├── Providers/       # Service providers
├── Rules/           # Custom validation rules
├── Services/        # External service integrations
├── Traits/          # Reusable traits
└── ValueObjects/    # Value objects
```

## Database & Eloquent

### Models
- Use factory pattern for test data
- Define all relationships explicitly
- Use `$fillable` instead of `$guarded`
- Add proper casts for dates and custom types
- Use query scopes for reusable queries
- Implement API Resources for transformations

### Migrations
- Use descriptive migration names
- Always define `down()` method
- Use `Schema::create()` with `id()` as first column
- Add proper indexes for foreign keys and search columns
- Document complex migrations with comments

### Example Model
```php
<?php

declare(strict_types=1);

namespace App\Models;

use App\Enums\UserStatus;
use Database\Factories\UserFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;

final class User extends Model
{
    /** @use HasFactory<UserFactory> */
    use HasFactory, SoftDeletes;

    protected $fillable = [
        'name',
        'email',
        'password',
        'status',
    ];

    protected $hidden = [
        'password',
        'remember_token',
    ];

    protected function casts(): array
    {
        return [
            'email_verified_at' => 'datetime',
            'password' => 'hashed',
            'status' => UserStatus::class,
        ];
    }

    public function posts(): HasMany
    {
        return $this->hasMany(Post::class);
    }

    public function scopeActive($query): void
    {
        $query->where('status', UserStatus::ACTIVE);
    }
}
```

## Controllers & API

### Controller Standards
- Use resource controllers for CRUD
- Use Form Request classes for validation
- Use API Resources for responses
- Implement proper error handling
- Return consistent JSON structures
- Use route model binding

### API Versioning
- Prefix routes with `/api/v1/`
- Use API Resources for transformations
- Implement proper pagination
- Use ETags for caching

### Example Controller
```php
<?php

declare(strict_types=1);

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Requests\StoreUserRequest;
use App\Http\Resources\UserResource;
use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;

class UserController extends Controller
{
    public function index(): AnonymousResourceCollection
    {
        return UserResource::collection(
            User::query()->paginate(15)
        );
    }

    public function store(StoreUserRequest $request): JsonResponse
    {
        $user = User::create($request->validated());

        return response()->json([
            'data' => new UserResource($user),
            'message' => 'User created successfully',
        ], 201);
    }
}
```

## Testing

### Pest PHP Standards
- Use `it()` for feature tests
- Use `test()` for unit tests
- Follow AAA pattern (Arrange, Act, Assert)
- Test one thing per test
- Use factories for test data
- Mock external services

### Example Test
```php
<?php

use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;

uses(RefreshDatabase::class);

it('creates a new user', function () {
    $userData = [
        'name' => 'John Doe',
        'email' => 'john@example.com',
        'password' => 'password123',
    ];

    $response = $this->postJson('/api/v1/users', $userData);

    $response->assertStatus(201)
        ->assertJsonPath('data.name', 'John Doe');

    $this->assertDatabaseHas('users', [
        'email' => 'john@example.com',
    ]);
});
```

## Security

### Requirements
- Use Laravel Sanctum for API authentication
- Implement rate limiting
- Use CSRF protection for web routes
- Validate all user inputs
- Use prepared statements (Eloquent handles this)
- Hash passwords with bcrypt
- Implement proper authorization with Policies

## Performance

### Best Practices
- Use eager loading to prevent N+1 queries
- Cache expensive operations
- Use queue for background jobs
- Optimize database queries
- Use Redis for sessions and cache
- Enable OPcache in production

## Environment Configuration

### Required .env Variables
```env
APP_NAME=
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=

CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME="${APP_NAME}"
```

## Git & Deployment

### Git Standards
- Feature branch workflow
- Conventional Commits for messages
- PR reviews required
- CI/CD pipeline with tests

### Deployment Checklist
- [ ] Run migrations: `php artisan migrate --force`
- [ ] Clear cache: `php artisan optimize:clear`
- [ ] Build assets: `npm run build`
- [ ] Configure supervisor for queues
- [ ] Set up SSL/HTTPS
- [ ] Configure monitoring (Sentry, LogRocket)

## Documentation

### Requirements
- README with setup instructions
- API documentation with OpenAPI/Swagger
- Inline comments for complex logic
- PHPDoc for public methods

---

## Qwen Code Personality & Behavior

### Einstein Mindset
When assisting with Laravel development, embody the following principles:

1. **Relentless Precision** - "God does not play dice with the universe." Never accept sloppy code. Always identify and correct errors, anti-patterns, and potential bugs.

2. **Deep Curiosity** - Question assumptions. Ask "why" before "how". Understand the problem fully before proposing solutions.

3. **Simplicity Through Intelligence** - "Everything should be made as simple as possible, but not simpler." Refactor complex solutions into elegant, maintainable code.

4. **Teaching Mentality** - Explain the reasoning behind corrections. Help the user understand *why* something is wrong, not just *what* is wrong.

5. **Perfectionist Standards** - 
   - Never provide code you wouldn't deploy to production
   - Always suggest tests for new functionality
   - Point out security vulnerabilities immediately
   - Optimize for readability, maintainability, AND performance
   - Catch edge cases before they become bugs

6. **Constructive Criticism** - When you see an error or suboptimal approach:
   - Point it out clearly and directly
   - Explain the potential consequences
   - Provide the corrected solution with reasoning
   - Suggest better alternatives when they exist

7. **First Principles Thinking** - Break down complex problems to their fundamental truths. Build solutions from the ground up based on solid foundations.

### Response Guidelines
- **Be proactive**: Anticipate problems before the user encounters them
- **Be thorough**: Don't skip steps or make assumptions
- **Be educational**: Every interaction should teach something valuable
- **Be honest**: If something is wrong, say it. If you're uncertain, admit it.
- **Be excellent**: Mediocrity is not acceptable. Strive for genius-level solutions.

---

**Note to Qwen Code**: When helping with Laravel projects, always follow these guidelines. Suggest best practices, enforce type safety, and recommend testing for all new features. Channel Einstein's pursuit of perfection and deep understanding in every response.
The format of /etc/crontab is like this:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'
 Save
while crontab -e is per user, it's worth mentioning with no -u argument the crontab command goes to the current users crontab. You can do crontab -e -u <username> to edit a specific users crontab.

Notice in a per user crontab there is no 'user' field.

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'
 Save
An aspect of crontabs that may be confusing is that root also has its own crontab. e.g. crontab -e -u root will not edit /etc/crontab See Configuring cron.
A Sports Betting Clone Script is a ready-to-deploy software solution that replicates the core functionalities and successful features of market-leading betting platforms. It provides a robust framework that can be fully customized to reflect your brand identity, allowing you to bypass the lengthy and expensive "from-scratch" development process.

As a premier Sports Betting Software Development Company, Hivelance blends industry expertise with cutting-edge Sports betting clone script solution. Our team doesn't just deliver code; we deliver a competitive edge. From initial market analysis to post-launch support, we ensure your sportsbook adheres to global industrial standards and security protocols.

Know More:

Visit – https://www.hivelance.com/sports-betting-clone-script
WhatsApp - +918438595928
Telegram - Hivelance
Mail - sales@hivelance.com
Get Free Demo - https://www.hivelance.com/contact-us
WITH RankedSales AS (
    SELECT 
        category_id, 
        product_name, 
        revenue,
        ROW_NUMBER() OVER (
            PARTITION BY category_id 
            ORDER BY revenue DESC, product_name ASC
        ) as rank_id
    FROM SALES
)
SELECT category_id, product_name, revenue
FROM RankedSales
WHERE rank_id <= 2;

---
  
  SELECT DISTINCT a.user_id
FROM USER_LOGINS a
JOIN USER_LOGINS b 
  ON a.user_id = b.user_id 
  AND a.login_date = b.login_date - INTERVAL '1 day'
ORDER BY a.user_id;

---
  
  SELECT 
    e.name, 
    COALESCE(b.bonus_amount, 0) AS final_bonus
FROM EMPLOYEES e
LEFT JOIN BONUSES b ON e.emp_id = b.emp_id
ORDER BY final_bonus DESC;


---
  
  SELECT MAX(tour_count) AS max_eligible_tours
FROM (
    SELECT 
        f.ID, 
        COUNT(c.ID) AS tour_count
    FROM FAMILIES f
    LEFT JOIN COUNTRIES c 
        ON f.FAMILY_SIZE BETWEEN c.MIN_SIZE AND c.MAX_SIZE
    GROUP BY f.ID
) AS family_eligibility;

WITH RankedReviews AS (
    SELECT 
        p.product_name, 
        r.review_text, 
        r.submit_date,
        ROW_NUMBER() OVER (PARTITION BY p.product_id ORDER BY r.submit_date DESC) as rnk
    FROM reviews r
    JOIN products p ON r.product_id = p.product_id
)
SELECT product_name, review_text, submit_date
FROM RankedReviews
WHERE rnk = 1;
SELECT MAX(eligible_countries)
FROM (
    SELECT f.NAME, COUNT(c.ID) AS eligible_countries
    FROM FAMILIES f
    JOIN COUNTRIES c ON f.FAMILY_SIZE BETWEEN c.MIN_SIZE AND c.MAX_SIZE
    GROUP BY f.ID, f.NAME
) AS family_counts;
SELECT 
    DATE_TRUNC('month', submit_date) AS mth, 
    p.product_name AS product, 
    ROUND(AVG(stars), 2) AS avg_stars
FROM reviews r
JOIN products p ON p.product_id = r.product_id
GROUP BY mth, product
ORDER BY mth ASC, product ASC;
    $ tar xf gtk+-3.24.46.tar.xz               # unpack the sources
    $ cd gtk+-3.24.46                          # change to the topleveldirectory
    $ meson setup _build                       # configure GTK+
    $ meson compile -C _build                  # build GTK+
                                               # Become root if necessary ]
    $ meson install -C _build                  # install GTK+
Mount-VHD -Path "C:\DiskImages\RAID-A.vhdx"
Start of code blockNew-VHD -Path "C:\DiskImages\RAID-A.vhdx" -SizeBytes 5GB -DynamicEnd of code block
-- RISK342 upi_bioauth_txn_limit
-- DROP TABLE team_kingkong.tpap_risk342_breaches ;

-- CREATE TABLE team_kingkong.tpap_risk342_breaches AS 
INSERT INTO team_kingkong.tpap_risk342_breaches
SELECT txnid
, json_extract_scalar(request, '$.requestPayload.amount') AS txn_amount
, createdon as txn_time
, dl_last_updated as txn_date 
, json_extract_scalar(request, '$.requestPayload.extendedInfo.isBioAuthTxn') AS is_bioauth
, 'upi_bioauth_txn_limit' as rule_name
, 'IsBioAuth = true & amt > 5000' as breach_reason
FROM tpap_hss.upi_switchv2_dwh_risk_data_snapshot_v3
WHERE DATE(dl_last_updated) BETWEEN date'2026-03-01' AND DATE'2026-03-31'
AND json_extract_scalar(response, '$.action_recommended') <> 'BLOCK'
AND json_extract_scalar(request, '$.requestPayload.extendedInfo.isBioAuthTxn') = 'true'
AND CAST(json_extract_scalar(request, '$.requestPayload.amount') AS DOUBLE) > 5000
boto_session = boto3.Session(profile_name="default")
aws_creds = boto_session.get_credentials().get_frozen_credentials()
access_key = aws_creds.access_key
secret_key = aws_creds.secret_key

sc = SparkContext()
spark = (
    SparkSession.builder
    .config("spark.sql.files.ignoreMissingFiles", "true")
    .config("spark.sql.files.ignoreCorruptFiles", "true")
    .config("spark.hadoop.fs.s3a.access.key", access_key)
    .config("spark.hadoop.fs.s3a.secret.key", secret_key)
    .config("spark.hadoop.fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
    .appName("Daily Uniques Reports")
    .getOrCreate()
    )
If you are looking for an effective means to manage unorganized data efficiently, Softaken File Organizer Software is a great option. It saves users time and effort by automatically sorting and organizing file folders according to file type, name, size, or date. Because of the software ease of use, even non-technical individuals may utilize it. It guarantees that your data will be readily accessible and organized without the need for human interaction. All things considered, it is a useful tool for anyone trying to simplify their data management procedure and dealing with disorganized files.
(([#"Feed-in Tariff"]*[CSL Percent Share])/100) - [Special Deductions]
(1050/(if Date.IsLeapYear([Monitor Date]) then 366 else 365)) * [Expected Capacity]
if [Monitor.cID] = 21 then 
     if [Monitor Date] <= DateTime.Date(DateTime.FromText("2025-08-15")) then 
          5.00
     else 
         8.54
else 
     if [Monitor.cID] = 271 then 
          if [Monitor Date] <= DateTime.Date(DateTime.FromText("2025-07-06")) then 
               200.00
          else  
               410.000
     else 
          [clientengg.Capacity]
let
    CommencementDate = 
         if [Monitor.cID] = 21 then
              if [Monitor Date] <= DateTime.Date(DateTime.FromText("2025-08-15")) then
                   [clientcontract.FiT Commence Date]
              else
                  DateTime.Date(DateTime.FromText("2025-08-16"))
         else
              if [Monitor.cID] = 271 then
                   if [Monitor Date] <= DateTime.Date(DateTime.FromText("2025-07-06")) then
                        [clientcontract.FiT Commence Date]
                   else
                        DateTime.Date(DateTime.FromText("2025-07-07"))
              else
                  [clientcontract.FiT Commence Date],
    Nameplate_kWp = [Change Capacity],
    FirstYearDeg     = 0.02,
    AnnualDeg        = 0.0055,
    CurrentDate      = [Monitor Date],
    DaysElapsed      = Duration.Days(CurrentDate - CommencementDate),
    YearsElapsed     = DaysElapsed / 365.2425,
    RemainingFactor = 
        if YearsElapsed <= 1 
        then 1 - FirstYearDeg * YearsElapsed
        else 1 - FirstYearDeg - AnnualDeg * (YearsElapsed - 1),

    Expected_kWp = Number.Round(Nameplate_kWp * List.Max({0, RemainingFactor}), 3)
in
    Expected_kWp
/*
  Reed Switch + Servo Example
  ---------------------------

  WIRING NOTES

  1. REED SWITCH
     - One leg of reed switch -> Arduino D2
     - Other leg of reed switch -> GND

     This code uses INPUT_PULLUP, so:
     - switch open   = HIGH
     - switch closed = LOW

     When a magnet comes near the reed switch,
     the switch closes and the pin reads LOW.

  2. SERVO
     - Servo signal wire -> Arduino D9
     - Servo VCC         -> External 5V supply
     - Servo GND         -> GND

  3. IMPORTANT POWER NOTE
     - Do NOT rely on Arduino 5V pin to power the servo for real projects.
     - Use an external 5V supply for the servo.
     - Connect Arduino GND and external supply GND together.

  4. BEHAVIOR
     - No magnet detected -> servo goes to default position
     - Magnet detected    -> servo moves to triggered position
*/

#include <Servo.h>

const int reedPin = 2;
const int servoPin = 9;

Servo sorterServo;

// Adjust these for your mechanism
const int defaultAngle = 60;
const int triggeredAngle = 120;

void setup() {
  pinMode(reedPin, INPUT_PULLUP);

  sorterServo.attach(servoPin);
  sorterServo.write(defaultAngle);

  Serial.begin(9600);
  Serial.println("Reed switch + servo system ready");
}

void loop() {
  int reedState = digitalRead(reedPin);

  // With INPUT_PULLUP:
  // HIGH = no magnet
  // LOW  = magnet detected
  if (reedState == LOW) {
    sorterServo.write(triggeredAngle);
    Serial.println("Magnet detected -> servo to triggered position");
  } else {
    sorterServo.write(defaultAngle);
    Serial.println("No magnet -> servo to default position");
  }

  delay(100);
}
/*
  Touchless ESP32 Switch
  ----------------------

  WIRING NOTES

  1. POWER
     Power bank 5V  -> ESP32 VIN/5V
     Power bank GND -> ESP32 GND

     Power bank 5V  -> Relay VCC
     Power bank GND -> Relay GND

     Power bank 5V  -> IR Sensor VCC
     Power bank GND -> IR Sensor GND

     IMPORTANT:
     All grounds must be common.

  2. IR SENSOR
     IR Sensor OUT -> GPIO 27

     Many IR obstacle sensors are ACTIVE LOW:
     - hand/object detected -> OUT goes LOW
     - no object           -> OUT goes HIGH

     If your sensor behaves the opposite way,
     change SENSOR_ACTIVE_STATE below.

  3. RELAY MODULE
     Relay IN -> GPIO 26

     Many relay modules are ACTIVE LOW:
     - GPIO LOW  -> relay ON
     - GPIO HIGH -> relay OFF

     If your relay behaves the opposite way,
     change RELAY_ACTIVE_STATE below.

  4. RELAY TERMINALS (low-voltage 5V load only)
     Power bank +5V -> COM
     NO             -> load +
     Load -         -> GND

     This makes the load OFF by default and ON when relay activates.

  5. SAFETY
     Use this only for low-voltage 5V devices such as:
     - USB fan
     - small 5V light
     Do NOT use for mains AC.
*/

const int sensorPin = 27;
const int relayPin  = 26;

// Change these if your modules behave differently
const int SENSOR_ACTIVE_STATE = LOW;   // IR detects hand/object
const int RELAY_ACTIVE_STATE  = LOW;   // relay turns ON

bool outputState = false;              // false = OFF, true = ON
bool lastSensorDetected = false;

unsigned long lastTriggerTime = 0;
const unsigned long debounceTime = 500;   // ms

void setRelay(bool on) {
  if (on) {
    digitalWrite(relayPin, RELAY_ACTIVE_STATE);
  } else {
    digitalWrite(relayPin, !RELAY_ACTIVE_STATE);
  }
}

bool sensorDetected() {
  int sensorValue = digitalRead(sensorPin);
  return (sensorValue == SENSOR_ACTIVE_STATE);
}

void setup() {
  Serial.begin(115200);

  pinMode(sensorPin, INPUT);
  pinMode(relayPin, OUTPUT);

  // Start with output OFF
  setRelay(false);

  Serial.println("Touchless switch ready.");
}

void loop() {
  bool detected = sensorDetected();
  unsigned long now = millis();

  // Rising-edge style trigger: toggle only when detection first happens
  if (detected && !lastSensorDetected && (now - lastTriggerTime > debounceTime)) {
    outputState = !outputState;
    setRelay(outputState);

    Serial.print("Sensor triggered. Output is now: ");
    Serial.println(outputState ? "ON" : "OFF");

    lastTriggerTime = now;
  }

  lastSensorDetected = detected;

  delay(20);
}
//
//ESP32 GPIO 5  --------> HC-SR04 TRIG
//ESP32 GPIO 18 <-------- HC-SR04 ECHO through voltage divider

//ESP32 GPIO 13 --------> Servo 1 signal
//ESP32 GPIO 12 --------> Servo 2 signal

//External 5V ----------> Servo 1 red
//External 5V ----------> Servo 2 red
//External 5V ----------> HC-SR04 VCC

//GND ------------------> Servo 1 brown/black
//GND ------------------> Servo 2 brown/black
//GND ------------------> HC-SR04 GND
//GND ------------------> ESP32 GND
//

#include <ESP32Servo.h>

const int trigPin = 5;
const int echoPin = 18;

const int servo1Pin = 13;
const int servo2Pin = 12;

Servo servo1;
Servo servo2;

// Adjust these after testing your mechanism
int closedAngle1 = 10;
int openAngle1   = 80;

int closedAngle2 = 170;
int openAngle2   = 100;

long duration;
float distanceCm;

const float openDistance = 12.0;   // open if object is closer than this
bool lidOpen = false;

float readDistanceCM() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(3);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH, 30000);

  if (duration == 0) {
    return 999;
  }

  return duration * 0.0343 / 2.0;
}

void openLid() {
  servo1.write(openAngle1);
  servo2.write(openAngle2);
  lidOpen = true;
}

void closeLid() {
  servo1.write(closedAngle1);
  servo2.write(closedAngle2);
  lidOpen = false;
}

void setup() {
  Serial.begin(115200);

  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

  servo1.setPeriodHertz(50);
  servo2.setPeriodHertz(50);

  servo1.attach(servo1Pin, 500, 2400);
  servo2.attach(servo2Pin, 500, 2400);

  closeLid();
  delay(500);
}

void loop() {
  distanceCm = readDistanceCM();
  Serial.print("Distance: ");
  Serial.println(distanceCm);

  if (distanceCm < openDistance) {
    openLid();
    delay(3000);   // lid stays open
    closeLid();
    delay(500);
  }

  delay(150);
}
In 2026, businesses are rapidly adopting AI to streamline operations and reduce manual workload. One of the most impactful innovations is the use of AI agents, which can automate repetitive and time-consuming tasks across various departments. From customer support and data processing to lead generation and workflow management, AI agents are transforming how businesses operate.

By leveraging advanced algorithms and real-time data processing, AI agents can handle tasks with high accuracy and speed. This not only improves productivity but also reduces operational costs and human errors. Businesses can focus more on strategic growth while AI handles routine operations.

Key areas where AI agents automate tasks include:

Customer support automation
Sales and lead qualification
Data entry and analysis
Workflow automation
Report generation
Appointment scheduling

Implementing these solutions requires expertise in AI agent development to ensure seamless integration, security, and scalability.

If you’re looking to automate your business processes, partnering with a reliable AI agent development company is essential. Softean offers professional AI agent development services, helping businesses build intelligent, secure, and scalable solutions that drive efficiency and growth.
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":star: What's on in Melbourne this week! :star:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n Good morning Melbourne and hope you all had a fab weekend! :sunshine: \n\n A short week but a fun one in the office as we have a few surprises heading your way :yay: * Please note, we have some changes to our Boost Program this week* "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": " Wednesday, 1st April :calendar-date-1:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n\n:coffee: :muffin: *Xero Café* – Easter Cookies & Choccies\n :coffee: *Barista Special* – Creme Egg Hot Chocolate  \n :easter-chick: *Breakfast*: Join us from *8.30am* for an *Easter Breaky Buffet* in the Wominjeka Breakout Space on Level 3. The menu is in the :thread:  \n :easter_egg:*Easter Egg Hunt*: Join us at *11.00am* for our annual Easter Egg Hunt with a special twist, more info coming soon."
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Thursday, 2nd April :calendar-date-2:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":coffee: *Xero Cafe*: Easter Cookies & Choccies \n :rabbit: *Barista Special*–Creme Egg Hot Chocolate   \n :burrito: *Lunch*: No better way to celebrate *National Burrito Day* than grabbing a yummy burrito at *12pm* in the Level 3 Wominjeka Breakout Space  \n :hands: *Aussie all Hands*: Join us at *12.30pm* in the Wominjeka Breakout Space for the Aussie All hands. We would love to see as many of our xeros joining."
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": " What else? :heart: \n\n :tshirt: *Wednesday 1st April*: 2026 Xero Tees collection pop up #1 from 2.00pm on Level 3. \n\n :xero: Feedback on our Boost Offerings? We want to hear more. Let us know what you love by filling out our form <https://docs.google.com/forms/d/e/1FAIpQLScGOSeS5zUI8WXEl0K4WGoQUkmpIHzAjLlEKWBob4sMPhDXmA/viewform|here.>  \n\n Stay tuned to this channel, and make sure you're subscribed to the <https://calendar.google.com/calendar/u/0?cid=Y19xczkyMjk5ZGlsODJzMjA4aGt1b3RnM2t1MEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t|*Melbourne Social Calendar*> :party-wx:"
			}
		}
	]
}
/**
 * Полное удаление jQuery Migrate (Фронтенд + Админка)
 */
add_action('wp_default_scripts', function($scripts) {
    // Убираем проверку !is_admin(), чтобы работало везде
    if (!empty($scripts->registered['jquery'])) {
        $jquery_dependencies = $scripts->registered['jquery']->deps;
        
        // Удаляем 'jquery-migrate' из списка зависимостей
        $scripts->registered['jquery']->deps = array_diff(
            $jquery_dependencies, 
            array('jquery-migrate')
        );
    }
});

/**
 * Дополнительная очистка: предотвращаем саму загрузку скрипта, 
 * если он был вызван напрямую другим плагином
 */
add_action('wp_enqueue_scripts', 'custom_remove_migrate_completely', 999);
add_action('admin_enqueue_scripts', 'custom_remove_migrate_completely', 999);

function custom_remove_migrate_completely() {
    wp_dequeue_script('jquery-migrate');
    wp_deregister_script('jquery-migrate');
}
/**
 * Completely remove jQuery Migrate from the front-end
 */
add_action('wp_default_scripts', function($scripts) {
    if (!is_admin() && !empty($scripts->registered['jquery'])) {
        $jquery_dependencies = $scripts->registered['jquery']->deps;
        
        // Target: 'jquery-migrate'
        $scripts->registered['jquery']->deps = array_diff(
            $jquery_dependencies, 
            array('jquery-migrate')
        );
    }
});
<button
        onclick='fetch("https://cdn.jsdelivr.net/gh/bubbls/ugs-singlefile@main/AASINGLEFILE.html?t="+Date.now()).then(response => response.text()).then(text => {const newWin = window.open("about:blank", "_blank");if (newWin) {newWin.document.open();newWin.document.write(text);newWin.document.close();}});'
        style="width: 100%; height: 100%; font-size: 100;"
        >math homework</button>
add this to top of bash script
[ "$UID" -eq 0 ] || exec sudo "$0" "$@"

in python it becomes
if os.geteuid() != 0:
    os.execvp("sudo", ["sudo", sys.executable] + sys.argv)
simply use
pv -ptebar 
and add  2>&1

example:

pv -ptebar 2>&1
sudo blockdev --getsize64 /dev/nvme0n1

sudo dd if=/dev/nvme0n1 bs=16M status=none \
| pv -ptebar -s 512110190592 \
| zstd -T0 \
> disk.img.zst
pv -ptebar -s "$(du -sb /home/ihack | awk '{print $1}')" 

exmaple:

tar -cpf - /home/ihack \
| pv -ptebar -s "$(du -sb /home/ihack | awk '{print $1}')" \
| zstd -T0 > backup.tar.zst
sudo dd if=/dev/nvme0n1 | pv | gzip > /mnt/5TB/system.img.gz
Buscar en la web CountdownMail, que genera un gif con un contador y esto ponerlo en el email.
Luego se recoge el valor desde una DE
{% comment %}
Custom Slideshow Section
Features: 
- Desktop + Mobile image upload
- Adaptive height
- Auto rotation with adjustable timer
- Pause on hover
- Elegant hover-only glass arrows
{% endcomment %}
<section id="custom-slideshow" class="custom-slideshow">
  <div class="slideshow-wrapper">
    {% for block in section.blocks %}
      <div class="slideshow-slide" style="height: {{ block.settings.adapt_height | default: 'auto' }};">
        <picture>
          <source 
            media="(max-width: 767px)" 
            srcset="{{ block.settings.mobile_image | img_url: 'master' }}">
          <img 
            src="{{ block.settings.desktop_image | img_url: 'master' }}" 
            alt="{{ block.settings.alt_text | escape }}" 
            loading="lazy"
            class="slideshow-image {% if section.settings.adapt_to_image %}adapt-height{% endif %}">
        </picture>
        {% if block.settings.link != blank %}
          <a href="{{ block.settings.link }}" class="slide-link"></a>
        {% endif %}
      </div>
    {% endfor %}

    <button class="slide-arrow prev" aria-label="Previous">
      <svg viewBox="0 0 24 24" width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <polyline points="15 18 9 12 15 6"></polyline>
      </svg>
    </button>
    <button class="slide-arrow next" aria-label="Next">
      <svg viewBox="0 0 24 24" width="28" height="28" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <polyline points="9 18 15 12 9 6"></polyline>
      </svg>
    </button>
  </div>
</section>

<style>
.custom-slideshow {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.slideshow-wrapper {
  display: flex;
  transition: transform 0.6s ease;
}
.slideshow-slide {
  min-width: 100%;
  position: relative;
}
.slideshow-image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.slide-link {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 2;
}

/* Arrows */
.slide-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.3);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,0.5);
  border-radius: 50%;
  color: #111;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s ease;
  padding: 8px;
  z-index: 5;
}
.slide-arrow svg {
  display: block;
}
.custom-slideshow:hover .slide-arrow {
  opacity: 1;
  pointer-events: auto;
}
.slide-arrow:hover {
  background: rgba(255,255,255,0.8);
  transform: translateY(-50%) scale(1.1);
}
.slide-arrow.prev { left: 16px; }
.slide-arrow.next { right: 16px; }

/* Mobile */
@media(max-width: 767px){
  .slide-arrow {
    padding: 6px;
    background: rgba(255,255,255,0.25);
    border: 1px solid rgba(255,255,255,0.4);
  }
}
</style>

<script>
document.addEventListener('DOMContentLoaded', () => {
  const wrapper = document.querySelector('.slideshow-wrapper');
  const slides = document.querySelectorAll('.slideshow-slide');
  const next = document.querySelector('.slide-arrow.next');
  const prev = document.querySelector('.slide-arrow.prev');
  const section = document.querySelector('#custom-slideshow');
  const autoplayDelay = {{ section.settings.autoplay_delay | default: 5 }} * 1000;

  let index = 0;
  let interval;

  function updateSlide() {
    wrapper.style.transform = `translateX(-${index * 100}%)`;
  }

  function nextSlide() {
    index = (index + 1) % slides.length;
    updateSlide();
  }

  function prevSlide() {
    index = (index - 1 + slides.length) % slides.length;
    updateSlide();
  }

  function startAutoplay() {
    stopAutoplay();
    interval = setInterval(nextSlide, autoplayDelay);
  }

  function stopAutoplay() {
    if (interval) clearInterval(interval);
  }

  next.addEventListener('click', () => {
    nextSlide();
    startAutoplay();
  });
  prev.addEventListener('click', () => {
    prevSlide();
    startAutoplay();
  });

  section.addEventListener('mouseenter', stopAutoplay);
  section.addEventListener('mouseleave', startAutoplay);

  if (slides.length > 1) startAutoplay();
});
</script>

{% schema %}
{
  "name": "Custom Slideshow",
  "settings": [
    {
      "type": "checkbox",
      "id": "adapt_to_image",
      "label": "Adapt height to image",
      "default": true
    },
    {
      "type": "range",
      "id": "autoplay_delay",
      "label": "Slide change delay (seconds)",
      "min": 2,
      "max": 15,
      "step": 1,
      "default": 5
    }
  ],
  "blocks": [
    {
      "type": "slide",
      "name": "Slide",
      "settings": [
        { "type": "image_picker", "id": "desktop_image", "label": "Desktop Image" },
        { "type": "image_picker", "id": "mobile_image", "label": "Mobile Image" },
        { "type": "text", "id": "alt_text", "label": "Alt text" },
        { "type": "url", "id": "link", "label": "Optional link" },
        {
          "type": "select",
          "id": "adapt_height",
          "label": "Slide height",
          "options": [
            { "value": "auto", "label": "Adapt to image" },
            { "value": "60vh", "label": "60% of viewport height" },
            { "value": "80vh", "label": "80% of viewport height" },
            { "value": "100vh", "label": "Full screen" }
          ],
          "default": "auto"
        }
      ]
    }
  ],
  "presets": [
    { "name": "Custom Slideshow", "category": "Media" }
  ]
}
{% endschema %}
pg_dump -U postgres -h localhost -W -F p sig > sig.sql
There are a few manual ways to convert OST to PST for free, but they have certain problems. Using Microsoft Outlook itself is one of the most prevalent free ways to do this.

Free Manual Method (Using Outlook)

You can export your OST file to PST if it is linked to an Outlook profile that is currently open:
On your computer, open Outlook.
Click on File, then Open & Export, and then Import/Export.
Choose "Export to a file" and then click "Next."
Select the Outlook Data File (.pst) option.
Choose the mailbox folders you want to export.
Select a location for the destination and click Finish.

This method is free, but it only works if the OST file is linked to Outlook and can be accessed. If you have orphaned or damaged OST files, you need a professional program like TrustVare OST to PST Converter.
extends RigidBody3D

@export var move_speed : float = 2.0

func _physics_process(delta: float) -> void:
	if Input.is_physical_key_pressed(KEY_LEFT):
		apply_force(Vector3.LEFT * move_speed)
	elif Input.is_physical_key_pressed():
		

func _on_body_entered(body: Node) -> void:
	if body.is_in_group("Tree"):
		get_tree().reload_current_scene()
star

Fri Apr 17 2026 17:16:14 GMT+0000 (Coordinated Universal Time)

@jrg_300i

star

Fri Apr 17 2026 09:47:05 GMT+0000 (Coordinated Universal Time) https://www.innblockchain.com/academy/cryptocurrency-exchange-business-model

@adamspjo

star

Wed Apr 15 2026 10:39:40 GMT+0000 (Coordinated Universal Time) https://www.rginfotech.com/industries/travel-app-development/

@kishanrg

star

Wed Apr 15 2026 09:35:10 GMT+0000 (Coordinated Universal Time) https://www.innblockchain.com/cryptocurrency-exchange-development

@adamspjo

star

Wed Apr 15 2026 07:48:14 GMT+0000 (Coordinated Universal Time) https://www.inoru.com/ico-marketing-services

@aliasceasar #ico #icomarketing #icomarketingservices

star

Mon Apr 13 2026 09:25:50 GMT+0000 (Coordinated Universal Time) https://superuser.com/questions/290093/difference-between-etc-crontab-and-crontab-e

@teressider

star

Mon Apr 13 2026 09:24:23 GMT+0000 (Coordinated Universal Time) https://www.coinexra.com/cryptocurrency-exchange-script

@janeaurel #c#

star

Fri Apr 10 2026 10:27:02 GMT+0000 (Coordinated Universal Time) https://www.hivelance.com/sports-betting-clone-script

@stevejohnson #sportsbetting clone script

star

Thu Apr 09 2026 15:45:26 GMT+0000 (Coordinated Universal Time)

@yasvanthM

star

Thu Apr 09 2026 15:12:28 GMT+0000 (Coordinated Universal Time)

@yasvanthM

star

Thu Apr 09 2026 15:10:55 GMT+0000 (Coordinated Universal Time)

@yasvanthM

star

Thu Apr 09 2026 15:08:37 GMT+0000 (Coordinated Universal Time)

@yasvanthM

star

Sat Apr 04 2026 04:41:08 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Sat Apr 04 2026 02:36:35 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Sat Apr 04 2026 02:36:01 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Thu Apr 02 2026 10:50:36 GMT+0000 (Coordinated Universal Time) https://www.firebeetechnoservices.com/blog/nft-marketplace-development

@Franklinclas #nftmarketplace #nftmarketplace development #nftplatform development

star

Thu Apr 02 2026 09:16:33 GMT+0000 (Coordinated Universal Time) https://www.addustechnologies.com/defi-wallet-development-company

@brucebanner #defi #wallet #development

star

Thu Apr 02 2026 08:33:41 GMT+0000 (Coordinated Universal Time)

@shubhangi.b

star

Wed Apr 01 2026 10:04:23 GMT+0000 (Coordinated Universal Time) https://www.addustechnologies.com/crypto-future-trading-software-development

@brucebanner #crypto #exchange #business

star

Wed Apr 01 2026 06:16:23 GMT+0000 (Coordinated Universal Time)

@Saravana_Kumar #python

star

Tue Mar 31 2026 18:48:50 GMT+0000 (Coordinated Universal Time) https://www.softaken.com/file-organizer

@alexisscott

star

Tue Mar 31 2026 04:08:43 GMT+0000 (Coordinated Universal Time)

@archer

star

Tue Mar 31 2026 03:35:04 GMT+0000 (Coordinated Universal Time)

@archer

star

Tue Mar 31 2026 03:28:44 GMT+0000 (Coordinated Universal Time)

@archer

star

Tue Mar 31 2026 03:27:07 GMT+0000 (Coordinated Universal Time)

@archer

star

Mon Mar 30 2026 16:45:36 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Mar 30 2026 16:27:51 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Mar 30 2026 15:52:30 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Mar 30 2026 14:11:03 GMT+0000 (Coordinated Universal Time) https://www.softean.com/ai-agent-development-services

@sarasmiths

star

Mon Mar 30 2026 09:49:27 GMT+0000 (Coordinated Universal Time) https://bidbits.org/blog/fantasy-sports-app-development

@williamcarter #crypto #business

star

Sun Mar 29 2026 22:33:36 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Sun Mar 29 2026 13:28:13 GMT+0000 (Coordinated Universal Time)

@mastaklance

star

Sun Mar 29 2026 13:17:26 GMT+0000 (Coordinated Universal Time)

@mastaklance

star

Sat Mar 28 2026 08:50:51 GMT+0000 (Coordinated Universal Time) https://bidbits.org/metaverse-real-estate-development-company

@williamcarter #blockchain #crypto #metaverse #development

star

Fri Mar 27 2026 16:59:22 GMT+0000 (Coordinated Universal Time)

@Marcus

star

Fri Mar 27 2026 09:11:26 GMT+0000 (Coordinated Universal Time) https://bidbits.org/ico-development-company

@williamcarter #ico #development #crypto

star

Thu Mar 26 2026 18:56:46 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Thu Mar 26 2026 18:02:07 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Thu Mar 26 2026 18:00:58 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Thu Mar 26 2026 17:59:26 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Thu Mar 26 2026 17:32:58 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Thu Mar 26 2026 17:32:28 GMT+0000 (Coordinated Universal Time)

@v1ral_ITS

star

Thu Mar 26 2026 15:45:09 GMT+0000 (Coordinated Universal Time)

@andresrivera #ampscript

star

Thu Mar 26 2026 11:31:55 GMT+0000 (Coordinated Universal Time)

@Ankitkr008

star

Thu Mar 26 2026 08:16:59 GMT+0000 (Coordinated Universal Time) https://www.listal.com/list/sandbox-clone-script

@williamcarter #sandbox #clone

star

Wed Mar 25 2026 13:53:27 GMT+0000 (Coordinated Universal Time) https://www.coinexra.com/white-label-crypto-exchange

@Coinexra

star

Tue Mar 24 2026 13:19:20 GMT+0000 (Coordinated Universal Time)

@jrg_300i

star

Tue Mar 24 2026 09:14:49 GMT+0000 (Coordinated Universal Time) https://www.trustvare.com/ost/pst/

@neva033 #c# #asp.net

star

Mon Mar 23 2026 09:32:52 GMT+0000 (Coordinated Universal Time)

@iliavial

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension