Как стать автором
Обновить
0
0
Дмитрий Селезнёв @selim13

Пользователь

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

[апрель 2024] Настройка проекта AstroJS: VS Code, Prettier, ESlint, Stylelint, Tailwind CSS, PostCSS, минификация файлов

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

AstroJS изначально был движком для создания статичных сайтов. Теперь там есть работа с API, server-side рендеринг, гибридный режим сервера. Можно написать код сайта в Astro-файлах на обычном html + js, а можно подключить визуальный фреймворк на свой выбор: React, Preact, Vue, Solid, Svelte. Подключаем CMS или backend-as-a-service - вот уже замена именитым NextJS и NuxtJS.

Но перед активной фазой создания сайта давайте потратим 10 минут. Настройка проекта для работы в команде займет каких-то шагов 20...

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

Если это не трудно, значит за это не стоит браться

Время на прочтение6 мин
Количество просмотров38K
image

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

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

Занятно, что ваш разум может обмануть вас и сделать идею чего-либо более приятной, чем сам этот предмет, так что вы наслаждаетесь самой идеей, и не воплощаете её в жизнь. В своей новой книге «Эго – это враг» [Ego is the Enemy], Райан Холидэй [Ryan Holiday] объясняет, что главным препятствием на пути к успеху является представление об успехе.

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

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

В результате, пробуя непосредственно само действие, вы натыкаетесь на стену сопротивления. Чаще всего вы отвлекаете себя от этого дискомфорта неким сиюминутным удовольствием. Роберт Грин объясняет в своей книге «Мастерство» [Mastery], что можно научиться любить это внутреннее сопротивление. Он пишет: «Вы находите некое извращённое удовольствие в том, чтобы двигаться сквозь боль, которую это может принести».
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии47

Из счетчика Гейгера, спичек и ардуины. Часть первая — теория

Время на прочтение11 мин
Количество просмотров44K
Давно не проблема купить прибор под условным названием «бытовой дозиметр» (были б деньги — в этом смысле, Фукусима радиофобам и радиофилам (TM) подгадила), но думаю, что этот прибор было бы интересно сделать своими руками.

image

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

Итак, начнем.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии31

Во что поиграть от топографического кретинизма: игры на зрительно-пространственную функцию

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


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

У некоторых детей освоение ориентировки на плоскости, а потом и в пространстве вызывает больше затруднений, чем у других. Например, она труднее дается левшам и девочкам, причем по одной и той же причине – из-за особенностей межполушарного взаимодействия. Когда женщина говорит, что надо повернуть налево, имея в виду, что надо повернуть направо, то это как раз про то, что у нее есть небольшой дефицит зрительно-пространственной функции. Многим женщинам из-за этого трудно читать карты, и чтобы понять, в какую сторону идти, им вначале нужно сориентировать карту так, чтобы она совпадала с местностью.
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии29

«Пора валить из фронтенда»: Андрей Ситник о стагнации сообщества, опенсорсе и не только

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


Андрей Ситник из Злых марсиан — одно из самых известных российских имён во фронтенде: у его проектов PostCSS и Автопрефиксер счёт GitHub-звёзд идёт на десятки тысяч. Но поскольку Андрей живёт в Нью-Йорке, а путешествует по всей планете, застать в России его можно нечасто.

В мае он будет в Петербурге на конференции HolyJS, и по этому поводу его подробно расспросили участники программного комитета HolyJS Дмитрий DmitryMakhnev Махнёв и Максим Юзва. Почему Андрей считает, что фронтенд стагнирует, а код наших проектов излишне разбухший? В чём различия IT-сообществ разных стран? Как учить английский и почему это менее важно, чем кажется? Куда пропал проект Logux, презентованный на HolyJS ещё в 2016-м?
Читать дальше →
Всего голосов 102: ↑88 и ↓14+74
Комментарии296

Стажёр Вася и его истории об идемпотентности API

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

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

Читать дальше →
Всего голосов 219: ↑216 и ↓3+213
Комментарии163

Распознавание номеров. Практическое пособие. Часть 1

Время на прочтение6 мин
Количество просмотров104K
Пример распознавания номерных знаков

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

