Ребят, вообще забыл что мне сегодня исполняется 17. Никакой подарок я вам пока не подготовил, но готовлю...
https://www.twitch.tv/itleaper - Небольшая проверка стрима на твиче)
Twitch
itleaper - Twitch
Programming
This media is not supported in your browser
VIEW IN TELEGRAM
❗ВСЁ ИСКЛЮЧИТЕЛЬНО В ОБУЧАЮЩИХ ЦЕЛЯХ❗
Ну что ж, заинтересовался написанием скриптов для упрощения жизни.
То что я открыл для себя, так это написание скриптов с использованием node.js, автозаполнение полей и нажатие кнопок без ведомости клиента. Вам не придется регатся по 200 раз. Достаточно просто в файле указать значения для тех или иных полей. Знаю что многие могут сказать что это похоже на "печеньки", но это не так.
Такие скрипты(как показано на видео) могут использоваться для перебора паролей(хотя это вряд-ли) или когда идёт массовое сканирование бэкапов: ищется логин и пароль от бдшки, а потом они подставляются в соответственные поля.
Ради интереса я попробую реализовать небольшой "сканер" бэкапов и опубликовать его сюда. Сканер будет уже не на c#, а на js.
Ну что ж, заинтересовался написанием скриптов для упрощения жизни.
То что я открыл для себя, так это написание скриптов с использованием node.js, автозаполнение полей и нажатие кнопок без ведомости клиента. Вам не придется регатся по 200 раз. Достаточно просто в файле указать значения для тех или иных полей. Знаю что многие могут сказать что это похоже на "печеньки", но это не так.
Такие скрипты(как показано на видео) могут использоваться для перебора паролей(хотя это вряд-ли) или когда идёт массовое сканирование бэкапов: ищется логин и пароль от бдшки, а потом они подставляются в соответственные поля.
Ради интереса я попробую реализовать небольшой "сканер" бэкапов и опубликовать его сюда. Сканер будет уже не на c#, а на js.
👍2🔥1
IT Leaper
❗ВСЁ ИСКЛЮЧИТЕЛЬНО В ОБУЧАЮЩИХ ЦЕЛЯХ❗ Ну что ж, заинтересовался написанием скриптов для упрощения жизни. То что я открыл для себя, так это написание скриптов с использованием node.js, автозаполнение полей и нажатие кнопок без ведомости клиента. Вам не придется…
Никогда не пишите анализ файлов с помощью bash. НИКОГДА. Лучше это делать с помощью того же пайтона, но только не bash. И только не в текстовом редакторе
Всем привет. Давно постов не выходило и сейчас я хочу встать обратно в колею.
Сегодня начну с бинарного дерева поиска(BST). Фактически это визуализация алгоритма бинарного поиска в виде дерева. Основные требования:
• Левый узел(node) < родительский узел < правый узел
• Дерево должно быть сбалансировано(высота левого)
Есть много типов деревьев, но тот что меня заинтересовал - B+ деревья. Почему? Потому что они используются в работе с бд. Больше можно про них узнать тут -> https://www.geeksforgeeks.org/introduction-of-b-tree/
P.s: на моём гитхабе скоро появится приблизная реализация бинарного дерева
Сегодня начну с бинарного дерева поиска(BST). Фактически это визуализация алгоритма бинарного поиска в виде дерева. Основные требования:
• Левый узел(node) < родительский узел < правый узел
• Дерево должно быть сбалансировано(высота левого)
Есть много типов деревьев, но тот что меня заинтересовал - B+ деревья. Почему? Потому что они используются в работе с бд. Больше можно про них узнать тут -> https://www.geeksforgeeks.org/introduction-of-b-tree/
Итак, написал первую реализацию бинарного дерева. Можете посмотреть тут -> https://github.com/GinessisC/BinaryTree
Таска: написать реализацию бинарного дерева с масштабируемой архитектурой. Пока что она сырая. Накидал несколько возможностей полиморфизма бинарного дерева и узлов, но в некоторый местах - полиморфизм не нужен я думаю. Хотел добавить возможность инициализирования бинарного дерева через список, сохраняя элементы в отсортированный список в самом бинарном дереве - но я обнаружил что это не правильно. Решение к которому я сейчас дошел - легкое, решает много проблем, но к сожалению не правильное ибо я делаю структуру данных, которая не должна иметь какие-то иные структуры данных, так что над этим тоже стоит поработать.
Так же обнаружил что я беру .GetHashCode() объекта за ключ узла, но судя по моему коду - я пытаюсь сделать возможность для пользователя самому определять что брать за ключ узла. Но я столкнулся с проблемой что я сортирую объекты списка, который был передан пользователем, с помощью .GetHashCode() - и это вычёркивает возможность пользователя создать "кастомные" ключи:
Вывод который я вынес, это то что если вы хотите проверить насколько ваша архитектура масштабируема - попробуйте внести какие-то изменения, начиная от незначительных изменений и заканчивая теми, что вызывают у вас трудности. Если вы обнаружите что изменения затрагивают другие компоненты системы - возможно ваша архитектура нуждается в "уборке"
Таска: написать реализацию бинарного дерева с масштабируемой архитектурой. Пока что она сырая. Накидал несколько возможностей полиморфизма бинарного дерева и узлов, но в некоторый местах - полиморфизм не нужен я думаю. Хотел добавить возможность инициализирования бинарного дерева через список, сохраняя элементы в отсортированный список в самом бинарном дереве - но я обнаружил что это не правильно. Решение к которому я сейчас дошел - легкое, решает много проблем, но к сожалению не правильное ибо я делаю структуру данных, которая не должна иметь какие-то иные структуры данных, так что над этим тоже стоит поработать.
Так же обнаружил что я беру .GetHashCode() объекта за ключ узла, но судя по моему коду - я пытаюсь сделать возможность для пользователя самому определять что брать за ключ узла. Но я столкнулся с проблемой что я сортирую объекты списка, который был передан пользователем, с помощью .GetHashCode() - и это вычёркивает возможность пользователя создать "кастомные" ключи:
public BinaryTree(IList<T> elements)
{
if (elements.HaveNoDuplicate() is false)
{
throw new ArgumentException("There are duplicate elements. Failed to construct bst.");
}
_elements = elements.OrderBy(e => e.GetHashCode()).ToList();
Root = ConstructBst(0, _elements.Count - 1);
}
Вывод который я вынес, это то что если вы хотите проверить насколько ваша архитектура масштабируема - попробуйте внести какие-то изменения, начиная от незначительных изменений и заканчивая теми, что вызывают у вас трудности. Если вы обнаружите что изменения затрагивают другие компоненты системы - возможно ваша архитектура нуждается в "уборке"
GitHub
GitHub - GinessisC/BinaryTree: BinaryTree library
BinaryTree library. Contribute to GinessisC/BinaryTree development by creating an account on GitHub.
Всем привет, обновил проект шифровальщика. Теперь в нём содержится код библиотеки, которую я написал для упрощения работы с шифрованием. Ссылка на реп -> https://github.com/GinessisC/EncryptorNDecryptor/tree/master.
Либа содержится в дериктории EncryptionOperationProviders
P.s: да, я до сих пор не решался это сделать до этого момента
Либа содержится в дериктории EncryptionOperationProviders
GitHub
GitHub - GinessisC/EncryptorNDecryptor: You can use this app for encryption/decryption messages (and files in future). RSA + AES…
You can use this app for encryption/decryption messages (and files in future). RSA + AES algorithm is used that ensures that message will not be decrypted by another user. All you need is to share ...
🔥2
Всем привет. Вчера познакомился с одним хорошим инструментом для ведения заметок. Это оказался просто рай для любого разработчика: разные плагины, гибкость, связанность и структуризация. Особенно понравилось то, что в заметках можно пользоваться форматом markdown, писать код, который хорошо выделяется и многое другое. В общем, классная вещь.
А вот небольшой туториал
А вот небольшой туториал
IT Leaper
Всем привет. Вчера познакомился с одним хорошим инструментом для ведения заметок. Это оказался просто рай для любого разработчика: разные плагины, гибкость, связанность и структуризация. Особенно понравилось то, что в заметках можно пользоваться форматом markdown…
Кстати, как на счёт использования данного инструмента для того, чтобы описывать задачи проекта и планировать его разработку? К тому же если использовать холст - можно вообще стразу строить архитектуру проекта
Хотите, чтобы chat gpt вас хорошо прожарил? тогда введите этот промт:
Слабонервным не вводить промт❗️
Но учтите, что если история с ним не сохраняется - ничего не выйдет.
В качестве примера я могу показать что он мне выдал(БАЗА):
Слабонервным не вводить промт❗️
Прожарь меня на основе всей информации, которую ты знаешь обо мне. Сделай это как комик, у которого закончились границы. Три ключевых ингредиента: язвительный стендап с жёстким юмором, -психологическая правда-матка, как от терапевта с выгоревшей душой, сарказм, метафоры и беспощадные сравнения. Пиши цельным текстом, как монолог. Без милоты, без фильтров, без "ну ты молодец, конечно". Только жёстко, метко, и чтобы смешно до слёз. Представь, что ты roast-комик, а я звезда, которую все терпят и никто не жалеет. Вперёд!
Но учтите, что если история с ним не сохраняется - ничего не выйдет.
В качестве примера я могу показать что он мне выдал(БАЗА):
Окей, пристёгивайся, потому что сейчас будет roast, как будто мы на Netflix, но без цензуры. Ты не просто решил прокачать себя — ты вошёл в айтишку, как будто это квест в Dark Souls: без подготовки, без доспехов, но с амбициями уровня Илона Маска на спидах. Только вот вместо ракеты у тебя код, который ломается, если его просто пристально посмотреть.
Ты такой человек, который читает Grokking Algorithms, как будто это Библия, но при этом пишешь if (условие is false) — ну чтоб не дай бог не было понятно с первого раза. Ты ведь не программист, ты скорее заклинатель дерева — полдня строишь сбалансированное дерево, потом сам же в нём теряешься, как будто это IKEA, а не структура данных. AVL тебе не по зубам? Да ты с обычным Depth-методом споришь, как будто он тебе должен алименты.
Ты говоришь, что хочешь "без милоты, без фильтров" — так вот, ты пишешь тесты, которые падают, как твоя самооценка после очередного Assert.False. У тебя тесты на сбалансированность дерева — это как проверка у окулиста, только вместо зрения тебе проверяют терпение. Assert.True(bt.IsBalanced()) — классика: тест, который верит в дерево больше, чем ты в себя.
Но знаешь что? За всё это — респект. Потому что ты хоть и влетаешь в айти, как комета без GPS, но влетаешь с огнём. Главное — не сгореть раньше, чем скомпилируется.
[А вот и мотивация] А пока иди, подними свою Root и сбалансируй этот мир, как свой AVL!
Всем привет. Недавно начал писать одну интересную прогу.
Краткое её описание:
1. Берёт конфиг юзера(токен и массив валют к которым надо конвертировать баланс пользователя)
2. Получает аккаунт через monobank api, далее переводит баланс пользователя к тем валютам, которые указал пользователь в конфиг файле
3. Выводит номер карты и баланс в указанных валютах в консоль в виде таблице
P.s: честно говоря, я сначала думал что таска простая, но нет. Много подводных камней
К тому же изучил чистую архитектуру и написал на её основе эту прогу. Ещё попрактиковаться с DI. Понял как правильно инджектить сервисы
И да, я в скором времени выходу на "уровень джуна". Скоро вы это увидите)
Краткое её описание:
1. Берёт конфиг юзера(токен и массив валют к которым надо конвертировать баланс пользователя)
2. Получает аккаунт через monobank api, далее переводит баланс пользователя к тем валютам, которые указал пользователь в конфиг файле
3. Выводит номер карты и баланс в указанных валютах в консоль в виде таблице
P.s: честно говоря, я сначала думал что таска простая, но нет. Много подводных камней
К тому же изучил чистую архитектуру и написал на её основе эту прогу. Ещё попрактиковаться с DI. Понял как правильно инджектить сервисы
И да, я в скором времени выходу на "уровень джуна". Скоро вы это увидите)
👍2
Ух, сегодня был тяжёлый день. Целый день перед компом. Глаза устали...
Но я всё-таки дописал очень большую и важную часть проекта - инъекция зависимостей.
Особенно застопорился на моменте, когда мне надо было инджектить сервис с асинхронной фабрикой + которому нужны ещё сервисы внедрённые ранее, но я решил вопрос.
Так же одна проблема возникла с парсингом json конфы, но я тоже её решил. Оказывается для массива данных используется .GetSection<type[]>() - что-то на подобии этого.
Короче, код выглядит в некоторых местах ужасным. Ужасные наименования переменных, методов и даже классов, нарушение единой ответственности тоже присутствует. Но завтра попытаюсь быстро решить проблему.
Почему быстро? Потому что первые экзамены начинаются через 12 дней, а ещё много чего не сделано, а я хочу по-быстрее закончить с этой таской которую я делаю сейчас и со спокойной душой перейти к экзам. Я не знаю почему, но я пока что-то не доведу до конца - меня оно будет душить и напрягать. Я просто не перестаю думать, я просто не могу отдохнуть пока что-то не сделано. Возможно это и есть моё проклятие)
Но я всё-таки дописал очень большую и важную часть проекта - инъекция зависимостей.
Особенно застопорился на моменте, когда мне надо было инджектить сервис с асинхронной фабрикой + которому нужны ещё сервисы внедрённые ранее, но я решил вопрос.
Так же одна проблема возникла с парсингом json конфы, но я тоже её решил. Оказывается для массива данных используется .GetSection<type[]>() - что-то на подобии этого.
Короче, код выглядит в некоторых местах ужасным. Ужасные наименования переменных, методов и даже классов, нарушение единой ответственности тоже присутствует. Но завтра попытаюсь быстро решить проблему.
Почему быстро? Потому что первые экзамены начинаются через 12 дней, а ещё много чего не сделано, а я хочу по-быстрее закончить с этой таской которую я делаю сейчас и со спокойной душой перейти к экзам. Я не знаю почему, но я пока что-то не доведу до конца - меня оно будет душить и напрягать. Я просто не перестаю думать, я просто не могу отдохнуть пока что-то не сделано. Возможно это и есть моё проклятие)
🔥1
IT Leaper
Ух, сегодня был тяжёлый день. Целый день перед компом. Глаза устали... Но я всё-таки дописал очень большую и важную часть проекта - инъекция зависимостей. Особенно застопорился на моменте, когда мне надо было инджектить сервис с асинхронной фабрикой + которому…
Ну вот, дописал. Как и обещал запушил в гит: https://github.com/GinessisC/MonobankAccountInfoProviders
GitHub
GitHub - GinessisC/MonobankAccountInfoProviders
Contribute to GinessisC/MonobankAccountInfoProviders development by creating an account on GitHub.
👏1
IT Leaper
Ну вот, дописал. Как и обещал запушил в гит: https://github.com/GinessisC/MonobankAccountInfoProviders
Ребята с опытом, нужна ваша помощь. Возникла проблема, когда обнаружил что регать зависимости асинхронно - ненормально. Ибо внедрение зависимостей должно быть синхронным и не должно включать никакой логики работы с сервисами. Но вот фрагмент кода для регистрирования "кэшов". Вызывается метод .CreateAsync() где производится вызов к разным апишкам. Данные хранятся в кэше, откуда я беру нужные мне данные без надобности реквестить инфу к апи по 100 раз.
И вот не знаю оставлять ли такую логику в программе или сделать так чтобы асинхронный код был только при вызове команды?
И вот не знаю оставлять ли такую логику в программе или сделать так чтобы асинхронный код был только при вызове команды?
IT Leaper
Ребята с опытом, нужна ваша помощь. Возникла проблема, когда обнаружил что регать зависимости асинхронно - ненормально. Ибо внедрение зависимостей должно быть синхронным и не должно включать никакой логики работы с сервисами. Но вот фрагмент кода для регистрирования…
Ребята, код который я написал ранее - говно, фу, кака. Юзал структуру другого яп(на шарпах так не принято), юзал непонятный класс для кэша и использовал его не правильно. На днях закину на гит хаб новый код. Изменил большую часть кода. БОЛЬШУЮ. И плюс очень большой опыт
👍1🤔1
IT Leaper
Ребята, код который я написал ранее - говно, фу, кака. Юзал структуру другого яп(на шарпах так не принято), юзал непонятный класс для кэша и использовал его не правильно. На днях закину на гит хаб новый код. Изменил большую часть кода. БОЛЬШУЮ. И плюс очень…
Ну как и обещал, публикую версию проги, где я перестроил её архитектуру и местами логику. К сожалению тесты ещё до конца не написаны. Попробую дописать как будет время. А вот и мой проект
Кратко, что нового?
✅Обновил архитектору, которая теперь радует глаза шарписту
✅Использую IMemoryCache вместо кастомного
✅Для того чтобы кешировать ответы использую CrmRequestsHandler
✅Местами использую логгирование
Кратко, что нового?
✅Обновил архитектору, которая теперь радует глаза шарписту
✅Использую IMemoryCache вместо кастомного
✅Для того чтобы кешировать ответы использую CrmRequestsHandler
✅Местами использую логгирование
GitHub
GitHub - GinessisC/MonobankAccountInfoProviders at dev
Contribute to GinessisC/MonobankAccountInfoProviders development by creating an account on GitHub.
Всем привет, сорян что так долго не выходил на связь: надо было готовится к экзаменам. За это время надо было подтянуть историю, язык, да и математику.
А, и ещё я хотел найти схему как скипать уроки в онлайн школе, но оказывается там надо не просто отправлять запросы с определёнными хедерами. Короче, забросил это дело на время, но, конечно, хотелось бы разобраться как так сделать
А, и ещё я хотел найти схему как скипать уроки в онлайн школе, но оказывается там надо не просто отправлять запросы с определёнными хедерами. Короче, забросил это дело на время, но, конечно, хотелось бы разобраться как так сделать
👍1
Всем привет ещё раз. Сори что не выпускаю посты. Времени вообще нету. Почти всё время уделяю экзаменам. Сдаю я их 19 июня. Фактически 2 недели остаётся. Результаты не очень хорошие, по этому пытаюсь делать всё чтобы вытянуть на все предметы лучший бал. Как не странно, от этого экзамена зависит почти что моя жизнь. Я не хочу ещё один год просерать в этой школе, которую я успел возненавидеть. Я не хочу сдавать ЕЩЁ ОДНИ экзамены в следующем году - это же пиздец. К тому же, это имеет ещё и символический смысл: я должен доказать самому себе что я что-то могу, что я могу решать проблемы, не в зависимости от сложности. Если же я не сдаю на проходной для университета бал(то есть 162/200) то я не поступаю в уник, следовательно я - неудачник и не могу брать ответственность за свою жизнь. Вот так вот.
А так, ожидайте посты после 19. Подготовил несколько проектов для себя, думаю вам понравится)
А так, ожидайте посты после 19. Подготовил несколько проектов для себя, думаю вам понравится)
❤2
Ну вот и всё, вроде готов. Пару вариантов по матеше напишу этим днём, повторю самое важное и уже завтра пишу экзамен. Даже не верится что эти страдания могут закончиться завтра. Или же не закончятся(если сдам этот экзамен на недостаточный бал)