Как стать автором
Обновить
387
206.6
Дмитрий Брайт @Bright_Translate

Переводчик

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

Создаём собственную систему поиска фильмов на основе проекта Андрея Карпати

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

В апреле 2023 года Андрей Карпати, один из основателей OpenAI и бывший директор по ИИ в Tesla, поделился своим занятным проектом выходного дня – системой поиска и рекомендации кино.

Её пользовательский интерфейс откровенно прост и предлагает две основных функции: блок поиска, в котором можно искать кино по названию, и вывод списка из 40 похожих фильмов при клике по интересующему.

Несмотря на популярность этого проекта, Карпати, к сожалению, пока не поделился с публикой его исходным кодом.

И вот почему
Источник

Chaturvedi: «Может, откроете исходный код проекта?»

Andrej Karpathy: «Даже не знаю. Он такой страшный, что мне стыдно».


Так что запасайтесь попкорном и будем воссоздавать его сами на основе OpenAI и векторной базы данных!
Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии5

Четыре способа оптимизации ПО

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

Преждевременная оптимизация может оказаться корнем всех зол, а запоздалая — корнем безысходности. Каким бы быстрым ни становилось аппаратное обеспечение, мы находим способы писать медленные программы. И зачастую проявляется это не сразу. Пользователи могут годами не обращать внимания на проблему в производительности ПО, пока она не становится очевидной, что порой происходит в течение одного дня.
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии12

Моя любимая задача для собеседований по программированию

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

В сети есть уйма постов и видео, где разбираются ответы на вопросы LeetCode. Но обычно рассмотрение в них происходит с позиции соискателя, а не работодателя. В этой же статье я приведу разбор собственной задачи по программированию, которую использовал при приёме людей на работу в Amazon, Google и Microsoft.
Читать дальше →
Всего голосов 131: ↑126 и ↓5+121
Комментарии170

Как я помог сыну собрать релейный калькулятор

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

Недавно мой старший сын решил собрать однобитный компьютер на дискретных транзисторах. Идея создания однобитного устройства может показаться дурацкой, но в данном случае речь идёт не о машине, имеющей всего две инструкции или ячейки памяти, а о размере «слова» арифметически-логического устройства (АЛУ). Малая ширина в битах позволяет получить более простую схему, но для пошаговой обработки требует использования операндов шире аппаратного лимита. Однобитные АЛУ можно назвать экстремальным решением, но они вполне имеют коммерческое применение, включая микроконтроллер MC14500B, выпущенный компанией Motorola в конце 70х.

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

Я изначально понимал, что мы не будем собирать схему исключительно на реле. Такая задача затянула бы реализацию проекта на месяцы. К тому же при цене прозрачных реле в $6 за единицу его общая стоимость оказалась бы слишком высока. И всё же я выяснил, что можно заставить реле выполнять реальные математические действия.
Читать дальше →
Всего голосов 86: ↑84 и ↓2+82
Комментарии44

Чем хорош Rust для продакшена?

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

За последние годы интерес к Rust значительно вырос. Отчасти этому способствовало то, что ведущие участники технологической индустрии, такие как Microsoft, Google и Amazon рассказали о своём опыте использования этого языка в реализации критических систем.

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

Будучи консультантом по Rust, я имел возможность работать со многими компаниями: как крупными, так и малыми. В итоге я понял, что организации в первую очередь ценят продуктивность, стабильность и удобство при долгосрочной поддержке, а не производительность.
Читать дальше →
Всего голосов 79: ↑73 и ↓6+67
Комментарии23

Утверждение, что «199 из 200 соискателей не умеют писать код», некорректно

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

Насколько правомерно утверждение, что 199 из 200 соискателей вакансий в сфере программирования по факту программировать не умеют? Откуда взялось это утверждение, и какие основания под собой имеет?
Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии96

Освобождение робота-пылесоса, который стал моим другом

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров26K
Немного доп. оборудования, несколько команд Linux и вуаля! Пылесос свободен! Фото Cath Virginia / The Verge

В целом роботы-пылесосы мне нравятся. Для меня это эдакий небольшой друг, который чистит за меня пол. Просто фантастика. Но, к сожалению, есть одна проблема — я им не доверяю. Эти девайсы постоянно отправляют отчёты на серверы, что может представлять угрозу для безопасности и тайны личной жизни. Мне такое не по духу, и я подумал, что кто-то уже должен был хакнуть эту схему. После недолгих поисков в интернете я понял, что прав. Мне попался проект Valetudo, нацеленный на освобождение роботов-пылесосов от связи с облаком.
Читать дальше →
Всего голосов 115: ↑114 и ↓1+113
Комментарии44

Молодые математики открывают новую главу в изучении простых чисел

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров40K
Анимация отсева по Эратосфену, где показаны кратные величины каждого простого числа, простирающиеся вдоль числовой оси.

Более 2000 лет назад греческий математик Эратосфен разработал метод поиска простых чисел, получивший название решето Эратосфена, который остаётся актуальным по сей день. Его идея заключалась в том, чтобы определять простые числа вплоть до заданной точки путём постепенного «отсеивания» тех, которые таковыми не являются. Начинается отсев с вычёркивания всех чисел, кратных 2 (кроме самой 2), затем кратных 3 (кроме 3). Следующее число, 4, уже оказывается вычеркнуто, значит, очередным шагом идёт вычёркивание всех чисел, кратных 5 и так далее. Все оставшиеся в итоге числа считаются простыми, то есть такими, которые делятся только на 1 и на самих себя.

Эратосфен работал со всем множеством простых чисел, но вы можете использовать вариации его метода для поиска таких, которые будут обладать особыми свойствами. Хотите найти «близнецов», которые отличаются всего на 2 единицы, например, 11 и 13 или 599 и 601? Для этого есть свой отсев. Интересуют простые числа, которые на 1 больше полного квадрата, например, 17 или 257? И для этого тоже есть свой отсев.
Читать дальше →
Всего голосов 70: ↑66 и ↓4+62
Комментарии39

Почему я не буду использовать Next.js

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

Представьте, что вы планируете начать новый проект или использовать в существующем более современный подход. А, может, вас просто не устраивает используемый фреймворк, и вы подумываете об альтернативах. В любом случае вам нужно что-то выбрать.

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

С момента выхода Remix в 2020 году я использовал именно этот фреймворк. Мне он настолько понравился, что на следующий год я устроился в эту компанию, чтобы помочь с развитием сообщества, а через 10 месяцев ушёл работать в EpicWeb.dev, где теперь обучаю людей всему необходимому для создания фулстек-приложений. И Remix играет в этом значительную роль, являясь веб-фреймворком, который аналогично Next.js нацелен на решение задач, связанных с созданием веб-приложений.

Поскольку Next.js аналогичен Remix, многие спрашивают, почему для преподавания фулстек-разработки в EpicWeb.dev я предпочёл именно Remix. И текущая статья станет ответом на этот их вопрос.
Читать дальше →
Всего голосов 50: ↑44 и ↓6+38
Комментарии18

О сложности и монолитах

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров6.8K
Изображение сгенерировано с помощью DALL·E. Запрос: a complex monolith in a server room, with the faces of IT consultants with suits engraved in it with twisted faces, mathematical formulations about complexity floating around, and with a mysterious malevolent godlike presence in the background (комплексный монолит в серверной с искажёнными лицами IT-консультантов. Вокруг витают сложные математические формулы, а на фоне присутствует мистическое злобное богоподобное существо).

Статья посвящена анализу и сравнению двух моделей построения систем — монолитной и с разделением на микросервисы. В ней мы с разных сторон оценим оба этих подхода и связанную с ними сложность, убедившись в превосходстве последнего. Представим микросервисы и прочие архитектуры в реалистичном свете, не воскрешая то, что должно оставаться мёртвым.
Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии75

Архитектура MMO: источник истины, потоки данных, узкие места I/O и их устранение

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

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

Несмотря на то что это приложение идеально вписывается в концепцию «распределённых архитектур», конкретные детали (как большие, так и малые) превращают, казалось бы, простой для любого грамотного инженера процесс проектирования в невероятную головную боль.
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии3

Как в 180 000 раз ускорить анализ данных с помощью Rust

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

В этой статье я опишу одно из последних своих дерзновений в сфере оптимизации производительности с помощью Rust. Надеюсь, что в ней вы откроете для себя какие-то новые приёмы для написания быстрого кода на Rust.
Читать дальше →
Всего голосов 80: ↑74 и ↓6+68
Комментарии12

Пишем графический ASCII-калькулятор с помощью стандартной библиотеки Си

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

Программа calculator.c родилась как школьный проект в рамках Student Innovation Scholarship. Сперва я решил написать простой инструмент для построения графиков функций с помощью символов ASCII, но после завершения первого прототипа понял, что задача намного сложнее, чем предполагалось. Вернувшись к проекту год спустя, я увидел, что в нём есть много неочевидных нюансов. Поэтому предлагаю разобрать весь процесс разработки моего графического калькулятора с нуля.


Читать дальше →
Всего голосов 77: ↑76 и ↓1+75
Комментарии25

Самые крупные DDoS-атаки нулевого дня на HTTP/2

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

В августе и сентябре злоумышленники развернули крупнейшие распределённые DDoS-атаки в истории интернета, эксплуатирующие известную уязвимость в ключевом техническом протоколе. В отличие от других серьёзных атак нулевого дня последних лет – например, Heartbleed или log4j – которые вызвали хаос повсеместным наплывом эксплойтов, более недавняя их форма, получившая название HTTP/2 Rapid Reset, привлекла пристальное внимание лишь нескольких инженеров.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии1

Как эффективно добавлять документацию при разработке продукта?

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

Как технический писатель я встречала различные подходы команд и целых компаний к добавлению документации в процесс разработки продукта. В одних ситуациях они используются намеренно, а в других по воле случая, и ниже мы разберём достоинства и недостатки нескольких таких подходов, которые позволят делать выбор в пользу того или другого более обдуманно.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии6

Технологии давно почившей DEC продолжают служить миру вычислений

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров10K
DEC VAX 8350 со снятой крышкой

Эта корпорация, ставшая одним из первопроходцев в мире IT, исчезла в конце 90-х.

Несмотря на то, что в сфере компьютерных технологий осталось не так много стоявших у её истоков игроков, мы по сей день продолжаем пользоваться плодами их разработок. Bell Labs создали транзистор, а Fairchild Semiconductor изобрели интегральную схему, но ни одной из этих компаний сегодня уже не существует. То же касается Digital Equipment Corporation (DEC).

И хотя её больше не существует, есть вероятность, что вы читаете эту статью с карманного устройства, несущего в себе наследие технологии, изобретённой именно в DEC.
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии31

Тестируем PCIe в новом Raspberry Pi 5

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

Если вы ещё не в курсе, то недавно было объявлено о выходе Raspberry Pi 5.

Я специально снял ролик, где разобрал всю аппаратную часть – что изменилось, что появилось и чего не стало. В этой статье я представлю вам спецификацию новой модели, расскажу о некоторых особенностях и о том, что выяснил в ходе тестирования её работы с десятком различных устройств PCIe.
Читать дальше →
Всего голосов 93: ↑92 и ↓1+91
Комментарии30

10 рекомендаций по VS Code для повышения продуктивности

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров45K
Visual Studio Code остаётся наиболее предпочтительной IDE среди разработчиков. Причём этот редактор всё чаще используют именно начинающие программисты. Источник: survey.stackoverflow.co/2023

А вы знали, что 73% разработчиков по всему миру используют один редактор кода? Так и есть. Результаты проведённого в 2023 году опроса Stack Overflow показали, что VS Code является самой популярной средой разработки.

И мы все знаем почему — он очень крут!

Но в полной ли мере мы задействуем его потенциал? Текущая статья будет посвящена знакомству с некоторыми интересными возможностями VS Code, способными повысить продуктивность работы. К ним, помимо прочих, относятся локальный контроль исходного кода, анимация курсора и быстрое удаление строк. Использование этих возможностей поможет ускорить реализацию проектов разработки.
Читать дальше →
Всего голосов 103: ↑95 и ↓8+87
Комментарии83

Компиляция моделей МО в С

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

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

Недавно у меня состоялся приятный разговор с моим другом Крисом. Он познакомил меня с основами машинного обучения, когда я разбирал написанный Андреем Карпаты micrograd.

Для тех, кто не знает, micrograd – это небольшая реализация нейронной сети, написанная на чистом Python без библиотек, в которой вычислительными единицами выступают не векторы и матрицы, а скалярные величины.
Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии0

Большинство оконных приложений — это недоработанные real-time приложения

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

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

Я программирую уже давно. Под давно я имею в виду не один десяток лет работы. Надеюсь, это достаточно долго. За это время мой опыт в основном заключался в программировании для современных платформ вроде Linux, Windows, macOS для десктопных и серверных архитектур процессоров. Недавно я участвовал в создании MIDI-движка для систем значительно меньшей мощности.

Вскоре после начала я столкнулся с проблемой, которая требовала обеспечить невозможность переполнения очереди событий ввода. По сути, эта задача сводится к тому, чтобы каждый обработчик событий не выполнялся дольше некой максимальной продолжительности времени. Затем меня осенило! Я уже слышал это раньше — «максимальная продолжительность времени», так как занимаюсь разработкой систем, работающих в реальном времени.
Читать дальше →
Всего голосов 59: ↑51 и ↓8+43
Комментарии26

Информация

В рейтинге
11-й
Откуда
Россия
Работает в
Дата рождения
Зарегистрирован
Активность