[
{
"title" : "Air Conditioning",
"icon" : "/wp-content/uploads/2026/02/snowflake.svg",
"link" : "/air-conditioning/",
"image" : "/wp-content/uploads/2026/02/ac.jpg",
"iconBg" : "radial-gradient(50% 50% at 50% 50%, #1E6EF8 0%, #0144B2 100%)",
"position" : "top center"
},
{
"title" : "Heating",
"icon" : "/wp-content/uploads/2026/02/fire.svg",
"link" : "/heating/",
"image" : "/wp-content/uploads/2026/02/furnace-repairs-absolute-heating-and-air.jpg",
"iconBg" : "radial-gA highly detailed, vintage-style illustration split into two panels, both featuring ornate, gothic-inspired typography reading "Trilla Than Tha Rest" in the center. The left panel depicts a desert landscape during the day, with a classic lowrider car driving on a road in the foreground, flanked by large saguaro cacti, a sun low on the horizon, a flying eagle, and a city skyline in the distance. The right panel shows a nighttime scene with a full moon, featuring a skull wearing a bandana and sung{
"text" : {
"label" : "Text",
"type" : "text",
"initial" : "Click Me"
},
"link" : {
"label" : "Link",
"type" : "text",
"initial" : "#"
}
}
{
"buttonLabel" : {
"label" : "Button Label",
"type" : "text",
"initial" : "Click Me",
"placeholder" : "Specify a button label"
}
}https://aadijain71.medium.com/managing-work-and-personal-github-accounts-on-the-same-machine-8c6f1b15ace5
## Step 1: Install Git
Before diving into GitHub configurations, ensure that Git is installed on your MacBook. You can download it from the official website or use a package manager like Homebrew:
brew install git
## Step 2: Generate SSH Keys
To securely connect to GitHub, I’ll use SSH keys. Generate keys for both your work and personal accounts:
cd ~/.ssh
ssh-keygen -t rsa -C "yo# Ubuntu laptop lid fix
## 1. Check current systemd lid settings
```bash
grep -R "HandleLidSwitch" /etc/systemd/logind.conf /etc/systemd/logind.conf.d 2>/dev/null
```
## 2. If using GNOME, check current lid actions
```bash
gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action
gsettings get org.gnome.settings-daemon.plugins.power lid-close-battery-action
```
## 3. If either value is `suspend`, change both to `nothing`
```bash
gsettings set org.gnome.settings-daemon.plugi# 📜 Leçon 1 : Les Bases d'un Addon WoW (Extension Midnight)
---
## 1. La Structure du Projet
Pour que WoW reconnaisse un addon, il faut un dossier dans `Interface\AddOns\` contenant au moins deux fichiers portant le **même nom** que le dossier.
### Le fichier `.toc` — *La carte d'identité*
```
## Interface: 120001
test.lua
```
- `## Interface: 120001` → Indique la version du jeu *(12.0.1 pour Midnight)*
- `test.lua` → Liste les fichiers de code à charger
### Le fichier `# 📜 Leçon 1 : Les Bases d'un Addon WoW (Extension Midnight)
---
## 1. La Structure du Projet
Pour que WoW reconnaisse un addon, il faut un dossier dans `Interface\AddOns\` contenant au moins deux fichiers portant le **même nom** que le dossier.
### Le fichier `.toc` — *La carte d'identité*
```
## Interface: 120001
test.lua
```
- `## Interface: 120001` → Indique la version du jeu *(12.0.1 pour Midnight)*
- `test.lua` → Liste les fichiers de code à charger
### Le fichier `#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#define DEVICE_NAME "ESP32-S3 Test"
BLEServer *pServer = nullptr;
bool deviceConnected = false;
class MyServerCallbacks : public BLEServerCallbacks {
void onConnect(BLEServer *pServer) {
deviceConnected = true;
Serial.println("✅ Телефонът се свърза!");
}
void onDisconnect(BLEServer *pServer) {
deviceConnected = false;
Serial.println("❌ Телефонът се разкачи!");
// Рестартира adverti/* -----------------------------------------------
ES Utils / ScrollDirectionTrigger
----------------------------------------------- */
/** スクロール方向の変化時にコールバックを発火するクラス */
export class ScrollDirectionTrigger {
/** 開始位置 */
#offset;
/** 最小スクロール差分(ガタつき防止) */
#threshold;
/** 過去のスクロール量 */
#pastScrollY = window.scrollY;
/** 現在のスクロール量 */
#currentScrollY = 0;
/** 最後のスクロール方向('up' | 'down' | null) */
#lastDirection = null;
/** requestAnimationFrame制御 */
#ticking = false;
/# 1. Capture filters
## This operate prior to capture and filter at the driver level. They use BPF (Berkeley Packet Filter) syntax. They must be set up before capture begins.
```bash
host 8.8.8.8 # only traffic to/from this IP address
port 443 # only port 443
tcp # only TCP
not port 53 # everything except DNS
host 8.8.8.8 and port 443 # combination
```
/**
* @param {string} moves
* @return {boolean}
*/
var judgeCircle = function(moves) {
// Track horizontal (x) and vertical (y) displacement from origin (0, 0)
let x = 0;
let y = 0;
// Process each move one by one
for (const m of moves) {
// Moving up increases y
if (m === 'U') {
y++;
// Moving down decreases y
} else if (m === 'D') {
y--;
// Moving right increases x
} else if (m === 'R') {
<div class="c-pagination">
<?php
echo paginate_links(array(
'base' => str_replace(999999999, '%#%', esc_url(get_pagenum_link(999999999))),
// 'total' => $sub_query->max_num_pages, // 最大ページ数
// 'current' => $paged, // 現在のページ
'end_size' => 1,
'mid_size' => 2, //現在のページの両側にある数字の数
'prev_text' => '<',
'next_text' => '>',
));
?>
</div>
# 🎒 Créer un inventaire RPG complet dans Godot 4
### De A à Z — Stacks + Équipement + Drag & Drop
> Tu as déjà un personnage qui bouge. On part de là.
---
## 🗺️ Ce qu'on va construire
À la fin de ce guide, tu auras :
- ✅ Un inventaire avec une grille de slots cliquables
- ✅ Des items empilables (stacks) comme dans Minecraft
- ✅ Un système d'équipement (arme, armure, etc.)
- ✅ Du drag & drop pour déplacer les items
- ✅ Un tooltip qui s'affiche au survol
- ✅ Une touche pour ouvrir# 🎒 Créer un inventaire RPG complet dans Godot 4
### De A à Z — Stacks + Équipement + Drag & Drop
> Tu as déjà un personnage qui bouge. On part de là.
---
## 🗺️ Ce qu'on va construire
À la fin de ce guide, tu auras :
- ✅ Un inventaire avec une grille de slots cliquables
- ✅ Des items empilables (stacks) comme dans Minecraft
- ✅ Un système d'équipement (arme, armure, etc.)
- ✅ Du drag & drop pour déplacer les items
- ✅ Un tooltip qui s'affiche au survol
- ✅ Une touche pour ouvrir# 🎒 MASTERCLASS — Construire un inventaire RPG complet (de zéro à avancé)
> **Niveau :** Débutant → Intermédiaire → Avancé
> **Moteur :** Godot 4 / GDScript
> **Objectif :** Te rendre autonome sur la logique de programmation d'un inventaire RPG moderne, propre et extensible.
---
## 🧠 Avant tout — Le bon état d'esprit
Un inventaire RPG, c'est comme un **vestiaire de foot** :
- Les **crochets** = les slots
- Les **affaires du joueur** = les items
- Le **règlement du vestiair# 🎒 MASTERCLASS — Construire un inventaire RPG complet (de zéro à avancé)
> **Niveau :** Débutant → Intermédiaire → Avancé
> **Moteur :** Godot 4 / GDScript
> **Objectif :** Te rendre autonome sur la logique de programmation d'un inventaire RPG moderne, propre et extensible.
---
## 🧠 Avant tout — Le bon état d'esprit
Un inventaire RPG, c'est comme un **vestiaire de foot** :
- Les **crochets** = les slots
- Les **affaires du joueur** = les items
- Le **règlement du vestiair