Как стать автором
Обновить
0
0
Антон Матюшенко @fluffy11

Пользователь

Отправить сообщение

Создаем свой собственный язык программирования с использованием LLVM. Часть 1: Лексический и синтаксический анализ

Время на прочтение36 мин
Количество просмотров27K

Это первая статья из цикла о том, как создать свой собственный ООП язык программирования с использованием LLVM.

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

Читать далее
Всего голосов 39: ↑37 и ↓2+48
Комментарии16

Оптимизация памяти и управление сборщиком мусора в Go: GOGC и GOMEMLIMIT

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров17K

Всем привет, меня зовут Нина Пакшина, я работаю Golang разработчиком в Лента Онлайн в команде операций.

В данной статье я расскажу о том, как управлять сборщиком мусора в Go, как оптимизировать потребление памяти приложением и защититься от ошибки out-of-memory.

Читать далее
Всего голосов 26: ↑25 и ↓1+32
Комментарии7

Вопросы и ответы для собеседования Go-разработчика

Уровень сложностиСредний
Время на прочтение53 мин
Количество просмотров120K

Структурирование информации — очень полезный навык. И дабы привнести некоторый порядок в этап подготовки к интервью на должность Golang разработчика (и немножко техлида) решил записывать в этой заметке в формате FAQ те вопросы, которые я задавал, задавали мне или просто были мной найдены на просторах сети вместе с ответами на них. Стоит относиться к ним как к шпаргалке (если затупишь на реальном интервью — будет где подсмотреть) и просто набору тем, которым тебе стоит уделить внимание.


Я постарался копнуть в каждый вопрос чуть глубже чем, возможно, надо бы — что бы у читателя был не только короткий ответ на вопрос, но и некоторое понимание "а почему именно так устроена та или иная штука". Более того, крайне рекомендую ознакомиться и с ссылками на источники, что будут под ответами — там вы найдете более развернутые ответы.


Да, это очень объемный пост, и вряд ли его можно вдумчиво осилить за один подход, но поместив его в закладки он, возможно, когда-то сослужит вам добрую службу (читать его можно по частям, находясь в метро или между вечными совещаниями; да и Ctrl + F никто не отменял). Ещё ему очень не хватает оглавления для удобной навигации между вопросами, но у хабраредактора нет возможности генерировать TOC (если будут запросы об этом в комментариях — сделаю его руками). Об очепятках, пожалуйста, пишите в личку.

Читать дальше →
Всего голосов 40: ↑37 и ↓3+37
Комментарии16

Docker больше не нужен

Время на прочтение11 мин
Количество просмотров47K

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

Такой информации хватает в интернете.

Вместо этого, мы на конкретном примере (простое Java приложение) разберем как можно заменить Docker на Podman в конвейере CI/CD,
и какие это может принести дивиденды.

Читать далее
Всего голосов 63: ↑14 и ↓49-29
Комментарии54

Электронная цифровая подпись для чайников: с чем ее есть, и как не подавиться. Часть 1

Время на прочтение4 мин
Количество просмотров138K
Итак, все чаще в кругах, работающих с документами все чаще звучат слова «электронный документ» и, связанное с ним почти неразрывно «электронная цифровая подпись», иначе — ЭЦП.

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

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

Читать дальше →
Всего голосов 105: ↑85 и ↓20+65
Комментарии108

Хватит использовать RSA

Время на прочтение9 мин
Количество просмотров55K


Привет, %username%!

RSA — первый широко используемый алгоритм асимметричной криптографии, который до сих пор популярен в индустрии. Он относительно прост, на первый взгляд. Шифрование и подпись RSA можно посчитать на листке бумаги, чем часто занимаются студенты на лабораторных работах.
Но существует просто огромное количество нюансов, без учёта которых вашу реализацию RSA сможет взломать даже ребёнок.
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии45

Django Rest Framework. Туториал или как легко писать backend. Часть 1

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров12K

