Pull to refresh
1
0.2
Send message

Основы программирования на примере исходного кода React

Level of difficultyMedium
Reading time5 min
Views9.3K

Изучите ключевые концепции программирования, лежащие в основе популярной JavaScript-библиотеки React. Понимание этих концепций поможет вам применить лучшие практики программирования в работе.

Читать далее
Total votes 8: ↑8 and ↓0+9
Comments2

Разбираемся с this в JavaScript раз и навсегда (но это не точно)

Level of difficultyMedium
Reading time8 min
Views12K

Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и то как фронтендеры пишут очередную статью про this.

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

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

Читать далее
Total votes 13: ↑13 and ↓0+14
Comments5

Что нужно знать, чтобы успешно пройти System Design Interview

Reading time16 min
Views28K

Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.

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

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

Читать далее
Total votes 48: ↑48 and ↓0+51
Comments26

Реализация SHA256 и SHA512 на языке RUST

Level of difficultyEasy
Reading time8 min
Views6.8K

Небольшая заметка студента о том, как самостоятельно реализовать алгоритмы SHA256 и SHA512 на Rust.

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

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

Использование LLM в автоматизации рутинных задач

Level of difficultyMedium
Reading time14 min
Views9.5K

Всем привет!

На связи Георгий Бредис, Deep Learning Engineer из команды Intelligent Document Processing в SberDevices. Наша команда занимается задачами автоматизации бизнес-процессов путем извлечения информации из неструктурированного контента и созданием сервисов суммаризации и поиска на основе LLM. В данный момент мы исследуем новые способы извлечения информации из интерфейсов, что открывает новые возможности для автоматизации процессов в сфере RPA.

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

Читать далее
Total votes 21: ↑21 and ↓0+25
Comments5

Я изучила 900 самых популярных инструментов ИИ на базе open source — и вот что обнаружила

Reading time8 min
Views32K

Четыре года назад ИТ-эксперт Чип Хуэн* проанализировала экосистему ML с открытым исходным кодом. С тех пор многое изменилось, и она вернулась к изучению темы, на этот раз сосредоточившись исключительно на стеке вокруг базовых моделей.

О результатах исследования читайте под катом.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

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

С 500 мс до нуля, или история о том, как я написал Node.js C++ addon и ускорил скидочный сервис в 500 раз

Level of difficultyMedium
Reading time18 min
Views19K

Приветствую тебя! Меня зовут Дмитрий и я работаю в LAD.
Сегодня я поведаю историю о том, как эволюционировал скидочный сервис одного из наших проектов. Пройдя путь от всеми нелюбимого, "тормозящего" сервиса, до сервиса,
который имеет наилучшие показатели на недельных графиках SLA.

Читать далее
Total votes 44: ↑43 and ↓1+42
Comments37

GIL в Python: как его будут отключать

Level of difficultyMedium
Reading time7 min
Views16K

Python-разработчики, как правило, хорошо знают, что такое и для чего нужен GIL, вопросы по нему встречаются на большинстве собеседований, я и сам люблю их задавать. Но в CPython его скоро не будет. Да, core-разработчики CPython взяли курс на его удаление.

Разберём основные концепции того, как это будет произведено, с обзором соответствующего PEP 703.

Читать далее
Total votes 27: ↑27 and ↓0+28
Comments37

Сколько мы заработали за год на 1 товаре из Китая. Продаем коврики для ноутбука на маркетплейсах

Level of difficultyEasy
Reading time11 min
Views78K

В 2023 году с нуля запустили собственный проект по продаже настольных ковриков для ноутбука, клавиатуры и мыши. Нашли поставщика в Китае, доставили товары в Москву и запустили продажи на трех маркетплейсах: Ozon, Wildberries и Яндекс Маркет. Результат — более 5 млн руб. дохода за год на 12 SKU (ковриков разных цветов).

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

Делимся в кейсе лайфхаками, которые будут актуальны и в 2024 году:

Как запустить продажи на всех маркетплейсах — алгоритм работы;

Что делать при сезонном спаде и почему еще могут проседать продажи;

Как экономить на логистике и сокращать комиссию площадки.

Читать кейс
Total votes 72: ↑38 and ↓34+4
Comments98

CI/CD Kubernetes платформа Gitorion. Создаем замену GitLab CI на базе OpenSource-инструментов

Level of difficultyMedium
Reading time5 min
Views5.3K

Привет всем! На одном из проектов нам потребовалось внедрить непрерывную интеграцию и доставку CI/CD. Поиск готового решения показал, что все наши потребности может закрыть GitLab CI. Однако GitLab - платный продукт и на момент принятия решения возникли некоторые трудности с его коммерческим использованием. Поиски альтернативы не увенчались успехом, и было принято решение создать CI/CD своими силами из имеющихся OpenSource-инструментов.

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

