Nosok
70 subscribers
213 photos
30 videos
5 files
50 links
В этом канале я делаю посты про то шо делаю раз в примерно когда захочу.

В основном про программирование

Bio: https://nokskiy.github.io
Download Telegram
Начал делать стиль(тему) с нуля. Ранее авалоникс использовал сторонние стили. Причиной тому послужило то, что свою тему настроить как хочешь в разы проще, и проще будет добавить пользовательскую кастомизацию
3
Тему в итоге просто смешал с той, что была в прошлой версии, вроде получилось красиво.
👍41
Версия 2.2.0 вышла
Что добавлено

● Обновлённый дизайн
● Фикс багов
● Проигрывание прямо из проводника
● Починил иконку приложения

● Возможность добавить стандартную обложку

На первый взгляд не то что бы много, но на самом деле пришлось даже поработать с чем-то по типу клиент-серверной части☠️
В общем скачиваем новую версию
2
This media is not supported in your browser
VIEW IN TELEGRAM
Решили с вишлом и омега сусом поучаствовать в гейм джеме

В чём фишка этого джема?
В джеме нужно выбрать свой дивизион. То есть если профи, участвуем против профи ☠️

Джем длится 3 дня, с 26 декабря по 29 декабря, как раз успеем до НГ.
Делиться буду разработкой по мере возможности, а может и не буду, не решил
Тема: маска
321👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Короче поучаствовали мы в джеме, результаты пока неизвестны, но честно, получилась слабая игра.
Мы взяли слишком трудный проект для 3-х дней, стоило взять какую-нить казуалку, а не пытаться сделать рогалик.

В общем получилось плохо. Это что по поводу джема.

Дальше по поводу авалоникса, я планирую на нг вам выкатить апдейт с некоторыми идеями, что вы напредлагали в коментах(чате). Идей много, так что сделаю лишь несколько штук.


Щпасеба вишлу за гифку к посту
🔥3
Всех с наступающим Новым Годом!
Что ж, как и обещал, выкатил
новогоднюю обнову авалоникса с предложениями из чата.
Что в неё добавил:

- Эквалайзер
- Поиск треков по названию
- Баг фиксы
- Обновил окно настроек путей

За год много чего успел сделать, но конечно больше всего времени было потрачено на всякую хрень
❤‍🔥421
This media is not supported in your browser
VIEW IN TELEGRAM
Всем прует, с наступившим 2026-м годом.
На самом деле я не планировал работать над авалониксом на каникулах, но я обнаружил баг, который исправился буквально перестановкой пары строк кода, так что скачиваем новую версию.
Что за баг? - Эквалайзер некоторые треки в начале ломал, и получалась нереально громкий разрыв ушей.

Ах да, не знаю как так вышло, но я забыл сказать, что авалоникс добавили вчера в основанный на арче дистрибутив линукса, что нереально круто для авалоникса.

Всем хороших выходных, а я проходить mgr!
51🔥1
Всем привет, меня уже несколько раз спрашивают про то,
зачем нужны интерфейсы в C#, так шо вот вам пост по этой темке.

Вот пример
// где-то обрабатываем что вызывать (вызываем Play у Manager). Альбом или плейлист

class Manager
{
public void Play(IPlayable playable) =>
playable.Play();
}

interface IPlayable // Объявляем интерфейс
{
void Play();
}

class Playlist : IPlayable
{
public void Play() => // Реализуем интерфейс
Console.WriteLine("Играю плейлист");
}

class Album : IPlayable
{
public void Play() => // Реализуем интерфейс
Console.WriteLine("Играю альбом");
}

Тута благодаря интерфейсу мы с лёгкостью сможем добавить новый тип playable.
Не назову этот пост гайдом по интерфейсам, хочу просто показать, как это можно удобно применить.
В общем если меня спросят, могу переслать им просто этот пост.
5👍1🤬11
Думал отдыхать на НГ, но чот захотелось обновить авалоникс.

В общем вот что сделал тут:
- Оптимизация кода
- Вроде как добавил стратегии
- Добавил сортировку по исполнителю
- Вынес очередь воспроизведения в постоянный элемент
- Поправил названия окон

