Pull to refresh
27
0
Михаил Мельник @mike114

User

Send message

Про́клятый огонь, или магия препроцессора C

Reading time18 min
Views31K

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

Чтобы не было обманутых впечатлений, предупрежу сразу, что рейтрейсера не будет, но про́клятый код будет очень даже! Итак, поехали. Для начала, почему я вообще задался этим вопросом? Если обычный код компьютерной графики вам скучен, следующий раздел можно пропустить, перематывайте до последней картинки.

Читать далее

Как устроен виндсёрфер? И немного ещё…

Level of difficultyEasy
Reading time16 min
Views13K
Картинка Macrovector, Freepik

В этой статье я расскажу одну довольно любопытную историю, которая приключилась со мной достаточно много лет назад, в результате чего я получил много новых скилов, освоил абсолютно новую для себя и очень интересную сферу — виндсёрфинг, а также стал в некотором смысле корабелом. Итак…
Читать дальше →

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

Reading time42 min
Views41K

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

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

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

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

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

Читать далее

OpenAI запускает GPT Store — как создать свой custom GPT с внешними API вызовами

Level of difficultyEasy
Reading time7 min
Views16K

Вчера вечером, 10 января 2024 г., OpenAI официально запустили GPT Store.

Давайте разберемся, что это такое, и что оно дает. А затем создадим свой собственный GPT и добавим его в GPT Store.

Концепция "custom GPT" в терминах OpenAI - это кастомный набор инструкций (custom prompt), который может быть создан любым пользователем ChatGPT с подпиской Plus. Каждый такой custom GPT за счет своего набора инструкций хорошо заточен под решение своей конкретной задачи. Есть custom GPT, которые хорошо пишут код, есть custom GPT, которые играют роль репетитора или психотерапевта и т.д.

Таким образом, GPT store - это большая библиотека инструкций для разных задач внутри ChatGPT. Она создается и поддерживается комьюнити и очень сильно напоминает google play market или apple app store.

Процесс создания Custom GPT заключается в том, что в интерфейсе ChatGPT пользователь составляет подробные инструкции, что и как его GPT должен делать, дает описание, придумывает название, примеры использования и т.д. - всё это сохраняется на серверах OpenAI.

Читать далее

Сказ о том, как я за год решил более 600 leetcode задач

Level of difficultyEasy
Reading time7 min
Views134K

Всем салют!

Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...

Читать далее

Kubernetes на AWS: пошаговое руководство

Reading time7 min
Views6K

В этой статье мы рассмотрим несколько распространенных способов создания кластера Kubernetes на AWS:

Создание кластера с помощью kops: kops — это инструмент, предназначенный для промышленной эксплуатации, используемый для установки, обновления и управления Kubernetes на AWS.

Создание кластера с помощью Amazon Elastic Kubernetes Service (EKS): EKS — это управляемый сервис Kubernetes, предоставляемый компанией Amazon. Кластер Kubernetes с EKS можно создать с помощью AWS Management Console.

Создание кластера с помощью Rancher: Rancher — это платформа управления Kubernetes, которая упрощает развертывание Kubernetes и контейнеров.

Читать далее

Алгоритмы не важны

Level of difficultyEasy
Reading time7 min
Views45K

Прошу простить заранее за несколько кликбейтный заголовок )

Не так давно писал в соцсетях хейт‑пост по поводу «алгоритмических секций» при приёме на работу в Яндекс.

Да и многие другие софтверные компании это практикуют и считают навыки написания алгоритмов — чуть ли не самым важным навыком для программистов.

И ставят данной компетенции очень высокий приоритет при приёме на работу.

Попробую сегодня развить эту мысль и объяснить почему ставить навыки написания алгоритмов на первый план — не правильно, почему этот «алгоритмический» критерий не релевантен и не отражает реальной ценности / уровня / потенциальной пользы от данного программиста.

Читать далее

Как появилась микроволновка, или История случая, науки и кулинарной революции

Reading time15 min
Views13K

