Pull to refresh
48
0
Андрей Кравчук @prefrontalCortex

Software Engineer

Send message

Причины «имитации работы» в Big Tech

Level of difficultyEasy
Reading time11 min
Views19K

Когда Грэма приняли в Amazon, ему казалось, что это работа его мечты. Его привлекли как учёного-исследователя в помощь для разработки функций голосового помощника Alexa. Грэм (имя изменено) предполагал, что вскоре начнёт использовать свой опыт машинного обучения для создания новых потрясающих функций, делающих Alexa более индивидуальной для каждого пользователя. Но спустя четыре месяца после найма стало очевидно: Amazon понятия не имеет, что с ним делать.

Следующие два года он провёл в броуновском движении — менял команды, наблюдал за тем, как руководителей проектов повышали, несмотря на то, что, по его мнению, они не создавали ничего существенного, и в целом занимался бегом в своём колесе. Грэму платили больше $300 тысяч в год, но результатов его работы практически не существовало. Оказавшись в тупике, он постепенно потерял интерес к своей работе и попал под проверку рабочих показателей Amazon.

Столкнувшись с угрозой увольнения, Грэг, наконец, пришёл в проект по применению машинного обучения для улучшения рекомендаций музыки Amazon, который, по его мнению стал «первой по-настоящему интересной задачей, над которой мне довелось работать». Он был счастлив ощущать себя ценным членом команды, но его менеджер сообщил ему нечто поразительное: готовый проект, над которым Грэм работал больше месяца, никогда не будет выпущен. Ему сказали, что это было просто занятие, чтобы соответствовать условиям его плана контроля производительности и продления срока его найма. Вскоре после этого Грэм уволился из Amazon.
Читать дальше →
Total votes 49: ↑46 and ↓3+60
Comments48

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views199K

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

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее
Total votes 156: ↑149 and ↓7+177
Comments178

История T

Level of difficultyMedium
Reading time25 min
Views4.2K

Олин Шиверс


T был одной из лучших реализаций языка программирования Lisp и установил стандарт лаконичного дизайна, который был превзойдён лишь немногими более новыми диалектами. В этой статье Олин Шиверс вспоминает историю T.

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

Lisp для микроконтроллеров

Reading time7 min
Views6.9K


Lisp для плат Arduino, Adafruit M0/M4, Micro:bit, ESP8266/32, RISC-V и Teensy 4.x.

Новость!


ARM версия 3.6b теперь поддерживает save-image (сохранение образа) на всех платах ATSAMD21 

В последнем релизе ARM uLisp, версия 3.6b, можно сохранять образ всего вашего рабочего пространства Lisp во флэш-память плат ATSAMD21, на которых не предоставляется отдельный чип DataFlash.

Таким образом, поддержка save-image добавляется к Adafruit Neo Trinkey, Adafruit Gemma M0, Adafruit Feather M0, Arduino Zero, Arduino MKRZero и Seeedstudio Xiao M0.

uLisp — это версия языка программирования Lisp, специально спроектированная для работы на микроконтроллерах с ограниченным объемом ОЗУ, от Arduino Uno на основе ATmega328 до Teensy 4.0/4.1. Независимо от платформы, можно использовать ровно одну и ту же программу на uLisp.

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

Кроме того, язык Lisp идеально подходит для изучения фундаментальных концепций программирования. В нем предусмотрена работа со строками, обработка списков и сборка мусора, а также этот язык отлично подходит для выражения сложных идей – например, научить робота выбираться из лабиринта или найти кратчайший путь на карте. uLisp не только поддерживает базовый набор функций Lisp, но и содержит расширения для Arduino, поэтому данный язык идеально подходит для управления Arduino.
Читать дальше →
Total votes 29: ↑27 and ↓2+35
Comments0

Прогулы занятий: как с этим бороться, если занятия — бесплатные?

Level of difficultyEasy
Reading time8 min
Views11K

Всем привет!

Кто работает в образовании - сталкивались ли вы с тем, что дети прогуливают занятия? А с тем, что этому не только потворствуют, но и потакают родители учеников?.. Тогда, уверен, вам будет интересно.

Так как публикуюсь я редко, думаю, имеет смысл представиться: зовут меня Владимир Мозговой, я являюсь основателем и руководителем частного кружка робототехники RoboGrade в городе Новочеркасске. С 2020 года я пробовал организовать в своём кружке бесплатные занятия. Удалось это не сразу. О непредвиденных сложностях, возникших на пути к реализации задуманного, а также о найденных решениях - читайте ниже.

