Skip to content

Instantly share code, notes, and snippets.

View sunmeat's full-sized avatar
🐈
MEOW

Oleksandr Zahoruiko sunmeat

🐈
MEOW
View GitHub Profile
@sunmeat
sunmeat / tasks.txt
Created November 8, 2025 11:56
ДЗ на тему generics, collections, garbage collecting для групи СПР411
Створіть generic клас Spellbook<T>, де T — тип заклинання, що реалізує інтерфейс ISpell з методами Cast() та GetPower().
Застосуйте комбіновані constraints: where T : ISpell, new(), IComparable<T> для сортування заклинань за силою, і додайте
метод LearnSpell(), що додає нові заклинання з перевіркою на унікальність через IComparable.
У Main() створіть Spellbook з вигаданими заклинаннями (клас Fireball та HealingWave, обидва з ISpell), або по Гарі Потеру.
вивчіть 5 заклинань, відсортуйте та симулюйте кастування найсильнішого, виводячи ефекти.
Додайте умовні constraints через where T : class для "темних" заклять (з додатковим інтерфейсом IDarkMagic), і метод InvokeRitual(),
що комбінує заклинання лише якщо всі T задовольняють IDarkMagic, інакше кидає виняток. Тестуйте з мішаними типами в окремій Spellbook<DarkSpell>.
===========================================================================================
@sunmeat
sunmeat / index.html
Created November 7, 2025 15:03
adaptive design
<!DOCTYPE html>
<html lang="uk">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Адаптивний сайт</title>
<!-- базовий CSS, якщо потрібно -->
</head>
<body>
<h1>Виявлення пристрою...</h1>
@sunmeat
sunmeat / MainActivity.java
Created November 7, 2025 11:34
xml files android example
package site.sunmeat.xml;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import java.io.*;
@sunmeat
sunmeat / different files.java
Created November 5, 2025 11:30
alarm example android
MainActivity.java:
package site.sunmeat.services;
import android.app.ActivityManager;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@sunmeat
sunmeat / different files.java
Last active November 13, 2025 10:44
lottie library example android
MainActivity.java:
package site.sunmeat.lottie;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.airbnb.lottie.*;
import android.animation.Animator;
@sunmeat
sunmeat / different files.java
Created November 4, 2025 10:44
objectanimator android property animation
MainActivity.java:
package site.sunmeat.helloworld;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
@sunmeat
sunmeat / different files.java
Created November 4, 2025 10:31
fluid motion design android example
MainActivity.java:
package site.sunmeat.animation;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.view.View;
import android.view.animation.OvershootInterpolator;
import android.widget.Button;
@sunmeat
sunmeat / different files.java
Last active November 4, 2025 09:01
android opengl minimal code
MainActivity.java:
package site.sunmeat.opengles3d;
import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.opengl.GLES20;
import android.opengl.Matrix;
import javax.microedition.khronos.egl.EGLConfig;
@sunmeat
sunmeat / different files.java
Last active October 31, 2025 12:10
fonts android example
MainActivity.java:
package site.sunmeat.fonts;
import android.graphics.Typeface;
import android.os.*;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.res.ResourcesCompat;
import androidx.core.provider.*;
import android.widget.TextView;
@sunmeat
sunmeat / article.md
Last active October 28, 2025 13:17
нові фішки збирача сміття в дот нет 9

Нові можливості збирача сміття в .NET 9: Огляд адаптивних механізмів та оптимізацій продуктивності

Анотація

Збирач сміття (Garbage Collector, GC) є ключовим компонентом платформи .NET, що забезпечує автоматичне керування пам'яттю та запобігає витокам. У версії .NET 9, випущеній у листопаді 2024 року, відбулися значні покращення GC, спрямовані на підвищення ефективності пам'яті, зниження латентності та адаптацію до динамічних навантажень. Основними інноваціями є активація за замовчуванням механізму DATAS (Dynamic Adaptation to Application Sizes), адаптивний Server GC та оптимізації, пов'язані з JIT-компіляцією. Ця оглядова стаття аналізує ці зміни, їх механізми, вплив на продуктивність та рекомендації щодо використання. На основі офіційної документації Microsoft та бенчмарків, демонструється зниження споживання пам'яті на 93% та зростання throughput на 15% у типових сценаріях. Стаття корисна для розробників, які працюють з високонавантаженими додатками, особливо в хмарних та контейнеризованих середовища