Pull to refresh
6
0
Павел Гусев @Straight

User

Send message

Двухуровневый CI-процесс PHP-проекта

Reading time5 min
Views4.1K

Непрерывная интеграция (CI, англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Целей у непрерывной интеграции две:

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

Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра

Reading time11 min
Views9.9K

Выковыривание информации из html — это скучно. Очень. Между тем, эта потребность выстреливает редко, но метко (© Суворов). Из-за этого есть спрос на готовые и короткие инструкции о том, как это сделать, чтобы не тратить время на изучение. Перед вами как раз такая.

Чтобы добавить хоть какой-то интерес скучнейшему занятию мы для примера будем парсить пользователей Хабра. А чтобы не мелочиться — ещё и реанимируем для этого экспериментальную библиотеку 11-летней давности.

Есть такой проект — htmlSQL. Старая библиотека времён Очаковских и покоренья Крыма (© Грибоедов). Она позволяет делать выборку из HTML в стиле SQL-запросов как на КДПВ, чем она мне когда-то и полюбилась.

Воскресим старую любовь?
Total votes 30: ↑29 and ↓1+37
Comments23

Стало скучно? Запусти астероид в Землю

Reading time3 min
Views37K

Чем заняться приятным пятничным вечером? Посидеть в баре с друзьями, зачистить рейд в WoWке? Да ну нафиг. Давайте запускать астероиды!

Сервис с незатейливым названием Asteroid Launcher предлагает поиграть в бога. Вы можете выбрать любую точку земного шара и направить туда астероид с выбранными настройками. Помимо симпатичной анимации вы получите сводку нанесённого ущерба.

Читать далее
Total votes 24: ↑23 and ↓1+24
Comments20

Реверс-инжиниринг интеллекта персонажей: как спроектировать НЕтупого Волдеморта

Reading time7 min
Views13K


Сказать, что всем надоели клише в играх — уже клише. Я искала, что полезно почитать про нарратив. Нашла «Краткое руководство по умным персонажам» от Элиезера Юдковского, автора «Гарри Поттер и Методы Рационального Мышления».

Оригинал статьи на 18,5к слов. После первого часа мозг закипел и молил пощадить его. Видимо, мозг не в курсе, что мы — умный персонаж. Решила сделать конспект, как шпору в универе, чтобы в памяти осталось. Старалась как могла, ужалась до 1,3к слов, это уже ~5 минут чтения, а не 2-3 часа.

Но сначала версия на 3 секунды:

  • Умный персонаж не поступит глупее, чем вы.

А вот на 30 секунд чтения:

  • Чтобы не писать глупостей, пробуйте писать от первого лица.
  • Очки, худоба, неуверенность с девушками и много умных слов — самый отстойный способ показать интеллект.
  • Чтобы уважать персонажа, особенно злодея, мысленно привяжите его к знакомому, чей интеллект уважаете.
  • Причина ошибок умных персонажей — хорошая и продуманная идея не сработала на все 100% как планировал персонаж (и ожидал читатель).
  • Чтобы поставить героя с интеллектом перед «настоящим» моральным конфликтом, выберите два близких вам конфликтующих идеала. Сомневайтесь, который из двух идеальнее. Еще сомневайтесь. Готово.
  • Запишите все доводы в пользу Злодея так, чтобы последователи Злодея не догадались бы, что это писал не Злодей.
  • Если ваш персонаж превосходит целый мир, опишите причины.
  • Не используйте научные термины, объясняйте суть.


Я веду канал в Telegram GameDEVils и блог на Substack . Подписывайтесь, я делюсь там материалами про геймдизайн, разработку и историю игр.

Ниже мой вариант краткого содержания на ~5 минут чтения (но без примеров из «Наруто» и канонического «Гарри Поттера», как в оригинале).
Читать дальше →
Total votes 55: ↑49 and ↓6+58
Comments35

JavaScript: управление содержимым веб-страницы с помощью жестов

Reading time19 min
Views8.5K


Привет, друзья!


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


В данном туториале мы рассмотрим 5 примеров:


  • получение данных с видеокамеры и их отрисовка на холсте (canvas);
  • обнаружение и отслеживание кисти руки;
  • управление "курсором" с помощью указательного пальца;
  • определение жеста "щипок" (pinch);
  • нажатие кнопки с помощью щипка.

Все примеры будут реализованы на чистом JavaScript.


Источником вдохновения для меня послужила эта замечательная статья.


Для обнаружения и отслеживания руки и жестов будет использоваться MediaPipe. Для работы с зависимостями — Yarn.


Код примеров можно найти в этом репозитории.

Читать дальше →
Total votes 25: ↑24 and ↓1+32
Comments6

Подборка полезных сервисов с применением нейронных сетей

Reading time4 min
Views16K

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

Ознакомиться
Total votes 28: ↑27 and ↓1+30
Comments9

Поиск объектов на фото с помощью Python

Reading time5 min
Views40K

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

Полный код и все исходники можно найти на моем Github.

Для того, чтобы написать легковесное приложение для обнаружения объектов на изображении, установим необходимые библиотеки:

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

Изучаем, как собрать свой двигатель — на случай «Большого ПЭ» и не только

Reading time17 min
Views44K
Картинка Freepik и Flickr

Энергия в современном мире — это всё, и чем дальше, тем больше: экзоскелеты, роботы, разнообразные электрические виды транспортных средств. Всё это базируется на необходимости доступа к соответствующим источникам питания и, в то же время, ограничивается их отсутствием. Однако всё может стать ещё хуже, если традиционные источники питания станут вдруг недоступны, по тем или иным причинам. Либо же, потребуется создать собственный источник питания (например, для электропитания далеко расположенного лесного домика и т.д.). Ещё одним интересным вариантом может быть изготовление альтернативного источника питания для уже существующих устройств, — например, для дронов. Да, в этой статье мы поговорим об устройстве и возможности изготовления собственных двигателей внутреннего сгорания различных типов. Кроме того, для этих целей можно даже применить технологии машинного обучения!

Читать дальше →
Total votes 70: ↑69 and ↓1+98
Comments129

TypeScript: разрабатываем WebAssembly-компилятор

Reading time13 min
Views5.2K



Привет, друзья!


Представляю вашему вниманию перевод этой замечательной статьи, в которой автор рассказывает о том, как разработать компилятор для WebAssembly на TypeScript.


Обратите внимание: мой вариант компилятора можно найти в этом репозитории, а поиграть с его кодом можно в этой песочнице.


Если вам это интересно, прошу под кат.

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

Найти за полсекунды: сравниваем похожие фотографии

Reading time10 min
Views24K

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

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

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

Читать далее
Total votes 40: ↑39 and ↓1+52
Comments7

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

Reading time7 min
Views184K
В январе я участвовала в своем первом геймджеме — Global Game Jam 2022, в Стамбуле. На джеме все участники писали игры на движках — ибо надо быстро. Игровой движок — это физика, рендеринг, скрипты, искусственный интеллект. Создавать игру с нуля или пользоваться движком — вопрос вкуса. Вон, Джонатан Блоу вообще пишет свой движок, чтобы писать на нем игру.

Я обратила внимание, что большинство студентов использовали либо Unity либо GameMaker. Сама я питаю нежные чувства к Construct, но на нем всего одна команда делала игру. Я решила поискать альтернативу для себя, заодно запилила подборку бесплатных движков для начинающих (а может и продолжающих) игроделов.

Еще я веду канал в Telegram GameDEVils (на русском) и блог на Substack (на английском), делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).