Читать БЕСПЛАТНО)
Total votes 86: ↑84 and ↓2+101
Comments127

60 антипаттернов для С++ программиста, часть 3 (совет 11 — 15)

Level of difficultyEasy
Reading time9 min
Views3K

1053_60_cpp_antipatterns_ru/image2.png


Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в шутку, и серьёзно. Как бы глупо ни смотрелся вредный совет, он не выдуман, а подсмотрен в реальном мире программирования.

Читать дальше →
Total votes 9: ↑8 and ↓1+9
Comments0

Уделываем классические компьютеры при помощи Borealis

Level of difficultyMedium
Reading time12 min
Views7.8K
image

Эта история повествует о первом в мире общедоступном квантовом компьютере, развёрнутом в облаке.

Компания Xanadu весной 2022 года объявила о запуске Borealis, новейшего квантового компьютера, развёрнутого в облаке и предоставленного в общий доступ. В этом компьютере 216 кубитов в сжатом состоянии – то есть, почти в 20 раз больше, чем в X12, системе предыдущего поколения, также действовавшей в облаке. Borealis – это крупнейший в истории фотонный квантовый компьютер, а также первая в своём роде машина, предоставленная в публичное использование.
Читать дальше →
Total votes 29: ↑27 and ↓2+35
Comments0

Итоги двадцати лет работы — технический долг и неподдерживаемый код

Level of difficultyEasy
Reading time8 min
Views33K

Технический долг — один из самых популярных сегодня терминов. Люди говорят: «Мы быстро развиваем свой MVP, минимизируя технический долг!» Они говорят о техническом долге, чтобы звучать круто или выделиться.

А я просто смеюсь, ведь всё рано или поздно превращается в технический долг.

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

И если вы не верите, что вся ваша карьера — это технический долг, то, возможно, поймёте это после прочтения статьи. Я расскажу о том, что изменилось за мою двадцатилетнюю карьеру.
Читать дальше →
Total votes 88: ↑76 and ↓12+92
Comments148

Помощь на Хабре: content buddy for everybody

Reading time4 min
Views2K

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

Однако Хабр как UGC-проект подвержен рискам, связанным с текстами: в наше время автором может оказаться не просто некомпетентный человек, но и нейросеть в руках этого самого человека. При 65-75 статьях в сутки и огромной Песочнице шансов на полную премодерацию не остаётся — это убьёт саму идею Хабра. В общем, идея кураторства витает в воздухе.

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

D&D как инструмент тимлида: решаем проблемы команды с помощью разговорных ролевых игр

Level of difficultyEasy
Reading time37 min
Views25K

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

Команда разработки и вообще любая группа людей — это сложный клубок из межличностных отношений и персональных компетенций. Я руковожу командами разработки и эксплуатации уже 8 лет, и за это время встречался с разными командными проблемами. Хочу предложить вам свою методологию их решения при помощи разговорных ролевых игр (РРИ).

Под катом вас ждет:

История о том, как я сам пришёл к тому, чтобы проводить РРИ для коллег.

Краткий рассказ о том, что из себя представляют такие игры.

Примеры решения реальных командных задач.

Полная методология подготовки и проведения игры. Полезно будет вам и вашему мастеру.

Вперёд к приключениям
Total votes 99: ↑96 and ↓3+107
Comments33

userver — что мы узнали за полгода в open-source

Level of difficultyEasy
Reading time7 min
Views20K
image
Прошло больше полугода с момента выхода фреймворка для C++ ? userver в open-source. За это время мы многое узнали, на многом настрадались, а главное — получили много приятных сюрпризов.

И мы решили об этом написать. Рассказ будет полезен тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами. Остальным будет интересно почитать про чужое набивание шишек и что вообще open-source даёт проекту.
Читать дальше →
Total votes 55: ↑54 and ↓1+64
Comments29

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

Level of difficultyMedium
Reading time16 min
Views6.5K

Преимущества и навыки, полученные при использовании Common Lisp в разработке игр



Разработка игр является увлекательной задачей. Игры требуют быстрого цикла разработки, высокой интерактивности и задают ограничения мягкого реального времени. Хотя в настоящее время небольшие игры разрабатываются на таких динамических языках, как Python или Lua, традиционно игровые движки пишутся на статических языках вроде C++ и C с каким-либо скриптовым языком поверх для обработки геймплейных механик. Common Lisp предоставляет среду разработки, одновременно являющуюся динамичной и достаточно производительной, что позволяет построить с её помощью полноразмерную систему разработки игр, сильно способствующую быстрым итерациям разработки и модульному дизайну.

Читать дальше →
Total votes 13: ↑11 and ↓2+12
Comments6

Зачем рассказывать про контейнеризацию в 2023 году

Level of difficultyMedium
Reading time13 min
Views23K
image
Техножрец DevOps бережно описывает документацию по проекту

Опытные специалисты с характерным оттенком глаз могут справедливо возмутиться, что это всё уже давным-давно разжёвано и вообще RTFM. И будут отчасти правы. Тем не менее приходят новые специалисты, которые не застали бесплатную рассылку дисков с Ubuntu и вдумчивую компиляцию ОС с нуля.

Каждая новая технология поначалу держится на энтузиастах, которые её полностью понимают. Например, первые пользователи радио знали почти всё про радиосвязь, могли на коленке собрать детекторный приёмник и ловить радио «Маяк» на металлическую вешалку и моток проводов. Первые пользователи GNU/Linux знали всё про ядро и ключевые принципы работы. По крайней мере, вариант «поправил и скомпилировал драйвера для модема, чтобы настроить сеть» был не самым редким. Текущие пользователи обычно не сталкивались с основами, так как начали щупать технологию уже после снижения порога входа.

Те же процессы идут не только в среде потребителей технологий, но и среди инженеров. С одной стороны, узкая специализация совершенно нормальна, с другой — мы рискуем получить аналог культа Галактического Духа на Анакреоне из цикла романов «Основание» Азимова. Техножрецы выполняют сложные ритуалы, ядерные реакторы пайплайны работают. Ровно до тех пор, пока всё не сломается к чертям на низком уровне, а чинить будет некому.

Так происходит и с контейнеризацией. Я всё чаще встречаю на собеседованиях devops-инженеров, которые знают, как пользоваться Docker и Podman, пишут Dockerfile, но теряются, когда спрашиваешь про namespaces, и начинают плавать при вопросе: «А зачем, чем RPM хуже?» Все собирают контейнеры, и я собираю. Таков Путь. Не всегда, кстати, оптимальный.
Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments13

MacOS Monterey на Linux — быстро и просто?

Level of difficultyEasy
Reading time3 min
Views47K
Что делать, если у вас возникло желание или необходимость заняться разработкой под MacOS или iOS, но под рукой нет макбука, а покупать его только чтобы открыть Xcode кажется делом сомнительным? Недавно я столкнулся с такой проблемой в одном из своих пет-проектов и решил ее достаточно просто и быстро. После выполнения нескольких достаточно примитивных шагов, мне удалось запустить MacOS Monterey как на скриншоте ниже.

image

Никакого Virtualbox, никакого Virtual Machine Manager. Из требований — только 100 Гб свободного места на диске и хотя бы 16 Гб оперативной памяти. В рунете я встречал описание похожих путей установки, вроде Docker-OSX или Sosumi. Но я бы хотел поделиться способом, который позволяет использовать актуальную версию MacOS (Sosumi — сразу минус) и не потратить уйму свободного времени на возню с конфигами и терминалом. Поехали.
Читать дальше →
Total votes 68: ↑64 and ↓4+75
Comments67

Ученые нашли упражнение, позволяющее худеть, сидя по 10 часов в день

Reading time6 min
Views350K


Недавно опять разгорелась дискуссия, как можно похудеть, работая в IT. Так вот, хороший (и научный) способ есть, и он на самом деле проще, чем можно было бы ожидать.


Конечно, если ничего не делать, то будешь только толстеть. Средний офисный сотрудник сегодня сидит больше 10 часов в день. Мы с вами, чувствую, ещё больше, особенно если на досуге играем, читаем Хабр или смотрим ютуб. Лично меня от компьютера вообще не оттащить. Хотя читал полно исследований, говорящих о больших проблемах со здоровьем, возникающих из-за малоподвижного образа жизни.


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


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


Но похоже, есть способ ускорить обмен веществ в организме, даже сидя за ПК. И точно избежать проблем с метаболизмом и ожирением. Несколько недель назад вышла работа ученых под руководством Марка Гамильтона из Хьюстонского университета. Они разработали технику, позволяющую задействовать неожиданное свойство икроножных мышц, и делать для своего организма полноценную тренировку, не вставая со стула. Оказывается, похудеть, работая в IT, — это не так уж и сложно. Испытываю на себе, полёт нормальный. А какие у вас ноги будут прокачанные!

Читать дальше →
Total votes 149: ↑135 and ↓14+151
Comments296

Ностальгические игры: Diablo II

