Рубрика «ненормальное программирование» - 33

Будучи поклонником системы управления "умным домом" Home Assistant я недавно открыл для себя интересный инструмент, тесно с HA интегрированный и ранее на Хабре не освещенный — ESP Home (ранее ESPhomeYAML).

ESP Home представляет собой набор библиотек и инструментов, генерирующих прошивку для микроконтроллеров ESP8266 и ESP32 из созданного пользователем конфиг файла в формате YAML. Это значительно упрощает написание прошивок малого и среднего уровня сложности в особенности для тех, кто не силен в программировании под Arduino и сильно сокращает количество строк кода/конфигурации для тех, кто силен.

Для удобства настройки поддерживается обновление прошивки по воздуху.

ESP Home поддерживает устройства на базе ESP8266 и ESP32, очень популярных среди любителей домашней автоматизации и прочих самоделкиных, а так же несколько десятков сенсоров и различную периферию — дисплеи, сетевые карты и т.д. Для обмена данными с запрограммированным устройством поддерживаются MQTT, UART, I2C, SPI и API, интегрированное с Home Assistant.

Ниже короткий пример установки ESP Home и простой настройки устройстваЧитать полностью »

image

Когда-то давным-давно придумали люди язык XML и увидели, что это хорошо. И стали использовать его везде, где можно, и даже там, где не следует. Форматы хранения и передачи данных, конфиги, веб-сервисы, базы данных… Казалось, оглянись вокруг — XML, XML повсюду. Время прошло, люди одумались, насочиняли разных других форматов данных (или спрятали XML внутри архивов) и XML-безумие как-бы приутихло. Но с тех славных пор практически любая система умеет в XML и интегрировать такие системы (кто сказал Apache Camel?) лучше и проще всего, используя XML-документы.
А где XML, там и XSLT — язык, предназначенный для преобразования XML-документов. Язык этот специализированный, но обладает свойством полноты по Тьюрингу. Следовательно, язык пригоден для «ненормального» использования. Вот, например, существует решение задачи о 8 ферзях. Значит, можно и игру написать.

Для нетерпеливых: рабочая программа на JSFiddle, исходники на GitHub.

Читать полностью »

Orange Pi 2G-IOT: карта минного поля - 1

Некоторое время назад мне предложили немного поработать с одноплатным ПК Orange Pi 2G-IOT (встроенный 2G и цена выглядят очень привлекательно). Прочитав пост об апельсиновом рае, я подумал, что без затруднений повторю этот путь, тем более, что с Linux я на «ты» (вернее, так я думал недели три назад) и уже имел опыт общения с Raspberry Pi 2 B+. На практике этот путь оказался намного длиннее. Создавалось ощущение, что наши китайские друзья намеренно создавали сложности (причём иногда с особым цинизмом). Если вы захотели сэкономить и купить эту плату, то сначала прочитайте этот пост и подумайте ещё раз.

По возможности, я постараюсь сдерживать эмоции или как минимум переводить их в юмор.
Итак, вот мне в руки попадает плата и SD карточка десятого класса. Поехали.
Читать полностью »

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

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

image
Вот так я хочу видеть сколько минут прошло от старта выступления
Читать полностью »

Примечание от переводчика: типично пятничная статья во вторник утром… почему бы и нет?

Объясняем код с помощью ASCII-арта - 1

Большинство людей — визуалы. Они используют изображения, чтобы вникнуть в суть проблемы. А вот мэйнстримные языки программирования, напротив, основаны на текстовом представлении. Возникающую пропасть между текстом и графикой заполняют ASCII-изображения, нарисованные с помощью текстовых символов и вставленные в исходный код программы. Я их обожаю! Как-то раз я кинул клич в Twitter и мне прислали гораздо больше примеров, чем я ожидал. Спасибо всем участвовавшим. В этой теме попалось несколько прекрасных примеров, которые я собрал и разложил на категории. Для каждого изображения дается ссылка на соответствующий репозиторий.Читать полностью »

Сезон чемпионатов 2019 открыт! Стартует SNA Hackathon аля ML Boot Camp 8 - 1

Привет!

Многие из читателей уже знают, что мы стараемся постоянно проводить различные IT-чемпионаты по самым разным тематикам. Только в прошлом году провели более 10 разных крупных соревнований (Russian AI Cup, ML Boot Camp, Технокубок и другие). В них приняло участие не менее 25 000 человек, а с 2011 года — более 150 000.

Если вы только сейчас узнали об этом, то поздравляем: именно с этой минуты вы стали частью большого сообщества людей, участвующих в наших соревнованиях и обменивающихся опытом друг с другом. Уже сейчас вы можете присоединиться к Telegram-группам сообществ по искусственному интеллекту, спортивному программированию, высоконагруженным проектам и администрированию, машинному обучению и анализу данных. Это поможет вам быстрее втянуться в серьёзную тусовку!