И в один прекрасный день МВД Украины открыло доступ к реестру транспортных средств. Теперь по номерному знаку стало возможным проверять некоторую информацию про автомобиль (марку, модель, год выпуска, цвет и т.д. )! Скучная рутина линейного программирования померкла перед новой свехзадачей — считывать номера по всей базе фото и валидировать эти данные с теми, что указывал пользователь. Сами знаете как это бывает «глаза загорелись» — вызов принят, все остальные задачи на время стали скучны и монотонны… Мы принялись за работу и получили неплохие результаты, чем, собственно и решили поделиться с сообществом.
Для справки: на сайт AUTO.RIA.com, в день добавляется около 100 000 фото.
Датасаентисты давно уже знают и умеют решать подобные задачи, поэтому мы с dimabendera написали эту статью именно для программистов. Если вы не боитесь словосочетания «сверточные сети» и умеете писать «Hello World» на питоне — милости просим под кат…
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии58

Сергей и научный метод

Время на прочтение7 мин
Количество просмотров19K
Все совпадения случайны.
Кто не спрятался, я не виноват.
— Проходи, что стоишь как не родной?

Сергей огляделся — в квартире своего учителя-профессора он еще не бывал. Обыкновенная московская, в старом доме — видимо, еще с тех времен, когда их выдавали… или не выдавали, черт его знает, он-то эти времена уже не застал. Бардак конечно, но рабочий — повсюду книги и распечатки каких-то статей. Похоже, профессор продолжает вести активную научную работу, несмотря на свой возраст…
Читать дальше →
Всего голосов 51: ↑45 и ↓6+39
Комментарии39

Вторая версия Монитора качества воздуха

Время на прочтение1 мин
Количество просмотров11K
image

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

И вот появилась новая версия прибора.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии19

5 правил работы с суммами

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


Читать дальше →
Всего голосов 126: ↑120 и ↓6+114
Комментарии241

Дизайн и математика игр-кликеров

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

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

Что такое инкрементная игра?


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

В сущности, такова общая структура «инкрементной» игры. Она кажется простой, даже примитивной, но в игровом процессе есть неожиданная глубина и привлекательность. Стили игры могут быть разными — от коммерчески успешных и казуальных Clicker Heroes и AdVenture Capitalist до более экспериментальных или хардкорных примеров, таких как Candy Box, Cookie Clicker и Sandcastle Builder.


Cookie Clicker, самое начало.

Что же самое важное в инкрементной игре? Хотя в этом жанре есть множество вариаций и экспериментов, фундаментальными аспектами дизайна являются:

  1. наличие хотя бы одной валюты или числа,
  2. которые увеличиваются с заданной скоростью с минимальными усилиями, или вообще без усилий,
  3. и которые можно тратить на увеличение скорости прироста.

Именно цикл накопления, реинвестиций и ускорения определяет основы жанра и отличает его от игр, в которых присутствует просто увеличивающийся счёт. Например, в примечательной Cookie Clicker игрок стремится к росту количества «печенек», которое изначально увеличивается нажатием на огромное печенье, а потом тратит печенье на покупку апгрейдов, позволяющих создавать ещё больше печенья.
Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии36

Реализация, аналог и адаптация для «чистого» JavaScript'а JQuery функции JQuery(); и прилегающие к ней

Время на прочтение20 мин
Количество просмотров14K
Когда-то библиотека jQuery была хорошим помощником для программистов. Так как она позволяла в разы облегчить создание функционала, который в то время с помощью одного JavaScript было почти нереально написать, и предоставляла очень хорошую кроссбраузерность.

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

В этой статье я расскажу про самую главную функцию jQuery — jQuery();.
Читать дальше →
Всего голосов 18: ↑13 и ↓5+8
Комментарии21

Преимущества интерактивного прототипирования

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


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

Так было раньше и это работало. Я сам прибегал к таким хитростям неоднократно. Однако, мир вокруг стремительно меняется. Современный продукт настолько сложен, что одна картинка не даст понимания и ответов на вопрос “Как это работает?”. Схематичное или wireframe прототипирование тоже постепенно угасает в закате, так как черно-белые линии и прямоугольники не дают клиенту полного понимания. Всё больше желающих сегодня видеть живой прототип, а не серию картинок…
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии15

Понимание событийной архитектуры Node.js

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


Большинство Node-объектов — вроде HTTP-запросов, ответов и потоков (streams) — реализуют модуль EventEmitter, благодаря которому они могут генерировать и прослушивать события.


const EventEmitter = require('events')

Простейшая форма управления по событиям — это callback-стиль некоторых популярных Node.js-функций, к примеру fs.readFile. По этой аналогии событие генерируется однократно (когда Node готов к вызову коллбэка), а коллбэк действует как обработчик события. Давайте сначала разберём эту базовую форму событийно-управляемой архитектуры.

Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии9

Реверс-инжиниринг игры Lost Vikings

