Как стать автором
Обновить
75
0
Сергей @lamerok

Хоккеист — на микроконтроллерах программист

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

Почему умножение матриц такое

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

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

Читать далее
Всего голосов 70: ↑62 и ↓8+75
Комментарии149

Анализ задачи с собеседования в Google: конь и телефонные кнопки

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

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

Это была первая задача, которую я использовал в своей карьере собеседующего, она же первая утекла и была запрещена к использованию. Мне она нравится потому, что обладает очень приятными свойствами:

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

Если вы студент или ищете работу в технологической сфере, то, надеюсь, после прочтения статьи вы будете лучше понимать, чего ожидать от задач на собеседованиях. Если же вы проводите собеседования, то мне бы хотелось поделиться своим мыслительным процессом и стилистическим подходом к собеседованиям.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+51
Комментарии39

VPN с Mobile IP на Raspberry Pi. WG туннель

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

Для умных дядь в статье ничего интересного, это статья про обычный туннель. Оно для самых маленьких, но отчаянно нуждающихся. Никаких wg-quick'ов тут, впрочем, не будет. :)

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

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

Паттерны многопоточности в Go

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

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

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

Читать далее
Всего голосов 24: ↑22 и ↓2+25
Комментарии11

Лучшие способы обойти блокировку Discord на данный момент

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

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

Как можем увидеть проблем у самого дискорда нет https://discordstatus.com/, приступаем к фиксу!

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

Регулярные выражения простыми словами. Часть 1

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

Разработчики делятся на два типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой, и тех, кто все еще боится и всячески их избегает. Эта статья специально для вторых, чтобы им было проще стать первыми. Она либо поможет преодолеть «регекспофобию», либо усугубит ее. В любом случае, добро пожаловать под кат.
Читать дальше →
Всего голосов 160: ↑159 и ↓1+185
Комментарии54

REDIS: такой простой и такой сложный

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

Меня зовут Андрей Комягин, я СТО компании STM Labs. Мы занимаемся разработкой очень больших распределённых высоконагруженных систем для различных отраслей и в своей работе широко используем open-source решения, в том числе СУБД Redis. Недавно я подробно рассказывал об этой системе на конференции Saint HighLoad++, а теперь с удовольствием поделюсь основной информацией с читателями Хабра. Итак, поехали.

Читать далее
Всего голосов 50: ↑49 и ↓1+60
Комментарии28

Бесплатный курс компьютерной графики для детей: 11 уроков с нуля

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

Создание компьютерной графики – востребованное направление. И справиться с ним может даже подросток. Мы хотим доказать это на примере бесплатного видеокурса Blender и компьютерной графики для школьников от 13-14 лет и старше.

Специалисты, способные создавать 2D- и 3D-изображения, модели, подобные предметы и объекты становятся все более востребованными. Они в той или иной мере вовлекаются в киноиндустрию, веб-разработку, создание игр и в другие сферы. Перспективность направления очевидна: речь не столько о вероятном профессиональном будущем, сколько о связи с графическим дизайном – еще одной распространенной областью, вытолкнуть человека из которой пока не может ни одна нейросеть.

Мы хотим предложить нашим читателям подборку бесплатных видеоуроков. Они помогут освоить основы и вникнуть в азы направления и использования программы Blender. Для начала предлагаем окунуться в теорию и разобраться, чем интересны инструменты среды Blender и почему ей отдают предпочтение современные специалисты, занятые созданием 2Д- и 3Д-графики.

Читать далее
Всего голосов 19: ↑15 и ↓4+17
Комментарии2

FP32, FP16, BF16 и FP8 — разбираемся в основных типах чисел с плавающей запятой

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

Привет, Хабр! Сегодня давайте поговорим о том, как современные вычисления на GPU стали более гибкими и эффективными благодаря различным форматам чисел с плавающей запятой (FP64, FP32, FP16, BFLOAT16 и FP8). Эти форматы не просто числа — за каждым из них стоит конкретная область применения. В разных ситуациях мы сталкиваемся с задачами, где важны либо скорость, либо точность, и правильно выбранный тип floating point помогает оптимизировать ресурсы. Давайте разберём всё это на примерах и поймём, в каких задачах каждый из этих форматов будет наиболее полезен.

Читать далее
Всего голосов 14: ↑11 и ↓3+10
Комментарии18

Как написать ТЗ на простую программу (калькулятор)

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

Рассмотрим, как может выглядеть работа по созданию ТЗ на несложную программу.

Возьмём калькулятор, который будет выполнять базовые арифметические операции (+, -, *, /).

Работу можно построить в 2 этапа:

Читать далее
Всего голосов 25: ↑20 и ↓5+20
Комментарии113

Создаем свою простую (C++) библиотеку с документацией, CMake и блекджеком

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