В данной серии статей мы хотим рассказать о нашем пути, этапах работы и компонентах платформы.

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments32

Как я зарабатывал $10,000 в месяц на серверах ARK: Survival Evolved

Level of difficultyEasy
Reading time16 min
Views87K

Я — ведущий гейм дизайнер с опытом разработки крупных, хардкорных проектов в жанрах от MMORPG и CRPG до мобильной MOBA. Почти три года мы с лучшим другом продюсировали, дизайнили, разрабатывали и занимались живым оперированием своих серверов по игре ARK: Survival Evolved. За это время мы неплохо заработали (в среднем проект приносил $6000-12000 gross ежемесячно). Конечно же, мы столкнулись с тонной сложностей и челленджей, и выучили много уроков. В этой статье я хочу не только рассказать о нашем приключении, но и поделиться выученными уроками. Оперирование кастомных серверов огромных франшиз типа Roblox, Fortnite или Minecraft и других игр похожа на разработку игр в классическом понимании, но имеет под собой свою специфику. Этот опыт будет полезен не только моддерам, но и разработчикам и продюсерам игр. 

ARK: Survival Evolved — ММО экшен от 1 и 3-го лица с крафтом, строительством и динозаврами. На динозаврах в игре можно охотиться, можно приручать, ездить на них, разводить и воевать с другими племенами в игре, и это основная фишка, привлекающая игроков. Но настоящая основная особенность игры в том, что карты — собственно, ковчеги, объединены в кластеры, внутри которых игроки могут беспрепятственно путешествовать между карт, превращая мир игры в настоящее ММО — в отличие от большинства остальных подобных игр. Это гениальная игра, о которой невозможно рассказать в двух словах, и она доводит своих игроков до настоящей аддикции, и те проводят в ней тысячи и десятки тысяч часов.

Читать далее
Total votes 126: ↑120 and ↓6+114
Comments44

Конец программирования, как мы его знаем, или Что нас ждёт с LLM

Level of difficultyMedium
Reading time5 min
Views60K

«Большие языковые модели и конец программирования». Под таким заголовком в прошлом году прошла серия лекций доктора Уэлша, профессора информатики в Гарварде. В этом посте мы раскроем основные тезисы выступления, и в заключение попробуем взглянуть на будущее так же воодушевлённо, как автор.

Читать далее
Total votes 76: ↑54 and ↓22+32
Comments233

Как стать VPN провайдером за один вечер

Level of difficultyMedium
Reading time13 min
Views61K

Рассказываю о своём опыте использования Xray (с протоколом VLESS-Reality) - одного из лучших решений для преодоления интернет-цензуры на сегодняшний день. Я потратил много времени на то, чтобы разобраться с ним - теперь вам достаточно одного вечера, чтобы поднять свой сервер на несколько десятков пользователей, c xray на борту!

скрипт ex.sh для простой настройки и установки; есть поддержка Docker

легко добавлять пользователей; клиентские конфиги в форме url-ссылок

правильные конфиги: скрытность + удобство

трафик популярных российских сайтов идёт напрямую, a не через сервер

для xray есть приложения под все популярные ОС - делюсь инструкциями

только https, нет udp; торренты через сервер блокируются по возможности

мой проект на гитхабе: easy-xray

Интересны детали? Добро пожаловать под кат
Total votes 71: ↑70 and ↓1+69
Comments142

Каково это, создавать язык программирования сегодня?

Level of difficultyMedium
Reading time8 min
Views16K

«Эта книга – классика. Относитесь к ней бережно».

Такую фразу произнёс архитектор из нашей команды, передавая мне The Dragon Book. Разработкой компиляторов я увлёкся где-то 15 лет назад ещё на заре своей карьеры. Как-то раз, читая эту книгу поздно вечером, я заснул, небрежно уронив её на пол. Надеюсь, владелец не заметил небольшую вмятину на обложке после того, как я ему её вернул.

Вышла эта книжка в 1986 году. В те времена создание компиляторов было крайне сложной задачей, требовавшей обладания различными навыками в области компьютерных наук в целом и программирования в частности. Теперь, почти четыре десятилетия спустя, этой задачей занимаюсь я. Насколько сложна она сегодня? Приглашаю вместе разобрать процесс создания языка и посмотреть, насколько современные инструменты его упростили.
Читать дальше →
Total votes 62: ↑59 and ↓3+56
Comments5

Классическое программирование на грани вымирания