Сегодня очень многие backend разработчики стали писать именно rest api.

Почему же так? Чем не устраивает обычный django?

Читать далее
Всего голосов 9: ↑3 и ↓6-1
Комментарии12

Что для меня значит быть программистом

Время на прочтение13 мин
Количество просмотров49K

Как-то мне написали с Хабра и сказали: Саня, хочешь написать статью про программистов?

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

Но потом я начал накидывать мысли и внезапно нашёл много тем, которые могут быть интересны и самим разрабам, и людям, далёким от программирования. Так что вот вам исповедь погромиста. Уж не знаю, типичный я программист или какой-то чудак. Пишу так, как вижу, а обобщать на всех прогеров или нет - решать вам.

Чтобы получать 300кк/c, нужно всего лишь..
Всего голосов 158: ↑143 и ↓15+149
Комментарии71

Код в картинках: визуализация кода

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров9.8K

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

На связи Федорова Валерия, участница профессионального сообщества NTA.

Каждый разработчик был, или может оказаться, в ситуации, когда не понимаешь, как работает код, который был написан пару дней (недель, месяцев, лет — нужное подчеркнуть) назад. Или в ещё более сложной ситуации — нужно «отдебажить» чужой код, без возможности привлечь автора. Здесь может пригодиться один из инструментов статистического анализа кода — Control Flow Graph или CFG.

В этой публикации рассмотрю понятие CFG, а также python библиотеку Staticfg, обеспечивающую простой интерфейс для создания CFG программ на языке Python.

Больше о CFG и Staticfg
Всего голосов 2: ↑1 и ↓10
Комментарии17

Болевые точки Dart и Flutter

Время на прочтение24 мин
Количество просмотров13K

Flutter — довольно популярный фреймворк для разработки кроссплатформенных приложений. В основном это приложения под Android и iOS, но все же имеется возможность разрабатывать и под другие платформы, хотя в большинстве случаев еще не все так гладко по сравнению с основными платформами. Этот фреймворк уже сейчас имеет некоторую фан базу, которая, как и положено фан базе, генерирует статьи о том, какой Flutter клевый, крутой, интересный и производительный и т. п. В этих статьях Flutter часто сравнивается с конкурентами, и чаще всего он описан в положительном свете. Ни в коем случае не пытаюсь как‑то умалить его заслуги, но... работая с ним ежедневно, вольно или невольно начинаешь замечать неприятные и раздражающие моменты, с которыми приходится жить. Именно об этих моментах сегодня и пойдет речь.

Читать далее
Всего голосов 36: ↑29 и ↓7+24
Комментарии20

Книга «40 алгоритмов, которые должен знать каждый программист на Python»

Время на прочтение6 мин
Количество просмотров49K
image Привет, Хаброжители!

Понимание работы алгоритмов и умение применять их для решения прикладных задач – must-have для любого программиста или разработчика. Эта книга поможет вам не только развить навыки использования алгоритмов, но и разобраться в принципах их функционирования, в их логике и математике.

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

Дойдя до конца, вы превратитесь в эксперта по решению реальных вычислительных задач с применением широкого спектра разнообразных алгоритмов.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+11
Комментарии4

Пишем расширение Chrome, которое ворует вообще всё

Время на прочтение10 мин
Количество просмотров25K

Пусть Manifest v3 и ограничил возможности браузерных расширений, но я считаю, что они далеко не исчерпаны. Чтобы доказать это, создадим расширение Chrome, крадущее максимально возможное количество данных.

Мы добьёмся двух целей:

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

Примечание: на самом деле реализация этого расширения — злодейство. Вам не следует использовать в злонамеренных целях полномочия расширений, красть пользовательские данные и создавать зловредные браузерные расширения. Любые реализации, производные расширения или применение этих техник без разрешения Национальной баскетбольной ассоциации не рекомендуются.
Читать дальше →
Всего голосов 33: ↑31 и ↓2+37
Комментарии12