Сезон чемпионатов 2019 открыт! Стартует SNA Hackathon аля ML Boot Camp 8 - 2

Итак, перейдём к делу. Сегодня, 7 февраля, мы рады открыть новый сезон чемпионатов 2019 года. И начнём с уже восьмого соревнования по машинному обучению и анализу данных, проводимого на специализированной платформе ML Boot Camp (наш аналог Kaggle) — SNA Hackathon, или ML Boot Camp 8 (как вам удобнее).
Читать полностью »

Known now as a «motherboard speaker», or just «beeper», PC Speaker has been introduced in 1981 along with the first personal IBM computer. Being a successor of the big serious computers for serious business, it has been designed to produce very basic system beeps, so it never really had a chance to shine bright as a music device in numerous entertainment programs of the emerging home market. Overshadowed by much more advanced sound chips of popular home game systems, quickly replaced with powerful sound cards, it mostly served as a fallback option, playing severely downgraded content of better sound hardware.

«System Beeps» is a music album in shape of an MS-DOS program that features original music composed for PC Speaker using the same basic old techniques like ones found in classic PC games. It follows the usual retrocomputing demoscene formula — take something rusty and obsolete, and push it to eleven — and attempts to reveal the long hidden potential of this humble little sound device. You can hear it in action and form an opinion on how successful this attempt was at Bandcamp, or in the video below. The following article is an in-depth overview of the original PC Speaker capabilities and making of the project, for those who would like to know more.

Читать полностью »

Известный теперь как «системный динамик», а то и просто «пищалка», PC Speaker появился на свет в 1981 году вместе с первым персональным компьютером IBM. Наследник нескольких поколений больших компьютеров для серьёзных дел, он с рождения был предназначен лишь для подачи простейших системных сигналов, и не мог достойно проявить себя в озвучивании главенствующих на домашнем рынке развлекательных программ. Сильно уступая звуковым чипам специализированных игровых систем, пропадая в тени вскоре появившихся продвинутых звуковых карт, он поддерживался многими разработчиками по остаточному принципу — как опция, выдающая хоть какой-нибудь звук при отсутствии лучших альтернатив. За нечастыми исключениями, через спикер проигрывались грубо упрощённые, полностью одноголосые версии мелодий, изначально сочинённых для гораздо более мощных устройств.

Музыкальный альбом «System Beeps» написан для PC Speaker с использованием той же базовой техники из старых игр, и согласно типичной формуле ретро-компьютерного около-демосценового творчества призван раскрыть многие годы оставшийся неисследованным потенциал этого простейшего звукового устройства. Собственно послушать результат и составить своё мнение об успешности данного мероприятия можно на Bandcamp или в видео ниже, а дальнейший текст углубляется в устройство спикера, историю проекта и способы достижения подобного результата для тех, кто хочет знать больше.

Читать полностью »

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

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

Конечно же, надо изобрести новый, самый лучший ЯП!
Нет, сначала попробуем выразить свои пожелания и посмотреть на то, что уже наизобретали.
Читать полностью »

Сайт The Daily WTF уже 14 лет собирает курьёзные, дикие и/или печальные истории из мира ИТ. Я перевёл несколько рассказов, показавшихся мне интересными. Все имена и названия компаний изменены. Первая часть находится здесь.

История первая. Назло бабушке...

[Оригинал]

Клайв сравнил содержимое своего банковского счёта с предлагаемой ему посуточной ставкой, как это делают многие фрилансеры, и решил, что в таких условиях ему подойдёт любая работа. Одна вакансия казалась почти сносной: страховой компании требовался новый программный пакет, который позволил бы ей соблюсти какие-то требования законодательства. Кроме того, руководству было нужно, чтобы кто-то обучил разработчиков современным инструментам и техникам… например, управлению версиями кода.

Клайв блестяще прошёл интервью и спустя неделю поступил на работу. В почтовом ящике его уже ждало письмо от кого-то по имени Брэндон. Оно гласило: «Надо встретиться».

Брэндон сидел в своём офисе, приклеившись к эргономическому креслу середины 90-х и как будто став с ним одним целым. Он поднял взгляд от монитора и посмотрел на Клайва. «Ты работаешь на меня».

Краткими фразами, состоявшими из односложных слов, Брэндон объяснил, что никто из принимавших решение о найме не будет встречаться с Клайвом. Клайв несёт ответственность только перед ним.

«Ну ладно… Так, когда меня нанимали, то сказали, что нужно настроить Subversion. Мне начинать с этого?», — спросил Клайв.

«Нет».

«Можно узнать, почему? Вы предпочитаете что-то другое? Хотите обсудить варианты?»

«Нет».
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js