Популярные движки Steam и itch.io


Вот статистика, игры на каких движках выкладывают в Steam:


Читать дальше →
Total votes 27: ↑18 and ↓9+14
Comments19

Как выглядит рельеф Марса? Выясняем с помощью Python

Reading time9 min
Views6.7K

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

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments5

15 супер полезных примеров команды find в Linux

Reading time9 min
Views77K

Практические примеры, которые приведены в этой статье, помогут вам освоить очень эффективную и крайне полезную команду find.
Читать дальше →
Total votes 34: ↑30 and ↓4+34
Comments17

Фреймворки машинного обучения для PHP-разработчиков

Reading time4 min
Views11K

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

Читать далее
Total votes 15: ↑13 and ↓2+14
Comments5

Что нужно знать, чтобы быть синьором?

Reading time11 min
Views90K

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

Ну-ка, ну-ка...
Total votes 166: ↑148 and ↓18+154
Comments258

Как отличить начинающего профессионала от умудренного хоббиста в цифровой схемотехнике?

Reading time7 min
Views12K

В чем главное отличие между FPGA-хоббистом, ностальгирующим по КР580ИК80 на пенсии - и начинающим микроархитектором, ориентированным на будущее трудоустройство в передовую процессорную компанию или сфинансированный венчурными капиталистами стартап?