В мире программирования создание собственных библиотек — это не просто возможность пополнения своего портфолио или способ структурировать код, а настоящий акт творческого самовыражения (и иногда велосипедостроения). Каждый разработчик иногда использовал в нескольких своих проектах однообразный код, который приходилось каждый раз перемещать. Да и хотя бы как упаковать свои идеи и знания в удобный и доступный формат, которым можно будет поделиться с сообществом.

Если вы ловили себя на мысли: ‭«А почему мне бы не создать свою полноценную библиотеку?‭», то я рекомендую прочитать вам мою статью.

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

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

Читать далее
Всего голосов 49: ↑48 и ↓1+59
Комментарии68

Электросмачивание как интересный эффект для применения в самоделках и не только

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров9.4K
Картинка — youtube-канал GaudiLabs, University of Cincinnati, Etulipa, Image Sensors World

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

Сфера применения этого эффекта весьма широка и позволяет использовать его как профессиональных целей, так и для разнообразных самоделок.
Читать дальше →
Всего голосов 59: ↑58 и ↓1+84
Комментарии10

Реализация подписчиков в c++ — пляшем от печки, но уже совсем далеко

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

В прошлой статье мы написали вполне себе разумный оповещатель (notifier) для рассылки уведомлений подписчикам (subscribers). Он достаточно удобен, там нет ничего лишнего - всего 130 строчек кода. Моменты, важные для клиентов этого кода, продуманы. Как например, многопоточный вызов доставки оповещений с минимальными взаимными блокировками и возможность отписывать прямо из обработчика подписчика.

На этом бы и остановиться, но мы шагнём дальше, добавив немного шаблонной магии и сделав код "академичнее".

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

Python: как переменные работают на самом деле? Погружаемся в байткод и C

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров15K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

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

Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).

Читать далее
Всего голосов 44: ↑43 и ↓1+58
Комментарии6

Каждый имеет право быть похожим на себя. Расстройство аутистического спектра и карьера в IT: личный опыт

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

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

Долгое время это ставило меня в тупик. Я не понимал, в чём дело, и считал себя глубоким интровертом, замкнутым мрачным типом, совсем не понимающим людей. Всё гадал, что же со мной не так...

Читать далее
Всего голосов 144: ↑137 и ↓7+165
Комментарии132

Как починить GoodbyeDPI, если он перестал работать 22.09.24

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

Решение нашел в комментариях оригинального гитхаба от ValdikSS (работает только для самой последней версии 0.2.3rc3-2).

Читать далее
Всего голосов 165: ↑137 и ↓28+126
Комментарии227

Реализация подписчиков в c++ — пляшем от печки

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

За время долгой работы в IT непосредственно с кодом, подмечаю одну особенность, что писать приходится всё меньше (в последнее время практически не писать), а ревьювить всё больше. И всё чаще видны нагромождения тонн кода, которые по факту не нужны, не вносят никакой дополнительной пользы. Но создают раз за разом головную боль для следующего читающего этот код программиста, который вынужден что-то поправить или дописать в этом коде. По итогу, программист махает рукой на эту чудную "архитектуру"... и пишет ещё один wrapper / adapter над ним. И, таким образом, передаёт пламенный привет последующим коллегам в будущее ;).

Попробуем взять и переписать с минимумом кода одну из очень часто встречающихся задач - рассылку уведомлений объектам в коде при возникновении какого-то события. На первый взгляд кажется, что в c++ уже есть все инструменты, чтобы написать этот код в несколько строк: функтор std::function<...> - чтобы сохранить отложенный вызов, контейнер std::vector<std::function...> - чтобы сохранить цепочку отложенных вызовов. По которым нужно просто пробежаться при возникновении события и вызвать сохранённые функторы...

Читать далее
Всего голосов 15: ↑14 и ↓1+20
Комментарии27

Доктора Кнут, Моррис и Пратт, или Как я перестал бояться и полюбил префикс-функцию

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

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

Я прошел через череду осознаний и озарений, прежде чем достичь просветления, и теперь предлагаю вам пройти этот путь вместе со мной.

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

Дорогая, я уменьшил {fmt}: уменьшил размер до 14kB и избавился от рантайма C++

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

Библиотека форматирования {fmt} известна своим небольшим влиянием на размер бинарников. Чаще всего её код в несколько раз меньше по сравнению с такими библиотеками, как IOStreams, Boost Format или, что иронично, tinyformat.

Давайте разберем, как можно уменьшить размер бинарников еще больше!

Читать далее
Всего голосов 40: ↑38 и ↓2+47
Комментарии26

Что такое TDD. Создаем валидатор паролей на регулярках

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

Приветствую всех, в данной статье я кратко расскажу и покажу, что такое TDD на очень простом примере.

Итак, представим себя разработчиком в вымышленной ИТ компании, перед которым стоит задача: написать валидатор пользовательских паролей, при этом стараясь следовать принципам TDD.

Начнем разработку нашей программы с ознакомления с требованиями службы безопасности:

Читать далее
Всего голосов 7: ↑3 и ↓4+3
Комментарии8
1
23 ...

Информация

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