Level of difficultyEasy
Reading time10 min
Views13K


Diablo известна каждому, кто хоть немного знаком с миром видеоигр. В нулевые эта игра успела побывать на компьютере почти любого геймера. А в игровых клубах среди компов с запущенными Warcraft 3 и Counter Strike всегда находился тот, на котором играли в Diablo. Обычно он располагался где-то в уголке, а несколько человек за спиной играющего, подсказывая, как качаться правильно, возмущались, что он всё делает не так.

Как-то раз, когда я ещё учился в школе, ко мне пришёл друг и установил Diablo II, ставшую одной из моих самых любимых игр на всю последующую жизнь! Надеюсь, я стану для вас таким же другом, если вы ещё не знакомы с данной частью столь известной серии. Хотя, учитывая культовый статус игры, сомневаюсь, что кто-то не играл в неё. Поэтому буду рад, если смогу побудить вас вернуться в столь чарующий мир и, как в старые добрые времена, сразить Баала и Диабло!
Читать дальше →
Total votes 35: ↑33 and ↓2+44
Comments37

Как реализовать end-to-end-тестирование telegram-бота

Level of difficultyMedium
Reading time11 min
Views22K

Каждый, кто когда-либо писал telegram-ботов, задавался вопросом: «Как их тестировать?» Сложно найти однозначный ответ. Например, при написании тестов для веб-приложений и API можно воспользоваться тестовым клиентом DRF или FastAPI: просто пишешь запрос и делаешь assert на полученный ответ. Мне захотелось получить подобный функционал и для тестирования telegram-бота.

Привет, Хабр. Я Михаил Выборный, python-разработчик, backend-developer в облачном провайдере beeline cloud. В этой статье хочу поделиться опытом написания автоматизированных end-to-end-тестов без эмуляции Telegram Bot API, но с использованием тестовых аккаунтов. Мы зайдем в изолированное тестовое пространство Telegram, создадим тестового бота, подготовим фикстуру для запуска нашего приложения и напишем авторизацию для тестовых клиентов. Я буду пользоваться Python Telegram Bot, Pytest, Anyio и другими инструментами, подробности под катом.

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

Иллюзия стартапа: лучше казаться, чем быть

Level of difficultyMedium
Reading time4 min
Views6.5K

Сколько раз нужно наступить на грабли, чтобы изменить свою модель поведения? Сколько раз нужно смотреть на нулевые показатели метрики, чтобы убедиться, что продукт скорее мёртв, чем жив? Сколько раз нужно перенести папку проекта в "Завершенные проекты", чтобы начать делать иначе?

Читать далее
Total votes 13: ↑8 and ↓5+5
Comments94

«Процедурное рисование» в ComfyUI

Reading time7 min
Views49K

Кто интересуется темой рисующих нейросетей знают, что сейчас самый продвинутый и часто используемый интерфейс для Stable Diffusion (далее SD) это Automatic1111. Он позволяет использовать, вероятно, все существующие возможности SD на сегодня. Множество расширений, регулярные обновления и поддержка сообщества делают его мощным и удобным инструментом для генерации изображений. Но есть и альтернативные решения, одно из которых я сегодня рассмотрю.

Статья подойдет как тем кто уже пользуется Automatic1111, так и тем кто только планирует более глубоко погрузиться в мир "процедурного рисования".

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

Полезен ли сегодня быстрый обратный квадратный корень из Quake III?

Reading time23 min
Views72K

В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень любопытным алгоритмом:

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // зловещий хакинг чисел с плавающей запятой на уровне битов
    i  = 0x5f3759df - ( i >> 1 );               // какого чёрта?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // первая итерация
//  y  = y * ( threehalfs - ( x2 * y * y ) );   // вторая итерация, можно удалить

    return y;
}

Об этом алгоритме написано множество статей, и ему посвящена хорошая страница Википедии, где он назван fast inverse square root (быстрым обратным квадратным корнем). На самом деле, этот алгоритм упоминался на различных форумах ещё до публикации исходного кода Q3. Ryszard из Beyond3D провёл в 2004-2005 годах исследование и в конечном итоге выяснил, что первоначальным автором алгоритма был Грег Уолш из Ardent Computer, который создал его десятью годами ранее.
Читать дальше →
Total votes 148: ↑146 and ↓2+191
Comments52

Information

Rating
Does not participate
Location
Подгорица, Подгорица, Черногория
Works in
Date of birth
Registered
Activity

Specialization

Software Developer, Fullstack Developer
Senior
From 5,000 €
Lisp
Clojure
Unix
Linux
Docker