Сейчас на часах 8 утра, и я иду на кухню завтракать. Чай уже заваривается, я беру ломоть черного хлеба, кладу сверху сыр и вареную колбасу, помещаю все это на тарелку и... Кто-то решил, что я это сразу съем? А вот и нет. Не знаю, как вам, а я люблю, когда чуть подплавленный сыр мягко обволакивает теплую колбасу. Потом остывает и покрывается легкой корочкой — кайф!

Конечно, можно воспользоваться и сковородкой. Бутерброд получится вкуснее, но блин — это же потом ее мыть придется? Ну уж нет. Я ставлю тарелку с завтраком в микроволновую печь: незаменимый атрибут на современной кухне. Минутка, и все готово. Удобно. 

Под работу перемалывающих завтрак челюстей в голове проносится вопрос: «Неужели у кого-то нет такой удобной штуки?». А следом вспоминается рассказ отца-инженера из моего детства: что, мол, микроволновку вообще придумали сразу после Второй мировой войны американские военные совершенно случайно. А еще что это — не совсем правда. Интересно? Пока жую, попробую рассказать. 

Читать далее

Clickhouse, Grafana и 3000 графиков. Как построить систему быстрых дашбордов

Reading time17 min
Views39K

Меня зовут Валя Борисов, и я — аналитик в команде Ozon. Задача нашей команды — создавать инструменты для мониторинга и анализа скорости. 

Наши усилия направлены на то, чтобы в реальном времени следить за тем, как быстро работают наши сервисы и платформа. Благодаря инструментам, которые мы создаём и поддерживаем, команды разработки получают представление о том, как пользователи видят работу нашего сайта или приложения. Мы помогаем выявлять причины деградации скорости и определять узкие места в инфраструктуре.

Наши дашборды играют ключевую роль в предоставлении информации о скорости работы платформы. Вместе с командой аналитиков я занимаюсь созданием и поддержкой этой системы в Grafana. Мы стремимся делать ее не только информативной, но и быстрой, стабильной и удобной для всех пользователей. В этой статье я хочу поделиться методами и приемами, к которым мы пришли в процессе работы.

Читать далее

Пармезан вместо денег

Reading time8 min
Views3.7K
image
"Rescue Rangers", episode "Mind Your Cheese and Q's"//«Чип и Дэйл спешат на помощь», эпизод «Сыру — мир»

— Выдайте мне кредит под залог имущества!
— Что вы хотите заложить?
— СЫ-Ы-Ы-Ы-ЫР!

Звучит, как безумие, если вы не находитесь в отделении итальянского банка Credito Emiliano (или по-простому — Credem).

Всё дело в том, что в этом итальянском банке уже больше полувека выдают кредиты местным сыроделам под залог элитного Parmigiano-Reggiano на весьма выгодных условиях: всего под 3–5% годовых. Для ценного продукта у банка есть специальные хранилища, в которых огромные головы сыра по 38–40 кг каждая вызревают, пока заёмщик не придёт забирать своё имущество обратно.

Пармезан — капризный твёрдый сыр, которому нужно не меньше двух лет, чтобы окончательно созреть. И это проблемка для тех, кто его делает, потому что платить зарплату работникам и покупать новое сырьё нужно регулярно, а никак не раз в два года.

Эта история началась в 1953 году, когда итальянские сыроделы были чуть ли не поголовно на грани разорения, т. к. после войны наступил кризис, и производство сыра перестало окупаться.

Банк Credito Emiliano придумал, как помочь умиравшим семейным сыроварням и сберечь традиционное, очень важное для местной самоидентичности производство, и начал выдавать кредиты под залог сыра. Это помогло и продолжает помогать сыроделам выжить.

Сегодня поговорим о том, почему сыр — это неплохой гарант, и как банк вообще додумался до такой идеи.
Читать дальше →

BNPL, или Как миллениалы заново рассрочку изобрели