Всё, свои 5 копеек запостил, хороших праздников.
2
Превет.
Значит выпустил я последний релиз авалоникса, так как ну я уже устал от него, да и он уже более чем готов.
Я не исключаю, что вернусь к нему, да и надо бы будет сделать порт под андроид...

Сейчас в планах у меня сделать сайтек (Bio).
3
This media is not supported in your browser
VIEW IN TELEGRAM
Допилил вот наконец сайтик, хотя если мне вишл не сказал бы, что надо его сделать, я бы и не делал наверно.
Сайтик чутка колхозный вышел, но я буду его ещё обновлять. Планирую собрать сюда все проекты, которые увидели свет(уже добавил, можно увидеть, как со временем гейдев развивался). Да, узнаете о игрульках которые я делал

Короче кто если хочет потыкать, вот ссылка
🔥4🤬1
This media is not supported in your browser
VIEW IN TELEGRAM
Чота значит задумался, как работают таймеры в c#, потом задумался, как работают акшионы, ну по тому шо там они и используются... наверно... я так думаю. В общем подумал как это сделать на более низкоуровневых япах, выбрал C.

В общем массив указателей на функцию черезчур уж похож на акшион, думаю где-то под капотом оно примерно так и работает.

В общем написал простенькую либу для таймера на C. Реализация именно таймера там чутка плоха как по мне, хотя не знаю можео ли там нормально сделать, что бы не вышло по объёму за 100 строк кода, но вот реализация акшионов мне нравится.

Если кому интересна реализация, вот ссыль.

Ну ещё я чуток обновил сайтик, теперь там лучшие проекты(ну те, которые я не считаю простой фигнёй) отображаются в отдельной таблице. Ну и анимации ещё чуток потыкал.
3🔥21
Всем привет, давненько постов не было.
В общем закончилась у меня тетрадь по физике(да, всего за половину года), и я вспомнил, что у Металлики есть альбом Death Magnetic. Тут я и подумал.
Магнетизм... Физика... Магнитная индукция... Death Magnetic.
Так и решил что куплю себе тетрадь блокнотного типа. Купил, отрисовал обложку альбома. На самом деле тут основная сложность была именно в первой и последней букве. Ну их реально хрен нарисуешь.
Сейчас мне осталось лишь с помощью скотча закрепить рисунок к обложке тетради, и смотреть афиг училки.

Прастити что постов долго не было, сейчас не о чём делать их. А вообще я тыкал C и делаю одну прогу, которая по сути просто забавы ради, так что хз получится ли её вообще сделать
3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Привет всем, хотелось попробовать сделать что-то необычное(понял что мне этот проект сейчас не нужен, так что сделал что-то по типу заготовки).
Сделал значит прогу, которая по нажатию сочетания клавиш открывает колесо с кнопками, запускающими забинженые програмки. Для этой проги мне пришлось вообще лезть в дебри архитектуры. Код конечно ну максимально плох, но работает. Всё же не проект, а так, прикол.

Тем, кто хочет чекнуть код
3
Всем привет, сам сначала не понимал что такое DI, при разработке авалоникса, но конечно в будущем понял и решил поделиться знаниями.

DI - это внедрение зависимостей
Благодаря нему мы можем не создавать классы сервисов вручную, а отдать это всё DI классу.
Для следующей реализации DI, нам понадобится скачать один nuget пакет с помощью команды:
dotnet add package Microsoft.Extensions.Hosting --version 10.0.2


А вот и код для реализиации DI:

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

class Di
{
public IServiceProvider? ServiceProvider { get; private set; } // Создаём провайдер для сервисов

public Di() => InitializeDi(); // Запускаем в конструкторе функцию, инициализирующую DI

private void InitializeDi()
{
var host = Host.CreateDefaultBuilder(); // Делаем хост
host.ConfigureServices(_ =>
{
_.AddSingleton<Ex>();
_.AddSingleton<Printer>();
}); // добавляем сюда все сервисы, которые должны передаваться в Di
var hostBuilder = host.Build(); // Билд хоста
ServiceProvider = hostBuilder.Services; // Задаём провайдер
}
}

static class Program
{
private static Di _di = new(); // создаём экземпляр Di

private static void Main() => _di.ServiceProvider!.GetService<Ex>()!.Main(); // Запустим здесь основную функцию
}

