Habr.com

Ленты новостей Хабр
Все публикации подряд на Хабре
Обновлено: 26 мин. 37 сек. назад

[Перевод] Пишем «Змейку» в 12 строк кода на PyTorch

9 часов 34 мин. назад

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

Будем использовать PyTorch и NumPy. Можно было использовать даже какую-то одну из библиотек, но у PyTorch прекрасное Tensor API, а в NumPy есть хорошая функция под названием unravel_index, которую мы и будем использовать.

Читать далее

Эволюция обработки данных: от MapReduce к стриминговому движку

9 часов 56 мин. назад

Yandex Query Language (YQL) — универсальный декларативный язык запросов к системам хранения и обработки данных, разработанный в Яндексе. А ещё это один из самых нагруженных сервисов: YQL ежедневно обрабатывает около 800 петабайт данных и 600 000 SQL-запросов, и эти показатели постоянно растут. 

Изначально YQL основывался на операциях MapReduce, которые эффективны для больших данных. Но для средних объёмов данных (до 50 Гб, которые составляют около 60% запросов) этот подход оказался неоптимальным, потому что нужно было обмениваться данными между операциями через диск. Поэтому разработчики создали новый более гибкий стриминговый движок, который значительно ускоряет обработку данных за счёт выполнения всех вычислений в памяти.

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

Читать далее

Тестирование PT NGFW: ранняя версия межсетевого экрана нового поколения от Positive Technologies

9 часов 59 мин. назад

В мае 2023 года наши партнёры из Positive Technologies объявили о скором выпуске PT NGFW и показали достаточно высокие цифры производительности. Российский рынок, который испытывает явный дефицит высокоскоростных межсетевых экранов нового поколения, воспринял анонс с большим энтузиазмом и сейчас ждет выхода коммерческой версии PT NGFW. Но команда Innostage предпочитает не верить на слово, а проверять все в собственной лаборатории, поэтому мы протестировали раннюю версию PT NGFW продукта и делимся с вами отчетом этих испытаний.

Читать далее

[Перевод] Роботы наступают. И это хорошо

10 часов 50 мин. назад


В этом отрывке из новой книги «Сердце и чип: Наше светлое будущее вместе с роботами» (“The Heart and the Chip: Our Bright Future with Robots”) директор Лаборатории компьютерных наук и искусственного интеллекта при MIT (CSAIL) Даниэла Рус рассказывает о том, как роботы могут расширить возможности человека. Читать дальше →

Состояние рынка труда и зарплат в IT в I полугодии 2024 года

10 часов 56 мин. назад

Три недели назад мы провели наше второе исследование рынка труда и зарплат. В опросе приняло на 20% больше работников по сравнению с прошлым. Спасибо всем участникам! Теперь мы готовы поделиться с вами результатами.

Читать далее

Как писать требования к проекту. Шаблон документации

11 часов 41 мин. назад

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

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

Идеальная документация должна выполнять две основные функции...

Читать далее

Страх и ненависть в собеседованиях: от позорного провала до 24-кратного роста ЗП

11 часов 48 мин. назад

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

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

Пройти 15 этапов собеседований

Удобное управление тестовыми окружениями в docker-compose

20 часов 4 мин. назад

Всем привет, хочу рассказать о своей утилите dcw (Docker Compose Workspace) для удобного управления тестовыми окружениями на базе docker-compose.

Читать далее

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

вт, 04/23/2024 - 23:44

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

Когда-то люди считали Землю центром, вокруг которого вращаются и Солнце и звёзды. Коперник разрушил такое представление людей об устройстве Мира. Пришло время разрушить ещё одно неверное представление, о том, что человек это существо, способное генерировать абсолютно объективное знание о Мире с помощью своего сознания.

Читать далее

Пишем программу на Python для доступа к YandexGPT с помощью ChatGPT

вт, 04/23/2024 - 22:15

В данной программе можно будет самостоятельно составлять собственные system massage (в программе это называется «Специализация»), а это по сути своей программирование GPT модели естественны языком, так же можно будет изменять temperature (в программе это названо «Креативность») это изменяет вариативность ответов, при значении 0.0 на один и тот же вопрос будет получен всё время одинаковый ответ при 1.0 могут быть разные ответы с похожим смыслом но разные по словесному выражению, так же можно использовать две модели YandexGPT  и  YandexGPT Lite, вторая быстрее и чуть попроще но и дешевле в четыре раза. Описание программы в разделе меню «Информация».

Читать далее

Лампочки ЭРА и OSRAM из магазина Fix Price

вт, 04/23/2024 - 21:50
В «Фикс Прайсе» рядом на одной полке стоят лампы ЭРА 15 Вт за 79 рублей и OSRAM 10,5 Вт за 99 рублей. Наверняка большинство покупателей выбирает «более мощную и дешёвую», но наверное вы уже догадываетесь о подвохе. Я купил обе лампочки и измерил их параметры.


Читать дальше →

Поиск опечаток в проекте

вт, 04/23/2024 - 21:18

Ничего не нашёл на Хабре про CSpell, попробую исправить ситуацию.

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

Таким инструментом оказался CSpell. Если пишите код в Visual Studio Code, то вы его уже используете. CSpell позиционирует себя как спеллер для кода, но он может также спеллерить и обычные тексты. Давайте подключим его в проект.

Читать далее

Async iterator timeout в Python

вт, 04/23/2024 - 20:45

Представим следующую задачу: у нас есть микросервисная архитектура, в которой сервисы взаимодействуют через брокер сообщений, или через gRPC. Так или иначе, оба варианта предоставляют полнодуплексный канал связи, через который один сервис может отправлять множество сообщений другому сервису, так и в обратную сторону - сервис, исполняющий запрос, может отправлять несколько ответов (например в случае потоковой обработки данных). Такой вариант реализации ответа можно в некотором смысле называть стримингом.

В числе прочих задач, решаемых при реализации возможности стриминга, существует задача определения ситуации, в которой сервис, исполняющий запрос, упал с ошибкой, и больше не может продолжать стриминг ответов. В таком случае мы даже не можем понять что именно произошло - обработка и отдача очередной порции ответа будет, но задерживается, либо же передача прервалась, и нужно сообщить об ошибке “наверх”. В протоколе HTTP, например, для детерминирования корректной вычитки ответа может быть использован заголовок Content-Length. Достаточно посчитать количество вычитанных из сокета байт тела запроса\ответа, и сравнить со значением заголовка. Сходится - мы все получили, не сошлось и сокет закрыт - ошибка. Однако вариант решения с заранее заданным количеством данных в первой порции ответов не является универсальным, поскольку не во всех случаях можно точно понимать, сколько именно данных будет передано. Да и архитектура с использованием брокеров сообщений предполагает постоянное поддержание соединения, поэтому мы можем только знать, что из такой-то очереди поступают ответы на ранее сделанный запрос, и в каком-то из ответов будет метка окончания, как маркер того, что запрос обработан и ответ выслан и получен полностью, а если такого маркера еще не получено - остается продолжать ждать. Но ждать можно бесконечно.

Читать далее

Почему безопасник должен расти из программиста

вт, 04/23/2024 - 20:21

По каждому из направлений в ИТ есть свои так называемые «приколы» и особенности в части поиска и обучения сотрудников, взаимодействия с софтом, заказчиками и так далее. В моей области, то есть в области информационной безопасности, все еще обсуждают такой вопрос: «Должен ли безопасник расти из программиста?». Имея 25+ лет в области ИТ и ИБ ответственно заявляю — должен. Для меня это не вопрос, но многие со мной не согласятся. Сегодня раскрою свою позицию и объясню, почему безопасникам жизненно необходимо быть программистами.

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

Читать далее

Игры, которые лечат

вт, 04/23/2024 - 20:05

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

Читать далее

Plymouth: делаем загрузку Linux веселее

вт, 04/23/2024 - 19:33

Или ещё один способ показать своё превосходство над "average Windows fan".

Дружим современный мем со старым и почти забытым инструментом.

Читать далее

Размер имеет значение. Как Ozon автоматизировал измерение товаров на складах

вт, 04/23/2024 - 19:11

Сотрудники каждого склада, которые хотят выстроить логистические процессы оптимальным образом, должны знать фактические габариты и вес товаров, которые хранятся на его площадях. Совокупность габаритов и веса товара в Ozon называют объёмно-весовыми характеристиками (ОВХ). 

Мы разработали, собрали и интегрировали в операционные процессы складов Ozon устройства для измерения габаритов и веса товаров. Об этом мы писали ранее. Но к идее создания своего решения пришли не сразу.

Читать далее

Книга: «Чистый дизайн. Практика эмпирического проектирования ПО»

вт, 04/23/2024 - 18:41
Привет, Хаброжители!

Грязный код создает проблемы. Чтобы код было проще читать, проходится проводить его очистку, разбивая на части, с которыми удобно работать. Кент Бек, создатель методологии экстремального программирования и первопроходец в области паттернов проектирования, рассказывает нам, где и когда лучше проводить очистку для улучшения кода с учетом общей структуры системы.

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

Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: значения свойства display

вт, 04/23/2024 - 18:00


Привет, Хабр. Я продолжаю отвечать на вопросы из собеседований на должность фронтендера. Сегодня я отвечу на следующий вопрос: «В чём отличия между значениями block, inline, flex, inline-flex, grid и inline-grid для свойства display?»


Прошу внимания. Мой ответ будет основан на теории, которую я описал в статье «Зачем нужно использовать свойство display?». Прочитайте, пожалуйста, сначала её.

Читать дальше →

Возможное решение проблемы ссылок в языках программирования

вт, 04/23/2024 - 17:58


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


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


Тем не менее, ссылки в той или иной форме поддерживаются во всех языках программирования, хотя под этим термином часто подразумеваются не полностью эквивалентные термины. Например, под словом "ссылка" можно понимать ссылку как адрес в памяти (как в С++) и ссылку, как указатель на объект (как в Python или Java).


Хотя встречаются языки программирования, которые пытаются решать данные проблемы за счет концепции "владения" (Rust, Аргентум или NewLang). О возможном решении этих, и других имеющихся проблем со ссылками далее и пойдет речь.

Читать дальше →

Сейчас на сайте

Сейчас на сайте 0 пользователей и 1 гость.