Pull to refresh
0
@ZeroT3chread⁠-⁠only

Newbie

Send message

Невыносимая легкость контрибьюта в Open Source

Reading time5 min
Views21K

Мы дожили до момента, когда для отправки своего коммита в популярный проект, не нужно подписывать бумажный отказ от прав на код, как это бывало в случае с GNU-проектами. Заходи на Github, ищи. Выбирай, что нравится, клонируй, создавай пул реквест, чувствуй себя гордым контрибьютором. Но если хочется не только чувствовать, но и быть, то все несколько сложнее...

Читать далее
Total votes 109: ↑93 and ↓16+101
Comments93

Разбираем самый маленький PNG в мире

Level of difficultyEasy
Reading time9 min
Views36K

Самый миниатюрный PNG в мире весит 67 байт и представляет собой один чёрный пиксель. Выше вы видите его в 200-кратном увеличении.

Красота, не так ли?

Состоит этот файл из четырёх частей:

  1. Сигнатура PNG, одинаковая во всех файлах этого формата: 8 байт.
  2. Метаданные изображения, включая его размеры: 25 байт.
  3. Данные пикселя: 22 байта.
  4. Маркер «конец изображения»: 12 байт.

Далее я опишу этот файл подробнее и постараюсь объяснить принцип работы формата PNG.

В качестве небольшой затравки скажу, что в конце предстоит неожиданный поворот. Хотя, надеюсь, вам и без того интересно побольше узнать о PNG.
Читать дальше →
Total votes 104: ↑96 and ↓8+124
Comments112

С новым годом: GPT в 500 строках на SQL

Reading time42 min
Views38K

В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.

Мне нравится, когда кто-то или что-то работает за меня. Поэтому решил: попрошу-ка ChatGPT написать за меня новогодний пост:

«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»

Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.

Давайте же воодушевимся этим оптимистическим планом и реализуем большую языковую модель на языке SQL.

Читать далее
Total votes 181: ↑177 and ↓4+207
Comments21

Что нас бесит в интерфейсах игр

Level of difficultyEasy
Reading time6 min
Views10K
image

Интерфейс — это то, по чему встречают игры. И далеко не все игры дружелюбны к игрокам, приветствуя их сложными менюшками и порой крайне нелогичным расположением кнопок. В этом материале я решил вспомнить, какие элементы интерфейсов могут вызывать, мягко говоря, недоумение.
Читать дальше →
Total votes 42: ↑33 and ↓9+39
Comments74

Пишем код, когда пишем код: сорс-генераторы

Level of difficultyMedium
Reading time15 min
Views3.6K

Всем привет! Я Олег, ведущий разработчик в Тинькофф. Расскажу историю про сорс-генераторы и почему именно генерацию кода мы выбрали для решения нашей задачи. Будут неожиданности и открытия, которые мотивировали нас двигаться дальше.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments3

Бессильный сборщик мусора или неуправляемая память в .NET

Level of difficultyMedium
Reading time7 min
Views9K

Если вы готовитесь к собеседованию и гуглите список вопросов для кандидата на C# разработчика, то сто процентов один из вопросов будет о сборщике мусора. На собеседованиях этот вопрос действительно частенько задают, но как только они заканчиваются, магическим образом все знания улетучиваются, прямо как после экзамена. Долгое время я не понимал, зачем мне нужно знать как именно работает сборщик мусора, ну собирает он как-то мусор, ну и пусть собирает дальше.

Так я думал пока я не столкнулся с проблемами потребления памяти. Сегодня я хочу рассказать об одной из таких проблем, связанных с неуправляемой памятью.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments50

Самое понятное объяснения CFG Scale в нейросетях. Как эта штука повлияла на появление Stable Diffusion

Level of difficultyMedium
Reading time4 min
Views13K

Вы не поверите, но я уже и разработчиков Kandinsky 2.2 спрашивал, что такое CFG Scale в фундаментальном смысле, и нейронщиков всех мастей, однако так не получил внятного ответа. От обывательских блогов меня вообще теперь тошнит, ибо там одно и то же: параметр CFG Scale увеличивает силу следования подсказке... И все как бы, окей — сами разберемся.

Так вот, я начал с базы и открыл научные статьи родоначальников метода classifier free guidance scale. Прикреплю ссылки на них сразу же, чтобы вы тоже могли ознакомиться. Вот статья, посвященная именно CFG Scale для диффузных моделей, а вот статейка о применении данного метода в современных языковых моделях.

Для чего это нужно?

Меня поразил тот факт, что метод CFG Scale и позволил диффузным моделям родиться. До них были GAN-модели, которые совмещали в себе генератор и дискриминатор. Дискриминатор, по-другому, это классификатор. Т.е. моделька сначала генерит изображение, а потом вторая полноценная модель оценивает его на вшивость и корректирует вместе с первой.

