Skip to content

Instantly share code, notes, and snippets.

View koras's full-sized avatar
🏠
Working from home

Константин koras

🏠
Working from home
View GitHub Profile
@koras
koras / YandexMetrika.tsx
Created May 6, 2026 00:33
Упрощённый вариант без Suspense
'use client'
import Script from 'next/script'
import { usePathname } from 'next/navigation'
import { useEffect } from 'react'
const YM_ID = Number(process.env.NEXT_PUBLIC_YANDEX_METRIKA_ID)
declare global {
interface Window {
@koras
koras / layout.tsx
Created May 6, 2026 00:22
layout.tsx
import { Suspense } from 'react'
import YandexMetrika from '@/components/YandexMetrika'
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="ru">
@koras
koras / tsx
Last active May 6, 2026 00:20
components/YandexMetrika.tsx
'use client'
import Script from 'next/script'
import { usePathname, useSearchParams } from 'next/navigation'
import { useEffect } from 'react'
const YM_ID = Number(process.env.NEXT_PUBLIC_YANDEX_METRIKA_ID)
declare global {
interface Window {
@koras
koras / SpriteSlicer.cs
Created March 24, 2026 17:43 — forked from ostryzhnyi/SpriteSlicer.cs
SpriteSlicer
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Cysharp.Threading.Tasks;
using Editor.CMSEditor;
using Newtonsoft.Json;
using ProjectX.CodeBase.Core.Tags;
using ProjectX.CodeBase.Level.Characters;
using ProjectX.CodeBase.SpriteSlicer.Data;
using Runtime;
using UnityEngine;
using UnityEngine.AI;
using Weapons;
using System; // ← добавь для Action
using Weapons.Range;
#if UNITY_EDITOR
using UnityEditor;
#endif
@koras
koras / PinchToZoom.cs
Created December 7, 2025 12:02
pinch
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.EnhancedTouch;
using Touch = UnityEngine.InputSystem.EnhancedTouch.Touch;
using TMPro;
namespace Input
{
public class PinchToZoomAndPan : MonoBehaviour
pluginManagement {
val flutterSdkPath = run {
val properties = java.util.Properties()
file("local.properties").inputStream().use { properties.load(it) }
val flutterSdkPath = properties.getProperty("flutter.sdk")
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
flutterSdkPath
}
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
<?php
$lastName = "Фамилия";
$firstName = "Имя";
$middleName = "Отчество";
$lastName = "";
$firstName = "";
$middleName = "";
$fullName = trim("$lastName $firstName $middleName");
echo strlen($fullName);
@koras
koras / s
Created October 4, 2023 07:31
public static function getItemSurchargeCash($itemID, $partnerID = 0, $price = null) {
// Создайте новый объект Memcached
$memcached = new Memcached();
// Добавьте сервер Memcached (обычно это localhost на порту 11211)
$memcached->addServer('localhost', 11211);
// Создаем ключ кэша на основе параметров запроса
$cacheKey = "getItemSurcharge:itemID={$itemID}:partnerID={$partnerID}:price={$price}";
# DISTINCT - убираем дубли
SELECT DISTINCT department_id
# DISTINCT - где ищем
FROM evaluations
# gender = TRUE - только мужчины, подразумеваем что false это женский пол
WHERE gender = TRUE
# групируем по департаменту
GROUP BY department_id
# В результате груперовки вычисляем только тех кто поставил > 5
HAVING AVG(`value`) > 5;