Reading time14 min
Views6.4K
Идея покупок в рассрочку, мягко говоря, не нова. «В массы» она ушла ещё в середине XIX века, когда компания Singer начала массово производить и продавать достаточно дорогие для обыкновенного человека швейные машинки, а в начале XX века тему развили Генри Форд и General Motors. И с тех пор — понеслось.

Казалось бы, что нового можно придумать на этом поприще? Оказывается — можно.

Относительно недавно для миллениалов и поколения Z придумали новую систему BNPL — Buy now, pay later, что в переводе означает «покупай сейчас, плати потом». Многие по ошибке называют её «покупками в рассрочку», но, если честно, это немножко (множко) вообще не то же самое. Если это, конечно, классический BNPL.

В ближайшее время стремительного роста доходов у большинства людей в мире не предвидится, так что популярность BNPL будет только расти, и потому подобные сервисы сейчас стремятся завести все мало-мальски крупные игроки, от банков до маркетплейсов. Не исключено, что культура потребления под его влиянием несколько изменится.
image
Источник

Чтобы встретить эти перемены во всеоружии, важно убедиться, что вы умеете «правильно его готовить». Поэтому сегодня мы говорим о том, как отличить BNPL от рассрочки, новаторстве в кредитовании и немного о поколении Z, которое массово пользуется этой системой и двигает её вперёд.
Читать дальше →

Гонконгский эксперимент: зачем власти Гонконга придумали цифровой доллар и как идут его испытания

Reading time10 min
Views3.6K

Недавно Гонконгская монетарная ассоциация (HKMA Hong Kong Monetary Association) опубликовала отчет о пилотных проектах гонконгской долларовой цифровой валюты (Central Bank Digital Currency, CBDC или ЦВЦБ) — e‑HKD. Регулятор запустил программу‑пилот в мае, чтобы исследовать применение потенциальной цифровой валюты в реальных сценариях. Чем это интересно? Гонконг — одна из ведущих экономик мира, десятки лет занимавший первые строки в разнообразных рейтингах. Поэтому можно ожидать, что лучшие практики будут перениматься другими странами. А отчет, представленный по итогам пилота — один из немногих документов, подробно освещающих тестирование цифровой валюты. Я прочитала этот монументальный труд и расскажу из чего состоит проект и что интересного напилотировали в Гонконге.

Читать далее

Как я сделал ремастер всех серий Том и Джерри в 2к всего за пару месяцев

Level of difficultyEasy
Reading time8 min
Views97K

Улучшение Том и Джерри из 480p в 1440p

С чего всё началось? Как-то я решил в третий раз с детства пересмотреть всю оригинальную коллекцию "Том и Джерри", но я, в отличие от маленького ребёнка, не потребляю любой контент вне зависимости от его качества. И вот я собрался посмотреть самую доступную версию, а там вот это цветошоу с постоянными царапинами на всём экране.

Мур-мур-мур

Как я с 0 поднял свой уровень английского до B2 и подтвердил этот уровень на «самом известном языковом экзамене»

Level of difficultyEasy
Reading time10 min
Views176K

Привет, Хабр!

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

Начнем с бекграунда и причин.

Я – инженер машиностроитель (мой профиль – торцевые уплотнения вращающихся валов). Я начал работать в своей отрасли сразу после бакалавра, параллельно заканчивая магистратуру, и как только я начал работать, я стал стараться впитать как можно больше теоретических знаний по моей специальности из академических источников. Достаточно бысто я понял, что последняя серьезная книга по моей специальности на русском языке была написана в 1978 году. И спустя больше чем 40 лет технологии сильно поменялись, а вот их описание на русском языке отсутствовает. Зато я нашел на reddit людей работающих в штатах в моей же отрасли. Они мне насоветовали кучу классной литературы. Разумееется, она вся на английском, и русского перевода не имеет.

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

Конечно, перед началом обучения я прочитал много статей на хабре о том как люди учат языки. Некоторые из них поражали скоростью овладения материалом (что-то вроде с нуля до fluent за 4 месяца). Но одна вещь была неизменна – у всех был какой-то план изучения языка.