Level of difficultyEasy
Reading time6 min
Views95K
Все изображения в этой статье сгенерированы нейросетью DALL-E 2

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

Период моего юношества пришёлся на 80-е годы. Тогда я занимался программированием ПК вроде Commodore VIC-20 и Apple IIe дома. Во время обучения в Калифорнийском университете, где я в итоге получил свою докторскую степень, основная часть моей учебной программы была посвящена «классическим» компьютерным наукам: программирование, алгоритмы, структуры данных, системы и различные языки. В классической форме задача компьютерных наук заключается в представлении некой идеи в виде программы, написанной человеком на языке вроде Java, C++ или Python. Причём, какой бы сложной ни была эта идея — начиная от алгоритма объединения баз данных и заканчивая крайне сложным протоколом консенсуса Paxos — её можно выразить в виде понятной для человека программы.
Читать дальше →
Total votes 116: ↑73 and ↓43+30
Comments322

Какие неочевидные темы вспомнить перед собеседованием на Frontend разработчика

Reading time4 min
Views27K

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

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

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

Ну что, поехали!

Читать далее
Total votes 16: ↑15 and ↓1+14
Comments19

Посторонись, Copilot: подборка разнообразных AI-инструментов для разработчиков

Level of difficultyEasy
Reading time4 min
Views30K

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

Читать далее
Total votes 34: ↑32 and ↓2+30
Comments8

Propan — Python фреймворк для написания микросервисов с использованием брокеров сообщений

Level of difficultyEasy
Reading time4 min
Views11K

Так исторически сложилось, что последние 5 лет своей продуктовой разработки я работаю с микросервисами вокруг брокеров сообщений (преимущественно RabbitMQ и Kafka).

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

Приходя из мира HTTP фреймворков ты чувствуешь себя как будто на костылях - ни тебе hotreload'а, который есть практически в любом wsgi-asgi сервере, хочешь тестировать - поднимай контейнеры окружения или мокай зависимости (особенно удобно в CI, ага), не забудь о реконнектах, логировании, трассировке и тд и тп.

И вот, таская от сервиса к сервису ворох всех этих проблем (и код который эти проблемы решает), до меня дошла гениальная идея: оформить весь однотипный код, общий для всех сервисов в единый пакет!

Так появился на свет фреймворк Propan.

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

Как я учился языку JAVA на Яндекс платформе

Level of difficultyMedium
Reading time14 min
Views25K

Вот наконец я созрел для написания отзыва о своей учебе в Яндекс практикуме на потоке Java программировании. Долго не мог и не хотел оставлять отклик по учебе, думаю он был бы не совсем корректным. Теперь, когда утихли первые и последние эмоции, думаю можно.   Итак, прежде чем описать свое мнение, ведь все что будет написано является сугубо субъективным, пропущенным через мой опыт и чувства, поэтому маленькое предисловие: немного о себе, это важно с точки зрения дальнейшего описания событий. Образование высшее медицинское, стаж работы на врачебных должностях, в том числе и заведующим отделением обширный, к тому же имею педагогическое образование и стаж преподавания семь лет. Это все к тому, что я понимаю о чем говорю и пишу в своем отзыве. А также для тех, у кого образование гуманитарий. Одно дела переучиваться людям с техническим образованием на программиста, а другое без такового. И последняя ремарка, сравнивать не с чем, пока на других платформах не пытался учиться, обзор будет сугубо о платформе Яндекс практикум,  и наверно будет отзыв не совсем честен, так как к началу обучения я самостоятельно в течение шести месяцев изучал данный вопрос, к моменту обучения представлял, что такое ООП (объектно-ориентированное программирование), в целом имел представление об языках программирования, а также изучил наизусть основы программирования java по книги «Java Полное руководство» Герберт Шилдт 10-е издательство и спокойно пользовался технической документацией по Java SE 11 на тот момент.

Читать далее
Total votes 25: ↑23 and ↓2+21
Comments28

Как установить Copilot в России и использовать его эффективно

Level of difficultyEasy
Reading time5 min
Views128K

Copilot – система автодополнения кода от GitHub на основе модели Codex.
В статье даю советы по эффективному использованию Copilot на основе 6 месяцев личного опыта. Также добавил инструкцию по установке из России.

Tldr: Copilot подходит для повторяющихся задач и как замена поиску по документации популярных библиотек. Помогает быстрее писать код. Не подходит для решения узких сложных задач и проектов с нуля. 

Читать далее
Total votes 8: ↑6 and ↓2+4
Comments9
1
23 ...

Information

Rating
2,132-nd
Location
Австралия
Date of birth
Registered
Activity