Из этого вытекают минусы: например, нужно вместе с одной моделью обучать и вторую (работы в два раза больше). Также нужно, чтобы железо тянуло сразу две модели, ибо они задействуются в паре.

Метод же SFG Scale позволил задействовать только одну модель — диффузнную, т.е. обучать вторую больше не нужно. Чтобы вы понимали, механика описывается парой строк кода. Думаю, вы смекаете, что это намного проще дополнительной полноценной модели, которую еще хранить где-то нужно.

Читать далее
Total votes 5: ↑4 and ↓1+5
Comments9

Строим свой SSO. Часть 3: Redis, Swagger, Vue.js

Level of difficultyMedium
Reading time50 min
Views6.7K

Всем привет, мы продолжаем строить собственный SSO Server. Сегодня мы разберем подключение Redis и Swagger к нашему проекту. А также построим собственную, красивую форму аутнетификации, используя VueJS.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments1

ConfigureAwait: часто задаваемые вопросы

Reading time20 min
Views134K
Привет, Хабр! Представляю вашему вниманию перевод статьи «ConfigureAwait FAQ» автора Стивен Тауб.

image

Async/await добавили в .NET более семи лет назад. Это решение оказало существенное влияние не только на экосистему .NET — оно также находит отражение во многих других языках и фреймворках. На данный момент реализовано множество усовершенствований в .NET с точки зрения дополнительных языковых конструкций, использующих асинхронность, реализованы API-интерфейсы с поддержкой асинхронности, произошли фундаментальные улучшения в инфраструктуре, благодаря которым async/await работает как часы (в особенности, улучшены возможности производительности и диагностики в .NET Core).

ConfigureAwait — один из аспектов async/await, который продолжает вызывать вопросы. Надеюсь, у меня получится ответить на многие из них. Я постараюсь сделать эту статью читаемой от начала до конца, и вместе с тем выполнить ее в стиле ответов на часто задаваемые вопросы (FAQ), чтобы на нее можно было ссылаться в последующем.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments18

Помоги компилятору, и он поможет тебе. Тонкости работы с nullable reference типами в C#

Reading time10 min
Views9K

Nullable reference типы появились в C# 3 года назад. За это время они смогли найти свою аудиторию. Но даже те, кто имеет дело с этим зверем, скорее всего, не знают всех его возможностей. Давайте разберёмся, как более качественно взаимодействовать с этими типами.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments13

Настраиваем LDAP в ОС Linux

Level of difficultyEasy
Reading time4 min
Views8.1K

В этой статье мы продолжим разворачивать и настраивать LDAP под Linux. В первой части мы выполнили базовую установку slapd, развернули домен domain.com, и добавили записи в каталог.

Сейчас мы продолжим выполнять наши настройки в LDAP и поговорим об аутентификации.

Читать далее
Total votes 13: ↑9 and ↓4+7
Comments2

Telegram API и библиотека TDLib для .NET платформ

Level of difficultyEasy
Reading time6 min
Views21K

image
Доброго времени суток! В Telegram существует два вида API: Telegram Bot API (обыкновенный бот с пометкой "бот") и Telegram API (клиент и юзербот, который обладает больше функционалом, чем просто бот). В этой статье пойдет речь о втором виде, а именно: что требуется для взаимодействия с Telegram API, какие средства нужны для написания кода своего юзербота на языке C#, как их правильно установить, а также каким образом использовать их.

Читать дальше →
Total votes 20: ↑18 and ↓2+25
Comments7

C# Linq для GraphQL-запросов

Level of difficultyEasy
Reading time7 min
Views5.7K

Транслятор Expression'ов в GraphQL-запрос.

Реализация библиотеки для трансляции Выражений в GraphQL-запрос с использованием Linq-подобного api.

Обзор и сравнение существующих решений. Создание собственного инструмента.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments28

Платежные системы простыми словами. Как устроены и зачем нужны Mastercard, Visa, МИР и прочие

Reading time11 min
Views95K

Россия уже больше года живет без Visa и Mastercard. За это время все мы успели четко понять, что платежные системы - это не просто логотипы на банковских картах. В этой статье разбираем, как работают платежные системы, что конкретно они делают, и почему не стоит недооценивать их значимость для экономики.

Читать далее
Total votes 299: ↑267 and ↓32+276
Comments256

Deadlock Empire — игра для разработчиков

Reading time2 min
Views15K

Хабр, как известно, не место для игр, но мы нашли одно исключение, которое, как нам кажется, достойно упоминания здесь!

Встречайте: Deadlock Empire!

Суть игры — управление планировкой потоков, код которых приведен в заданиях. Управлять нужно так, чтобы добиться ошибочной ситуации: взаимблокировки, повторных значений счетчиков, достижения определенных участков кода и прочих непредвиденных ситуаций, которые нужно осознавать при разработке многопоточных приложений.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments5

Как создатели мемных спин-оффов «Зельды» изменили российскую индустрию игр и анимации

Level of difficultyEasy
Reading time37 min
Views6.3K
image

Что общего между мемами про Моршу, квестом по Warcraft, «Масяней», «Смешариками» и Jedi Outcast.

Animation Magic Inc. (ООО «АМИ») — одна из первых крупных российских игровых студий. Она была открыта в 1992 году в Санкт-Петербурге и в основном занималась аутсорсом для западных издателей. Ещё это первая отечественная студия, которая на момент открытия имела американское подразделение и команду разработчиков из 50 человек. И это в те годы, когда из известных российских игр был разве что Tetris Алексея Пажитнова, Perestroika Никиты Скрипкина и Color Lines от студии Gamos.

Сегодня об Animation Magic вспоминают только в контексте отменённого квеста по вселенной Warcraft да неканоничных частей The Legend of Zelda, анимационные ролики из которых ещё в нулевые стали популярными интернет-мемами. Обе части Zelda рьяно критикуют и высмеивают уже два десятилетия, но в отрыве от критики — о студии почти ничего неизвестно.

И очень печально, ведь выходцы из Animation Magic серьёзно повлияли на формирование игровой и анимационной индустрии в России. Этим материалом мы хотели бы восстановить историческую справедливость: разобрать полный творческий путь студии, развеять мифы и опубликовать ранее неизвестные факты.
Читать дальше →
Total votes 39: ↑36 and ↓3+45
Comments4

Lock с приоритетами в .NET

Reading time4 min
Views15K
Каждый программист, использующий более одного потока в своей программе, сталкивался с примитивами синхронизации. В контексте .NET их очень и очень много, перечислять не буду, за меня это уже сделал MSDN.

Мне приходилось пользоваться многими из этих примитивов, и они прекрасно помогали справиться с задачами. Но в этой статье я хочу рассказать про обычный lock в десктопном приложении и о том как же появился новый (по крайней мере для меня) примитив, который можно назвать PriorityLock.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments34

Создание CLI-приложений при помощи System.CommandLine в .NET

Level of difficultyEasy
Reading time5 min
Views7.4K

В .NET уже несколько лет существует библиотека System.CommandLine, позволяющая быстро создавать CLI-приложения. Несмотря на то, что библиотека ещё в стадии beta, её активно используют и сами разработчики Microsoft, например, в утилите dotnet из пакета .NET SDK. 

Преимущества этой библиотеки в том, что она позволяет сосредоточиться на разработке полезного функционала приложения и не тратить время на создание парсера команд, опций и аргументов, а также имеет широкие возможности для кастомизации.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments3

Интересные сюрпризы ConcurrentDictionary (+разбор задачи с DotNext 2017 Moscow)

Reading time5 min
Views27K

Привет всем, кто пишет код для .NET, особенно многопоточный. Редко встретишь потокобезопасный код без потокобезопасных коллекций, а значит, нужно уметь ими пользоваться. Я расскажу о самой популярной из них — ConcurrentDictionary. В ней спрятано на удивление много интересных сюрпризов: как приятных, так и не очень.


Сначала разберём устройство ConcurrentDictionary и вычислительную сложность операций с ним, а затем поговорим об удобных трюках и подводных камнях, связанных с memory traffic и сборкой мусора.


Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments3

Запуск аналогов ChatGPT на домашнем ПК в пару кликов и с интерфейсом

Level of difficultyEasy
Reading time6 min
Views198K

--- Обновление статьи 9 Августа 2023 ---

В течении последнего полугода в сфере текстовых нейронок всё кипит - после слитой в сеть модели Llama, aka "ChatGPT у себя на пекарне" люди ощутили, что никакой зацензуренный OpenAI по сути им и не нужен, а хорошие по мощности нейронки можно запускать локально.

Основная проблема в том, что всё это требует глубоких технических знаний.

Но в этой статье я расскажу, как запустить добротную нейросеть на домашнем ПК с 16ГБ ОЗУ в несколько кликов. Буквально в несколько кликов - копаться в консоли не придётся.

Читать далее
Total votes 117: ↑116 and ↓1+142
Comments180

Information

Rating
Does not participate
Location
Иркутск, Иркутская обл., Россия
Registered
Activity

Specialization

Fullstack Developer
Junior
From 150,000 ₽
JavaScript
Vue.js
Web development
C#
ASP.Net
Linq
T-SQL
.NET
Git
REST