Читать далее

Почему B-деревья быстрые?

Level of difficultyEasy
Reading time7 min
Views54K

B-дерево — это структура, помогающая выполнять поиск в больших объёмах данных. Она была изобретена более сорока лет назад, однако по-прежнему используется в большинстве современных баз данных. Хотя существуют и более новые структуры индексов, например, LSM-деревья, B-дерево пока никто не победил в обработке большинства запросов баз данных.

После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.

Читать далее

Графические оболочки FFmpeg

Level of difficultyEasy
Reading time6 min
Views40K


Считается, что работа в консоли эффективнее GUI по нескольким причинам. Во-первых, там быстрее набирать команды, чем двигать курсором. Во-вторых, на CPU, память и GPU не ложится лишнее бремя графической оболочки, так что любые процессы быстрее выполняются в консоли.

Но есть люди, которые всегда предпочтут GUI. Они считают графический интерфейс «наиболее эффективным и удобным способом работы на десктопе». На самом деле они во многом правы, в том числе для специфических задач видеообработки важно сразу видеть результат.

FFmpeg — изначально консольная утилита. Но её популярность крайне высока. Поэтому появляются всё новые варианты графических оболочек для FFmpeg, чтобы доступ к инструменту получили абсолютно все пользователи.
Читать дальше →

Тише едешь — дальше будешь. Гены тихоходок и ключи к звёздам

Reading time9 min
Views8.3K

В конце сентября я публиковал в этом блоге статью «Неизбежность, незаменимость и туманные перспективы пилотируемой космонавтики». Эта статья продолжала темы, также затронутые в переводе моего коллеги @SLY_G «Как учёные снижают пагубное влияние космических полётов на организм человека» и вызывала крайне интересную дискуссию из 96 комментариев с участием 34 человек, из которых я бы особенно отметил вклад @alexEtse @Valerij56 @johnfound и @Javian. Поэтому я решил подробнее рассмотреть тему генной модификации человека, которая могла бы приспособить его к длительным космическим полётам. Следовательно, появился бы способ закладывать профессию и судьбу человека уже в период эмбриогенеза. Судя по всему, за пределами магнитосферы наиболее смертоносным препятствием, осложняющим длительные космические экспедиции, является жёсткое космическое излучение. Чтобы купировать его влияние, можно было бы попробовать внедрять человеку некоторые гены тихоходок, в частности, кодирующие специфический тихоходский белок Dsup (damage suppressor, «подавитель ущерба»). Об удивительных продолжениях и перспективах таких исследований — под катом.

Читать далее

Книги, которые помогут прокачать писательские скилы

Reading time4 min
Views5.5K

Пять разноплановых книг, которые помогут прокачать писательские скилы и создавать интересные и полезные статьи для Хабра. В одних упор делается на смысловое содержание, в других на подачу и логику взаимодействия с умной аудиторией, ну и на работу с самим текстом.

Начать лучше с основополагающих вещей – книги «Я, редактор», где изложена суть современного подхода к подготовке интересных публикаций, а также объясняется смысл редакторской работы. Многие думают, что она связана лишь с правкой текстов, но это не так.

Читать далее

Особенности проксирования через CDN/Websocket/gRPC для обхода блокировок

Level of difficultyMedium
Reading time15 min
Views96K

Эта статья — заключительная (наконец‑то!) из моего огромного цикла про недетектируемые инструменты для обхода блокировок. В предыдущих публикациях я упоминал, что клиенты и серверы XRay (форк V2Ray) и Sing‑box при использовании протоколов VLESS/VMess/Trojan могут работать через веб‑сокеты и gRPC, что позволяет подключаться к даже заблокированным Роскомнадзором прокси‑серверам через CDN (content delivery или content distribution network) и дает дополнительные преимущества. Сегодня мы поговорим об этом поподробнее.

Читать далее

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views323K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее

Information

Rating
Does not participate
Location
New South Wales, Австралия
Date of birth
Registered
Activity