class Printer
{
public void Print() => Console.WriteLine("Hello DI");
}

class Ex(Printer printer)
{
public void Main() => printer.Print(); // Основная функция, пойдёт у нас вместо Main
}


В данном небольшом примере может и не так заметно удобство DI, но в больших проектах DI - незаменимый инструмент

В общем если кто-то что-то понял, напишите
11
Привет всем, давно не было постов.

Я хотел попробовать какой-то UI фреймворк кроме авалонии не больно то и хороша если честно, очень долго на ней писать UI.
Таким образом я пришёл к electron, но мне сам js, ts и прочие технологии оттуда не нравятся от слова совсем. Изучая вопрос, я понял, что electron ест неоправданно много оперативной памяти, и искал другие фреймворки. Позже я вспомнил про rust+tauri.

Начал изучать rust, поставил для него nvim. Синтаксис его мне честно вообще не нравится, но стадию принятия этого прошёл.

Сейчас у меня есть несколько идей что бы сделать, так что ждите.
👍1🔥1
Начинаю тыкать tauri.

Я дочитал до 10-й главы книгу по расту и чутка подустал её читать. К языку примерно привык(в начале был очень неприятен). Так как уже хоть какие-то знания в расте есть, решил что можно попробовать потыкать tauri(ну я раст начал учить из-за tauri в основном).

По дефолту таури создал такое вэб-приложение, сейчас буду тыкать tauri, изучать дальше раст, а после этого я начну скорее всего делать какой-нить проект на этом стеке.
🔥44👍21
This media is not supported in your browser
VIEW IN TELEGRAM
Начали переписывать вместе с рузеном авалоникс с нуля на tauri+rust.

Пока функционала нет: функции некоторые написаны, по типу получения метаданных из аудиофайла, но используются пока только в тестах (кстати тесты в rust сделаны ну очень хорошо).

Весь набор инструментов новый: у нас была возможность оставить bass с прошлой версии авалоникса, но нашлась с более удобной лицензией библиотека на rust, так что не будет у нас мучений с лицензией и сборками в этот раз(надеюсь: там апачи 2 используется).

Пока есть вот такой вот GUI. Он не доделан, но честно, я думаю, что это уже намного лучше, чем было в старом авалониксе: html+css в разы удобнее и проще, чем авалония. Кстати старый авалоникс в отдельной ветке "legacy", а новый в ветке "MASTER" извиняюсь, не мог не сказать название этой ветки.

А ещё я научился пользоваться двоеточиями - посты станут более выпендрёжно написаными и редкими.
🔥42
This media is not supported in your browser
VIEW IN TELEGRAM
Авалоникс продолжает развиваться.

Я подключил базовый функционал api к пользовательскому интерфейсу, попутно множество раз переработав сам api.

На данный момент работают эти функции: получение списка треков, хеширование треков, добавление и удаление из очереди, проигрывание очереди(пока её нельзя поставить на паузу, скоро будет такая функция).
В общем Авалоникс развивается быстрее и лучше: ну, по крайней мере я так считаю.

Кстати, про стек технологий - помните, я говорил, что мы не будем пользоваться проприетарным bass? - Ну так вот, мы им не пользуемся, благодаря чему у нас более свободная лицензия: Apache и MIT. Библиотека, вроде как , справляется со своими задачами.

А, ещё хотел бы узнать фидбек по поводу дизайна, он не финальный, если что.
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Прогресса может с виду и мало, но на самом деле - я снова перелопатил пол Авалоникса: я делал оптимизацию.

Когда я начал делать альбомы, быстро понял, что грузить всё целиком - утомительно долгая задача, пока я загружал Авалоникс с подгрузкой альбомов, можно было посмотреть титры к mgr.
В общем нашёл решение - ленивая загрузка. Подсмотрел это я у плеера винды.
Для тех кто в танке: ленивая загрузка, это загрузка, при которой данные загружаются только тогда, когда они нужны. В общем сделал так: загрузка метаданных происходит только тогда, когда кнопка трека(пока не сделал альбомы) показалась на экране.

А из того что видно: загрузка обложек, пауза, проигрывание трека.
🍓3