20 уроков, которые я вынес из 20 лет работы программистом

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров117K
Вы приступаете к чтению статьи с высокой концентрацией советов. Учиться у предшественников – хороший способ добиться успеха, но здесь мы часто забываем о важной оговорке. Практически любой совет работает только в определенном контексте, но дается обычно без каких-либо указаний на него.

«Да просто повысьте цены!» — говорит компания, которая уже двадцать лет на рынке и первые годы продавала продукт за копейки, чтобы привлечь клиентов и прийти к успеху. «Нужно всё реализовать в микросервисах», — говорит компания, которая по-быстрому сколотила монолит, набрала несколько тысяч пользователей и метнулась к микросервисам, когда начались проблемы с масштабированием.

Без понимания контекста советы теряют смысл или, хуже того, приносят вред. Если бы люди из примеров выше последовали своим собственным советам в начале пути, то, вероятно, пожалели бы этом. Этой ловушки сложно избежать. Мы представляем собой кульминацию своего опыта, но при этом смотрим на него через призму настоящего.
Читать дальше →
Всего голосов 135: ↑128 и ↓7+152
Комментарии115

Как писать конспекты на компьютере быстрее, чем от руки, при помощи VS Code

Время на прочтение5 мин
Количество просмотров50K

Привет всем!

В этой статье говорится о том, как я конспектирую на компьютере, а точнее описываются способы ускорения набора LaTeX-овского текста.

Читать далее
Всего голосов 42: ↑42 и ↓0+42
Комментарии50

Как легко понять логистическую регрессию

Время на прочтение5 мин
Количество просмотров212K
Логистическая регрессия является одним из статистических методов классификации с использованием линейного дискриминанта Фишера. Также она входит в топ часто используемых алгоритмов в науке о данных. В этой статье суть логистической регрессии описана так, что она станет понятна даже людям не очень близким к статистике.

image
Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии2

ChatGPT – хайп или реальная помощь разработчику?

Время на прочтение3 мин
Количество просмотров75K

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

Читать далее
Всего голосов 27: ↑23 и ↓4+23
Комментарии64

НАСА испытывает острый дефицит плутония-238 для источников питания КА

Время на прочтение4 мин
Количество просмотров32K
НАСА испытывает острый дефицит плутония-238 для источников питания космических аппаратов. На данное время НАСА обладает запасом в 35 кг плутония, из которых только 17 кг соответствуют необходимому качеству для создания источников питания космических аппаратов, что примерно соответствует трём «атомным батарейкам», используемым в марсоходе «Curiosity». Оставшиеся 18 кг не соответствуют необходимому уровню тепловыделения для применения в MMRTG (РИТЭГ).


Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии50

Когда о человеке можно сказать, что он стал программистом?

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

И когда я стал задавать этот вопрос джуниорам, то ожидал услышать самый распространенный ответ, однако, к моему удивлению, вышло иначе. Вместо этого я выслушал от людей, от которых не ждал оригинальных высказываний, совсем другие мысли, которые привожу ниже. По итогам этих разговоров я нанял пару человек.
Читать дальше →
Всего голосов 28: ↑21 и ↓7+21
Комментарии168

Решение одной задачи с помощью 16 языков программирования

Время на прочтение5 мин
Количество просмотров38K

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

Читать далее
Всего голосов 41: ↑35 и ↓6+35
Комментарии64

Когда умрёт мой SSD — расчёт срока жизни

Время на прочтение9 мин
Количество просмотров241K


У каждого SSD есть ресурс на количество циклов перезаписи, то есть объём записанной информации в течение всей жизни. Физика и механика SSD очень сложные, но долговечность накопителя в итоге сводится к простому правилу — чем больше на него пишешь, тем меньше он проживёт.

У одних SSD критический сбой происходит через несколько месяцев, другие работают годами. Это зависит от качества комплектующих, условий эксплуатации и везения. В общем, как у людей.
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии156
1

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирована
Активность