Приветствую, Хабр!
Как бы ни было печально признавать, но не все мои личные проекты превращаются в готовые изделия. Это происходит по нескольким причинам. Основная — нехватка времени. Второстепенная — безумство идеи. Эти причины возникают одна из другой. Появляется безумная идея, на которую нужно много времени. Хочу немного рассказать о своих незавершенных проектах, может кому-то окажется полезным, познавательным, а главное — «решабельным». Проектов, конечно, больше, но в статье собрал самые интересные.
Проект NFC-термометра
Шел далекий ковидный 2020 год (кажется, уже прошло много лет). Так как наша компания (не Selectel) непосредственно связана с разработкой, у нас мгновенно появилось пара проектов по этой тематике. К нам обращались по поводу очистителей воздуха, УФ-фильтров, ионизаторов и т. д.
Я стал усиленно думать на эту тему и меня осенило. Что чаще всего использовали в школах, садах, магазинах, торговых комплексах и на различных мероприятиях? Правильно — термометры для определения температуры тела. Это был первый признак болезни.
Идея родилась мгновенно. Разработать беспроводной датчик температуры с NFC. Я не забываю о том, что все метрологические средства должны иметь соответствующие сертификаты, но речь не об этом. Идея была проста. На гибкой подложке размещается NFC приемо-передатчик, микроконтроллер и датчик температуры. Вся конструкция приклеивается на предплечье (например). Прикладываем телефон — определяем температуру. Если перейти на RFID, то можно читать на расстоянии более метра. Плюс (а точнее минус) там другие габариты антенны.
Рис 1. NFC датчик температуры.
Устройство построено на основе микросхемы NFC Tag – NT3H2111W0FHKH, датчика температуры SI7051-A20-IMR и микроконтроллера. Суть была проста, Tag позволяет записывать в свою память, которую далее можно считать ридером NFC. У меня это даже получилось. При питании устройства от отладчика я свободно писал данные температуры с SI7051 и читал телефоном.
Ошибка была на этапе выбора тэга. Как известно, запитывание и обмен данными по NFC происходит по одной антенне (она разведена на плате). Микросхема отвечает достаточно быстро, соответственно первый раз я читал пустые (старые) поля, а второй раз — уже записанную ранее температуру. Я делал еще пару итераций платы с различными ухищрениями вплоть до коммутации антенны к tag после записи температуры в ячейки, но все было тщетно.
До сих пор разглядываю плату, смотрю код и думаю, можно ли что-то доработать. Но момент, как говорится, упущен.
Проект управления емкостным сенсором
Пока не столкнулся с подобной задачей, даже не представлял, насколько она сложна в реализации. Как можно тапать по емкостному тачу? Правильно — пальцем. А если мы хотим немного автоматизировать процесс? Ставим сервопривод, который тапает специальным стилусом по экрану. А если нужно покрыть весь экран? Тогда добавляем несколько шаговых двигателей и делаем подобие 3D-принтера с необходимым алгоритмом.
Есть другая реализация. Не буду углубляться в подробности, но, оказывается, уже существуют геймпады на основе этого метода. Яркий пример — Flydigi WASP 2.
Рис 2. Геймпад Flydigi WASP 2.
Думаю, что вы уже уловили суть. Устройство позволяет нажимать несколько кнопок на экране и «елозить» в небольшой области джойстиком. Как видно из картинки, покрытие маленькое и для текущей задачи не подходит.
Рис 3. Контактные площадки для управления тачем.
Для начала нужно вообще понять, будет ли работать данная система для всего экрана. Было решено раздвинуть контакты (Рис 3.) так, чтобы покрыть ½ экрана и использовать два устройства.
Джойстик имеет внутри переменное сопротивление, а точнее два. На его вход подается напряжение порядка 2,5 В, а на двух выходах снимается. 1,25В по обоим напряжениям — это точка с нулевыми координатами. Так как механику необходимо было исключить, джойстик заменил двумя электронными потенциометрами AD5241BRZ10, в которые писались нужные сопротивления по I2C. Кратковременное включение этой микросхемы позволяло выдать нужное сопротивление, тем самым установить положение джойстика на некоторый момент, затем — снять его.
Забегая вперед, скажу, что идея вполне годная, если разрабатывать с нуля плату (слева на рисунке 3). Моих познаний в программировании точно не хватило бы для решения задачи. Я сделал стенд, в который помещается телефон. Принимая команды, например, по UART, Arduino nano меняет сопротивления резисторов, эмулируя джойстик. Тем самым — тапает по экрану.
Рис 4. Стенд для тестирования.
Это работает. Область покрытия экрана расширилась, область работы джойстика стала больше. Единственный минус именно этого решения — это немного «рваные» нажатия на тач. Но это не критично, зато можно делать «свайп» без проблем.
На оригинальном геймпаде установлен микроконтроллер и пачка мультиплексоров, то есть аппаратная часть не очень сложная. Таким образом, если переписать ПО (либо разработать целиком плату управления), можно данную задачу решить.
Проект «Beam-on-Floor»
Этот проект я еще не до конца забросил, но отложил в долгий ящик. Почему-то пропало не только время, но и желание. Может, идея кому-то покажется интересной. У посудомоечных машин есть некая функция, которая называется Beam-on-Floor, что дословно переводится как «луч на полу». Служит она для отображения работы посудомойки — это бывает необходимо, так как, например, сушка, нагрев воды и т.д. протекают бесшумно.
Обычный таймер стирки почти всегда скрыт и виден только в момент установки программы (до закрытия дверцы). Так вот функция луча есть далеко не на всех моделях. Можно пойти простым путем: взять сигнал от индикатора/светодиода на панели и через транзистор управлять лазерной указкой (или светодиодом), направив ее (его) в пол. Я захотел разработать устройство, которое бы не требовало вмешательств в устройство машины.
Если посудомойка работает, она потребляет энергию. Основные потребители — это мотор, нагреватель, клапаны, сама плата управления и т. д. Но что будет, если измерять ток потребления и на основе данной информации зажигать/гасить луч?
Существуют так называемые трансформаторы тока, которые позволяют бесконтактно измерять мощность на нагрузке, которая проходит через провод. По сути, это является почти обычным трансформатором.
Рис 5. Суть метода (картинка из интернета).
Сделал плату, спаял, написал прошивку и понял, что через трансформатор нужно пропускать только один провод из двух. Бывает, можно подлезть к нужному проводу внутри корпуса машинки (снизу есть доступ), но это сложно, особенно когда она уже установлена. Для фото, к сожалению, нашел только плату без компонентов, разведена была в корпус от Ethernet-розетки. Справа — «разъемный» трансформатор тока, который можно просто защелкнуть на кабеле.
Рис 6. Плата измерителя тока в корпусе.
Думаю, буду все переделывать: уберу токовой трансформатор и поставлю микросхему измерения тока типа ACS712, а само устройство помещу в удлинитель (вроде пилота на одну розетку), к которому и будет подключаться посудомойка.
В устройстве, кстати, используется AC/DC-преобразователь LNK306PN. Очень хорошо себя показал в различных устройствах.
Идея Ambilight
К сожалению, так и осталась на уровне идеи. Если кто-то не знает, что такое Ambilight, то ниже картинка.
Рис 7. Ambilight.
Это технология фоновой подсветки для телевизора, которая была изобретена и запатентована компанией Philips. На данный момент есть несколько похожих реализаций данной функции с помощью адресной светодиодной ленты на задней стенке корпуса ТВ. Я знаю несколько решений.
- Анализ изображения по HDMI. Существуют приставки, которые подключаются в разрыв по HDMI, анализируют сигнал, а дальше управляют светодиодами. Отличное решение, но есть и минус: одно устройство — одна приставка. Не работает с эфирным ТВ и USB по понятным причинам.
- Приставка для ПК. Тоже адресная светодиодная лента, но приставка подключается по USB к ПК. Специализированное программное обеспечение анализирует картинку и подсвечивает экран. Такие же варианты есть для Android-телевизоров, но там множество ограничений.
- Анализ изображения камерой. Мне кажется, тут единственный минус — это кронштейн камеры. Все остальное — замечательно. Нет зависимости от интерфейсов и источника сигнала.
Рис 8. Система «Nanoleaf 4D Screen Mirror»
Я же подумал, что можно обойтись без внешних обвесов в виде камеры и приставки снаружи, дополнив функционал самого телевизора.
Рис 9. Анализ изображения с помощью ПЛИС.
В одном из проектов мне нужно было вывести на две LVDS-матрицы одинаковое изображение. Так вот, можно просто соединить матрицы (при условии, что они очень похожи) параллельно, и они будут замечательно работать. Появилась идея разветвить LVDS и встроить в телевизор плату, которая будет анализировать сигналы с MAIN и управлять все теми же адресными светодиодами. Думаю, тут не обойтись без ПЛИС. Начал разбираться с софтом и понял, что для меня это непосильная задача.
Немного позже пришла идея, что можно конвертировать сигнал LVDS в HDMI аппаратно, используя, например IT6263 или что-то похожее. После — подключить к имеющейся в продаже приставке с HDMI, но руки так и не дошли. Как всегда, на все интересное для души не хватает времени.
Спасибо за внимание и успехов! Пусть все ваши идеи воплощаются! Делитесь в комментариях, какие проекты не удалось довести до конца, — будет интересно почитать.
Комментарии (71)
Javian
30.07.2024 08:57+2Проект «Beam-on-Floor»
У меня в 2003 году появилась стиральная машина BOSH, которая никак не сообщала об окончании стирки, кроме как зажигания светодиода. Я придумал поставить напротив него фотодиод, запускавший генератор сигнала (пищалку) на транзисторах.
the_bat Автор
30.07.2024 08:57+1Да, отличное решение! Я тоже думал встроить в столешницу фотодиод/транзистор и как-нибудь реализовать мониторинг.
questfulcat
30.07.2024 08:57+1а не проще было расковырять панель машинки и попробовать припаять зуммер параллельно светодиоду? Или гарантия мешала?
Javian
30.07.2024 08:57+1Ожидал ,что там всего там SMD под слоем лака и это не стоило потраченного время на вскрытие, демонтаж, очистку контактов и пайку.
MaFrance351
30.07.2024 08:57+1Напомнило какой-то девайс для машинистов, который так же контролировал фотодиодом зажигание лампы бдительности и начинал пищать, давая лишние несколько секунд, чтобы чуть более спокойно жмякнуть кнопку бдительности (и тем самым сберечь нервы и премию).
Ramzez
30.07.2024 08:57+2Моя стиралка тоже молчала. И я приделал к ней озвучку "бот Максим", который ненавидит человеков. потратил на это месяц.
потом мне сказали, что в мануале где то спрятана настройка, как включить звуковое оповещение... :D но я ни о чем не жалеюnafikovr
30.07.2024 08:57+1у меня наоборот была через чур голосистая стиралка, не долго думая выпаял пищалку. как оказалось достаточно было подержать две кнопки, чтоб он выключился
the_bat Автор
30.07.2024 08:57У меня были два пылесоса Panda X500. Оба разобрал и отключил динамики. Не нашел как кнопками вырубить.
MaFrance351
30.07.2024 08:57+1Прекрасно.
Как по мне, проекты, когда что-то не получилось, тоже иногда стоят публикации. Это убережёт желающих повторить от тех же самых ошибок.
Ну и очередное напоминание, что не всегда железки собираются шутя и работают с первого раза, иногда это долгие вечера с паяльником и отладчиком, которые зачастую потом описываются просто как "После некоторых разбирательств стало понятно...".
the_bat Автор
30.07.2024 08:57+1Совершенно верно. Бывает для того кто публикует что-то вполне очевидно, но на деле это не так.
sepulkary
30.07.2024 08:57+3Я тоже когда-то развлеклся всякими-разными железячными проектами на базе микроконтроллеров: игрушечный сотовый телефон, твердотельный датчик радиации на Arduino, радиоуправляемый указатель поворотов для велосипедистов, GPS-трекеры, охранные сигнализации с голосовым меню и прочее.
К сожалению, бизнес-подход Adafruit (продажа железок с опенсорсными исходниками) у нас не развит, а Kickstarter не доступен...
the_bat Автор
30.07.2024 08:57+3Эх, у меня вот тоже идея сделать сотовый до сих пор есть. Потом подумаешь, а для чего? Ваша версия с дозиметром интересная.
sepulkary
30.07.2024 08:57+1Потом подумаешь, а для чего?
Можно просто так, прикрыть гештальт :)
Еще можно попробовать заработать, сделав что-то интересное и востребованное, если у вас есть возможность самостоятельно или через посредника обнародовать свой проект на Kickstarter или Indiegogo; там довольно много относительно несложных разработок, людям нравится.
Nick0las
30.07.2024 08:57От мелкосерийного производства у себя дома/в мастерской или даже на опытном производстве НИИ до большой серии на контрактном производстве огромная дистанция.
nafikovr
30.07.2024 08:57Если прицел на качество продукта, то да. По факту же народ тут выше обсуждает стоит ли выкладывать непричесанный код, а тем временем на краудфанде часто побеждают кривые проекты слепленные из палок и отнюдь не шоколада
Nick0las
30.07.2024 08:57Не слежу внимательно что там на краудфанде побеждает, и возможно страдаю искаженным восприятием из-за пребывания в совем информационном пузыре, но. Одно дело разработать схему, плату, прошивку и собрать одно устройство или небольшую серию с ручным тестированием разработчиками и в фрезерованых/3д печатных/ чужих серийных корпусах. И совсем другое дело наладить массовое (тысячи) производство с тестом на производстве и серийными корпусами. Если команда энтузиастов умеет делать прототипы или уникальные устройства, то не факт, что для серии просто будут компетенции.
NickDoom
30.07.2024 08:57+2Надо и мне свои наработки по сотовому выложить. У меня там была темка впихнуть ось в килобайты, а защиту для простоты реализовать по принципу «каждому исполнимому коду доступна его директория и её поддиректории». То есть, грубо говоря, c:\ — только для root :) А чтобы делать какие-то исключения — из-под рута создаём симлинки на другие директории.
Всё это должно было крутиться на сигнальном процессоре, который умеет складывать две пары регистров за один такт и делать прочие вещи, изначально предназначенные для ЦСП, но работающие для какого-нибудь наложения полупрозрачных текстур в игрушках ничуть не хуже…
MaFrance351
30.07.2024 08:57+2У меня так же есть идея сделать MP3-плеер. Не то чтобы он был мне так сильно нужен, просто давнее желание со времён начала увлечения МК.
А телефон - это само собой... Возможно, даже когда-нибудь соберу его.
Nick0las
30.07.2024 08:57+3Лет 20 назад или чуть больше была идея сделать MP3 плеер с 2.5" HDD. Тогда времени и сил не хватило на такой проект. Там сложно: питание для винта обеспечить, в DRAM кешировать песни чтобы винт можно было отключать, ну и MP3 надо на чем-то декодировать. А современный MP3 плеер на ARM и c SD картой как-то уже и не интересно.
MaFrance351
30.07.2024 08:57+1Есть аппаратные MP3-декодеры. Просто чип, который на вход принимает поток байтиков по SPI, а на выходе выдаёт готовый аналоговый сигнал для усилителя. Так что попробовать собрать можно даже на ATMega...
Nick0las
30.07.2024 08:57Есть такие. Я планировал MAS3507+DAC3550. Но если делать на HDD, то требуется поддержать ATA нтерфейс и SDRAM для буфферизации. А вот SD карточкой и аппаратным декодером можно сделать хоть на атмеге. Хотя на Cortex M4 можно и програмный декодер сделать. Будет проще и дешевле.
TinyQ
30.07.2024 08:57+2Тоже когда-то мечтал сделать автомобильный плейер на базе HDD, в 2007 почти сделал MP3 плейер на базе SD-карты для автомагнитолы Pioneer. Но столкнулся с глюком прошивки и не хватило времени доделать, а потом стало проще купить магнитолу с USB. Писал все с нуля сам на ассемблере, SD, FAT32, всего 5,5кБ кода. Atmega644+CPLD+VS1001K
the_bat Автор
30.07.2024 08:57+1Хотел сделать CD плеер на основе сидюка от ПК. Лет 25 назад, когда были популярны CD плееры.
NutsUnderline
30.07.2024 08:57+2когда я мечтал сделать свой телефон то уровень телефонов (бюджетных) не позволял получить что я хочу (например, внезапно, нормальную синхронизацию контактов) . ну и со встроенным счетчиком гейгера кстати. сделал кое какие наброски софта, научился рабоать с outlook. купил SDK для модемов в которые можно было свои скрипты заливать. купил cog дисплей от melt. и забил.
спустя лет 10 купил набор для сборки телефона xiadow. в нем можно уже на Си компилировать,, сделать оболочку свою. это почти не разработка, так, уровня Ардуино. Но прогресс улетел далеко вперед, объективной причины заняться - нет.
NutsUnderline
30.07.2024 08:57мне особо обидно за датчик nfc, это что особенное, а проблема выглядит чисто софтовой.
ambilight уже вроде сделали и и на плис. Но это уже точно тот случай когда проще выбрать такой телек и наслаждаться. в случае пк есть проект hyperion который организует софтовый видеозахват с экрана. ну и аппаратные видеозахваты в таких случаях используют, раньше были с аналоговым по rca, сейчас и hdmi полно недорогих
у меня изначально использовалась штука под названием ambix с управлением под usb., и можно писать свои софты, но не взлетело
Ramzez
30.07.2024 08:57+1такой бы датчик в стеклянную капсулу запихать, который в руку народ имплантирует для открытия дверей и животным вставляют.
только в подмышку. прикладываешь телефон и сразу узнаешь температуру. с рукой будут какие то попугаи непонятные
Anton1906
30.07.2024 08:57А для датчика температуры нельзя было сделать приложение на телефон, которое бы считывало данные несколько раз, а на экран выводило бы только температуру, полученную во время последнего считывания?
the_bat Автор
30.07.2024 08:57Была такая идея, но я подумал об этом слишком поздно. Долго мучился, чтобы работало с первого чтения. Упустил момент.
perfect_genius
30.07.2024 08:57+2Тоже есть подобные идеи. Может, есть в сети специальные места для такого? Или даже тут, на Хабре?
the_bat Автор
30.07.2024 08:57Мне кажется, что описание идеи тоже будет тут полезно. Если это не абстракция, а почти решение, то будет интересно почитать и обменяться опытом.
zmiuko
30.07.2024 08:57+2Если все начнут писать про свои незавершённые проекты, то, думаю, не хватит хабра. Но, интересно, автор, ты молодец, что посвятил и поделился. Не бросай. Кроме тебя твою мечту воплотить некому, в любом случае она, вполне возможно, не будет иной.. хотя, это пессимизм. Молодец! Мне понравилось!
nikolz
30.07.2024 08:57+1Проект NFC-термометра
По-моему более интересно, проще и реально сделать BLE-термометр.
Функции такие:
1) Набор статистики (на существующих чипах при измерении 1 раз в минуту это примерно 30 тысяч минут)
2) Посылка сообщений "Тревога" в режиме рекламы о повышенной температуре.
Конструктив решения можно подглядеть здесь:
the_bat Автор
30.07.2024 08:57Как раз сижу над стикерами для измерения сахара в крови. Работает по BLE. Чип внутри известный. Визуально похож на Вашу картинку.
Mur81
30.07.2024 08:57Так там, думаю, самое интересное не в электронике, а в сенсоре сахара, который внедряется под кожу (на Вашей фотке его нет). И должен обеспечивать приемлемую точность измерений и иметь ресурс минимум 2 недели. Если бы выпуск таких устройств удалось наладить в РФ по приемлимым ценам, то диабетики были бы очень благодарны. Им и так нелегко живётся. Представляю какой квест нужно пройти, что бы такое устройство сертифицировать.
nikolz
30.07.2024 08:57Сенсор -иголка электрод . Принцип работы такой же как в инвазивных глюкометрах. Измеряет напряжение. Но отличается от инвазивных тем, что измеряет глюкозу не в крови , а в межклеточной жидкости, поэтому и называется неинвазивный, хотя и прокалывает кожу.
nikolz
30.07.2024 08:57+1Проект управления емкостным сенсором
Т е сначала программно вывели изображение на экран, а потом стали бить по экрану молотком, чтобы передать сигнал обратно в программу. .
Прикольно, вместо того, чтобы решить задачу программно, Вы решаете ее механическими устройствами.
vladkorotnev
30.07.2024 08:57Есть вещи, где реально проще аппаратно решить вопрос, чем программно. Ботоферма для накрутки прибыли с рекламы, например: как правило, рекламный трекер, прежде чем засчитает конверсию от нового игрока, обнюхает и всю локалку, и всю флешку, ещё и посмотрит адреса, по которым имплементации нюхающих функций при этом лежали, и только убедившись, что игрок то и дело в игре хотя бы недельку появляется — так и быть, даст плюс десять центов на счёт за старания :-)
MaFrance351
30.07.2024 08:57Сразу про это подумал. Плюс ещё всякие защиты типа DroidGuard. Недаром для такого используют кучу телефонов, приклеенных к доске, а не декомпилируют эту защиту и пытаются её обойти.
vladkorotnev
30.07.2024 08:57С андроидом не игрался, а вот на айфоне лет так 10 назад пописывал что-то — там по сути целый сэндбокс получался, внутри которого приложение работало. При этом на одном айфоне могло эмулироваться штук 20 разных моделей и версий. Но это бесконечные кошки-мышки, бан на аккаунт со списанием (не)честно заработанного прилетал при проколе моментально, а если таки не прилетал — через пару недель выходило обновление трекера, который нюхал лучше, срал гуще (в прямом смысле — чуть ли не попытка создать файл рекурсивно по всей файловой системе встречалась) и далее см. п. 1 %)
the_bat Автор
30.07.2024 08:57+1Не понял. Там как раз программная реализация. Там нет механики вообще. Вам нужно прочитать статью, а не картинки посмотреть.
Micha1l
30.07.2024 08:57Тоже интересовался для старых моделей посудомоек как определить конец рабочего цикла чтобы вовремя пойти открыть вручную дверцу, лего масштабируемое решение тут использовать zigbee / zwave / wifi адаптер в розетку с функцией измерения энергии и по результатам когда стиралка отработала отправлять в телеграм уведомление и/или озвучивать это через умные колонки в комнатах.
А новые модели посудомоек уже многие сами приоткрывают дверцу после цикла, так что это становится не очень актуально. Для стиралок разве что )
smart-drone
30.07.2024 08:57Отличные идеи и я считаю, что имеет смысл их развивать.
На картинке вижу готовое устройство с планаром, но обычно прототипы близкие к итоговому виду используют для обкатки в реальных условиях. Если прототип предназначен для процесса разработки устройства и программы, то он обычно достаточно громоздкий, возможно даже выполнен на бредборде.
the_bat Автор
30.07.2024 08:57Спасибо! Я стараюсь прототипы делать сразу как нужно, чтобы потом не было проблем с компоновкой в нужные габариты.
questfulcat
Мне кажется, куда драматичнее ситуация, когда есть проекты функционально завершённые, и которыми сам регулярно пользуешься, но публиковать их в том виде, в каком они есть, как-то рука не поднимается. А долго вылизывать код и приводить к должному виду, чтобы не стыдно было выложить на всеобщее обозрение - не хватает какого-то бескорыстного трудолюбивого порыва.
pechkinkorp
я свои личные проекты, чтобы не пропали просто выложил у себя в канале.
Да может не идеальные, но опереться можно на них. В работе уже не нужны, пусть люди изучают.
(я не прогер, я конструктор)
the_bat Автор
Согласен, может кто-то воспользуется Вашим проектом для реализации своего. Бывает натыкаешься на интересные реализации чего-либо, а потом используешь у себя.
the_bat Автор
Мне кажется, что многим будут интересны проекты даже в таком виде.
MaFrance351
А ещё вариант - когда есть что-то и полностью рабочее, и даже то, чего не стесняешься, а выложить всё равно не хочется. Потому что думаешь, что ничего в этом особенного (хотя не всегда это так), что все уже такое делали, ну и прочее такое.
NickDoom
…и в результате
NickDoom
Ужасная парадигма. Поэтому «блокнот» в несколько гигабайт(!) выкладывают совершенно бесстыдно, а нормальный — не выкладывают, потому что «закритикуют за недостаточный уровень пафоса в проекте». Не надо так.
Вот на меня посмотрите — ни стыда, ни совести, есть идея — сделал пост, есть попытка — сделал статью, кому надо — подберут, кому не надо — критикуйте сколько влезет, я в состоянии «на глаз» отличить дельную критику, улучшающую проект, от придирок. За хорошее указание на свой недочёт не грех и карму поднять — человек старался, помог ведь…
И пофиг мне замечания к качеству кода в той же «четвертинке Октодона», всё равно если кто-то возьмётся продолжать — ему всё с нуля писать на GLSL, так что в коде должно быть понятно, где руки, где ноги и где функция ошибки, а работать этому коду не придётся — GLSL-версия за пять минут сделает больше, чем моё писево могло бы потенциально сделать за когда-нибудь, поэтому смысл переживать за код? Да, он говно. Я могу что-то переписать или вычленить ради героического героя, готового писать GLSL-версию и запросившего «чистовик», но «на всякий случай, чтобы пальцами не показывали» — да тогда вообще никогда статья не родится и проект тихо сдохнет, а дохнуть надо громко и публично :-D как тот же Октодон :-D
questfulcat
Вы хотите сказать, что наличие совести у разработчика перед его аудиторией - это ужасная парадигма?
dv0ich
Я думаю, хорошо бы уметь отличать добросовестность от зажатости и самоедства. Первое норм, второе делает хуже и тебе и другим.
У меня до сих пор не всегда получается.
NickDoom
Именно так. Весь первый абзац после дисклеймера.
Ну или «я боюсь осрамиться» vs «я боюсь навредить».
Хотя в силу отсутствия совести как личного качества (не на уровне парадигмы) я сначала пост оставил, а потом и вовсе выложил те наработки как есть :)
questfulcat
А как можно их отличить? Если добросовестность и есть форма зажатости, ограничения себя. По сути добросовестность - взятие на себя неких обязательств и выполнение их, в данном случае - перед потребителями твоего продукта, пусть и бесплатного.
Вот, к примеру, представьте, есть у человека одна полезная утилита, но сложная настолько, что он и сам порой забывает некоторые аспекты её работы, и приходится лезть в код разбираться. Будет ли добросовестным выкатить её релиз для общественности, в котором кроме него вряд ли кто-то что-то поймёт, а скорее, только время потеряет? В таком случае автор берет на себя обязательство не публиковать его до поры, пока не сделает удобным для неподготовленного пользователя. Что это - добросовестность? Зажатость? Самоедство? Или всё это и есть одно?
NickDoom
Хороший вопрос в итоге мы растормошили, на самом деле.
Думаю, надо сначала спросить себя — а в чём месседж проекта, или даже, если совсем на пафосе — в чём его миссия?
Принести уникальную утилиту? Ну, уникальность и полезность оправдывает бросание недоделки в народ, главное — начать с дисклеймера, чтобы копался тот, кто готов копаться и продолжать начатое (как правило, это проистекает из-за потребности в такой же утилите, кстати говоря). Дисклеймер много времени не занимает…
Тот же мусорный софт с функционалом «Блокнота» и весом в несколько гигов может нести как месседж туториала («смотрите, как на этих адских фреймворках написать свой хелловорлд!»), так и месседж «а давайте напихаем везде технологий ради технологий, чтобы всё глючило и тормозило, зато будет современно». Во втором случае крайне желательно, чтобы совесть отрастила щупальце и удавила аффтара до того, как он это испражнит в многострадальный мир открытого ПО…
questfulcat
Ну, может автор гигабайтного "блокнота" просто не рефлексировал, и выложил как есть, кому надо - подберёт, не стал, так сказать, придерживаться ужасных парадигм :) Тут я, в общем-то, не осуждаю.
Но, самое настораживающее не в том, что кто-то выкладывает гигабайтные "блокноты", а в том, что другие, видя это, восклицают "а что, так можно было?" и гигабайтный софт с простой функциональностью постепенно становится нормой.
dv0ich
Нет, это разные вещи, и зажатость может даже вредить добросовестности (а добросовестность - зажатости, хех).
Добросовестность это когда ты делаешь как для самого себя (т.е. ставишь себя на место клиента). А зажатость это когда ты боишься, что о тебе плохо подумают.
the_bat Автор
Да, отличная фраза «как для себя». Смотрю с точки зрения разработки железа, делаю так, чтобы было не стыдно перед самим собой.
questfulcat
Мой вопрос был в другом - если сделал не "как для самого себя", то есть функционально работает, но эстетически безобразно, то отказ вываливать "это" на публику - добросовестность или зажатость?
dv0ich
Вот на такие вопросы ответить трудно. Но я считаю, что полезнее считать это зажатостью. Потому что эстетическая безобразность это всё-таки субъективная категория, ну и опять же, даже безобразный код может быть полезен кому-то. Если код многим окажется полезен, то найдётся и тот, кто приведёт его в порядок.
Вот такое этическое правило для программистов :)