Время на прочтение31 мин
Количество просмотров25K
После интересной обратной разработки игрового движка Comprehend (см. Recomprehend) я подбирал новый проект для реверс-инжиниринга игры под DOS. За долгие годы разные люди реверсировали множество старых популярных игр и опубликовали для них спецификации и инструменты. Например, на сайте shikadi.net есть куча информации об играх, в которые я играл в детстве.

Я обнаружил, что для реверс-инжиниринга игры The Lost Vikings компании Blizzard (тогда она называлась Silicon and Synapse), похоже, не предпринималось никаких серьёзных попыток. Игра была выпущена в 1993 году, на закате эры DOS, и очень нравилась мне в юности. The Lost Vikings — это головоломка-платформер, в которой игрок управляет тремя викингами, каждый из которых имеет собственные умения. Викингам нужно объединить свои силы для решения загадок и прохождения уровней с различной тематикой: космический корабль, доисторический мир, Древний Египет. На изображении ниже показан первый уровень игры (источник: Strategy Wiki):

image

Казалось, что эту игру разобрать будет довольно просто. Уровни основаны на тайловых картах и содержат простые загадки: кнопки, включающие и отключающие объекты, передвижные ящики и поднимающий предметы кран. И на самом деле, бóльшая часть проекта по обратной разработке была достаточно прямолинейной. У игры есть один пакетный файл данных, содержащий сжатые блоки файлов. Блоки кодируют различные ресурсы игры, такие как спрайты, карты, звуки и т.д. Я написал несколько утилит, которые можно использовать для просмотра ресурсов игры: The Lost Vikings Tools.
Всего голосов 58: ↑58 и ↓0+58
Комментарии20

Лекции Техносферы: Программирование на Go

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

image


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


Список лекций:


Всего голосов 73: ↑68 и ↓5+63
Комментарии52

Увидеть невидимое: заглядываем внутрь тепловизора Seek Thermal (и не просто так)

Время на прочтение6 мин
Количество просмотров29K
Доброго дня, %username%! Сегодня я расскажу (и немного покажу), что можно (но не всегда нужно) делать с тепловизором Seek Thermal.


Синяя изолента, куда ж мейкеру без нее.

В последнее время на гиктаймс было немало статей про эту тепловизионную камеру. Почитать можно, например, тут, тут и вот здесь даже с подключением к STM-32, но мы сегодня не об этом — скучной теории и картинок котиков не будет, только мякотка. Под катом рассказ о том, как сделать из iOS-версии Seek Thermal версию для Android и Raspberry Pi, зачем это нужно и что еще интересного можно узнать в процессе копания во внутренностях тепловизора. Интересующихся прошу.
Всего голосов 42: ↑40 и ↓2+38
Комментарии34

Трудные уроки: пять лет с Node.js

Время на прочтение11 мин
Количество просмотров35K
После пяти лет работы с Node.js я многое понял. Я уже делился некоторыми историями, но в этот раз хочу рассказать о том, какие знания дались труднее всего. Баги, проблемы, сюрпризы и уроки, которые вы можете использовать в собственных проектах!

Базовые концепции


В каждой новой платформе есть свои хитрости, но в данный момент эти концепции для меня вторичны. Разобраться в своём баге — хороший способ гарантированного обучения. Даже если это немного болезненно!

Классы


Когда я только начал работать с Node.js, то написал скрапер. Очень быстро я понял, что если ничего не предпринять, то он будет осуществлять много запросов параллельно. Одно это стало важным открытием. Но поскольку я ещё не полностью усвоил мощь экосистемы, то сел и написал собственный ограничитель параллелизма. Он работал и проверял, что в каждый момент времени активны не более N запросов одновременно.
Читать дальше →
Всего голосов 33: ↑27 и ↓6+21
Комментарии8

MakiseGUI — бесплатная библиотека графического интерфейса для микроконтроллеров

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

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


Назвал я её MakiseGui.


Всего голосов 66: ↑65 и ↓1+64
Комментарии57

Терминальная графика

Время на прочтение8 мин
Количество просмотров55K
Когда printf — мало, а ncurses — много


Когда данных становится слишком много, бывает не хватает стандартного вывода printf в консольной программе. Особенно если различных событий много и различные данные превращаются в безумный листинг. Эти данные могут поступать от контроллера через UART, и тут нечего и думать о какой-то gui-программе. Может так же быть и обычный bash-скрипт, к которому хочется прикрутить какой-никакой псевдографический интерфейс.
Читать дальше →
Всего голосов 61: ↑54 и ↓7+47
Комментарии69
1
23 ...

Информация

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