Три слова: понимание концепции конвейера. Молодым профессионалом, не старым хоббистом.

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

(Некоторые из таких людей даже пишут книги - вот некий Роберт Дунне реализовал процессор конечным автоматом с состояниями fetch/decode/execute, но до конвейера не дожал)

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

Но это надо преодолеть, поскольку если вы прийдете интервьироваться в какой-нибудь AMD на позицию юного проектировщика, вас будут спрашивать не как помигать лампочками и засунуть Радио РК-86 в Xilinx, а как стоя перед интервьирующим написать на доске на языке описания аппаратуры Verilog - конвейерную реализацию какого-нибудь умножения со сложением. Или сделать это на компьютере отрезанном от интернета, так что вы даже не cможете нагуглить решение - вот садисты, а?

Именно этому вопросу будет посвящено следующее занятие Сколковской Школы Синтеза Цифровых Схем.

Объяснение концепции конвеера военкоматом
Total votes 22: ↑14 and ↓8+10
Comments91

Компьютер на логических микросхемах: исполнение инструкций

Reading time9 min
Views10K

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

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

Дефицит есть, а денег не дают. Почему?

Reading time27 min
Views293K

Мы уже выяснили, что у нас есть дефицит рабочих рук во всех отраслях. На примере СССР увидели, что дефицит легко закрывается деньгами и плюшками, что сейчас и происходит в IT. Однако при дефиците рабочих рук в остальных отраслях зарплаты остаются на уровне Румынии и никак не подтягиваются. Почему?

Читать далее
Total votes 512: ↑497 and ↓15+588
Comments1205

Шарим (в) консоль

Reading time5 min
Views19K
Мы уже все привыкли, что конференции проводятся виртуально. Мы все работаем через зумы, скайпы, миты и тимзы. Удобно, конечно, но у нас есть одна занудная проблема. Когда нам, программистам надо расшарить экран, мы тяжело вздыхаем и нажимаем кнопку Share Screen. Всё это не без проблем.


Как показать детям те прелести, которые происходят в консоли?

Самое неприятное — это когда возникает необходимость показать какую-то ссылку на экране. После завершения операции в консоли отобразилась ссылка, или ключ, который надо расшарить с командой. Естественно, приходится выделять, копировать и «дублировать в чатик». Особенно это неудобно, когда в чатик надо продублировать то, что выплюнула тебе какая-нибудь команда терминала. Строки, конечно же, заботливо съедут, форматирование потеряется, а цвета поблёкнут.
Читать дальше →
Total votes 56: ↑52 and ↓4+75
Comments27

Как защитить IIoT-решения, используемые в социальной инфраструктуре. И от чего?

Reading time5 min
Views1.6K


IoT всё чаще применяют для управления социальной инфраструктурой, обеспечивающей нашу повседневную жизнь. А мы настолько зависим от неё, что даже небольшие сбои могут привести к катастрофическим последствиям, поэтому цифровизация этой отрасли требует особого подхода к разработке умных устройств. Поговорим о том, как разработанная в Toshiba концепция позволяет создавать безопасные устройства IoT.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity