Pull to refresh

Comments 87

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

я свои личные проекты, чтобы не пропали просто выложил у себя в канале.

Да может не идеальные, но опереться можно на них. В работе уже не нужны, пусть люди изучают.

(я не прогер, я конструктор)

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

Мне кажется, что многим будут интересны проекты даже в таком виде.

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

…и в результате

«блокнот» в несколько гигабайт(!) выкладывают совершенно бесстыдно, а
нормальный — не выкладывают, потому что «закритикуют за недостаточный
уровень пафоса в проекте». Не надо так.

Ужасная парадигма. Поэтому «блокнот» в несколько гигабайт(!) выкладывают совершенно бесстыдно, а нормальный — не выкладывают, потому что «закритикуют за недостаточный уровень пафоса в проекте». Не надо так.

Вот на меня посмотрите — ни стыда, ни совести, есть идея — сделал пост, есть попытка — сделал статью, кому надо — подберут, кому не надо — критикуйте сколько влезет, я в состоянии «на глаз» отличить дельную критику, улучшающую проект, от придирок. За хорошее указание на свой недочёт не грех и карму поднять — человек старался, помог ведь…

И пофиг мне замечания к качеству кода в той же «четвертинке Октодона», всё равно если кто-то возьмётся продолжать — ему всё с нуля писать на GLSL, так что в коде должно быть понятно, где руки, где ноги и где функция ошибки, а работать этому коду не придётся — GLSL-версия за пять минут сделает больше, чем моё писево могло бы потенциально сделать за когда-нибудь, поэтому смысл переживать за код? Да, он говно. Я могу что-то переписать или вычленить ради героического героя, готового писать GLSL-версию и запросившего «чистовик», но «на всякий случай, чтобы пальцами не показывали» — да тогда вообще никогда статья не родится и проект тихо сдохнет, а дохнуть надо громко и публично :-D как тот же Октодон :-D

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

Я думаю, хорошо бы уметь отличать добросовестность от зажатости и самоедства. Первое норм, второе делает хуже и тебе и другим.

У меня до сих пор не всегда получается.

Именно так. Весь первый абзац после дисклеймера.

Ну или «я боюсь осрамиться» vs «я боюсь навредить».

Хотя в силу отсутствия совести как личного качества (не на уровне парадигмы) я сначала пост оставил, а потом и вовсе выложил те наработки как есть :)

А как можно их отличить? Если добросовестность и есть форма зажатости, ограничения себя. По сути добросовестность - взятие на себя неких обязательств и выполнение их, в данном случае - перед потребителями твоего продукта, пусть и бесплатного.

Вот, к примеру, представьте, есть у человека одна полезная утилита, но сложная настолько, что он и сам порой забывает некоторые аспекты её работы, и приходится лезть в код разбираться. Будет ли добросовестным выкатить её релиз для общественности, в котором кроме него вряд ли кто-то что-то поймёт, а скорее, только время потеряет? В таком случае автор берет на себя обязательство не публиковать его до поры, пока не сделает удобным для неподготовленного пользователя. Что это - добросовестность? Зажатость? Самоедство? Или всё это и есть одно?

Хороший вопрос в итоге мы растормошили, на самом деле.

Думаю, надо сначала спросить себя — а в чём месседж проекта, или даже, если совсем на пафосе — в чём его миссия?

Принести уникальную утилиту? Ну, уникальность и полезность оправдывает бросание недоделки в народ, главное — начать с дисклеймера, чтобы копался тот, кто готов копаться и продолжать начатое (как правило, это проистекает из-за потребности в такой же утилите, кстати говоря). Дисклеймер много времени не занимает…

Тот же мусорный софт с функционалом «Блокнота» и весом в несколько гигов может нести как месседж туториала («смотрите, как на этих адских фреймворках написать свой хелловорлд!»), так и месседж «а давайте напихаем везде технологий ради технологий, чтобы всё глючило и тормозило, зато будет современно». Во втором случае крайне желательно, чтобы совесть отрастила щупальце и удавила аффтара до того, как он это испражнит в многострадальный мир открытого ПО…

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

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

Если добросовестность и есть форма зажатости, ограничения себя

Нет, это разные вещи, и зажатость может даже вредить добросовестности (а добросовестность - зажатости, хех).

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

Да, отличная фраза «как для себя». Смотрю с точки зрения разработки железа, делаю так, чтобы было не стыдно перед самим собой.

Мой вопрос был в другом - если сделал не "как для самого себя", то есть функционально работает, но эстетически безобразно, то отказ вываливать "это" на публику - добросовестность или зажатость?

Вот на такие вопросы ответить трудно. Но я считаю, что полезнее считать это зажатостью. Потому что эстетическая безобразность это всё-таки субъективная категория, ну и опять же, даже безобразный код может быть полезен кому-то. Если код многим окажется полезен, то найдётся и тот, кто приведёт его в порядок.

Вот такое этическое правило для программистов :)

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

Проект «Beam-on-Floor»

У меня в 2003 году появилась стиральная машина BOSH, которая никак не сообщала об окончании стирки, кроме как зажигания светодиода. Я придумал поставить напротив него фотодиод, запускавший генератор сигнала (пищалку) на транзисторах.

Да, отличное решение! Я тоже думал встроить в столешницу фотодиод/транзистор и как-нибудь реализовать мониторинг.

а не проще было расковырять панель машинки и попробовать припаять зуммер параллельно светодиоду? Или гарантия мешала?

Ожидал ,что там всего там SMD под слоем лака и это не стоило потраченного время на вскрытие, демонтаж, очистку контактов и пайку.

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

Моя стиралка тоже молчала. И я приделал к ней озвучку "бот Максим", который ненавидит человеков. потратил на это месяц.

потом мне сказали, что в мануале где то спрятана настройка, как включить звуковое оповещение... :D но я ни о чем не жалею

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

У меня были два пылесоса Panda X500. Оба разобрал и отключил динамики. Не нашел как кнопками вырубить.

Прекрасно.

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

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

Совершенно верно. Бывает для того кто публикует что-то вполне очевидно, но на деле это не так.

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

К сожалению, бизнес-подход Adafruit (продажа железок с опенсорсными исходниками) у нас не развит, а Kickstarter не доступен...

Эх, у меня вот тоже идея сделать сотовый до сих пор есть. Потом подумаешь, а для чего? Ваша версия с дозиметром интересная.

Потом подумаешь, а для чего?

Можно просто так, прикрыть гештальт :)

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

От мелкосерийного производства у себя дома/в мастерской или даже на опытном производстве НИИ до большой серии на контрактном производстве огромная дистанция.

Если прицел на качество продукта, то да. По факту же народ тут выше обсуждает стоит ли выкладывать непричесанный код, а тем временем на краудфанде часто побеждают кривые проекты слепленные из палок и отнюдь не шоколада

Не слежу внимательно что там на краудфанде побеждает, и возможно страдаю искаженным восприятием из-за пребывания в совем информационном пузыре, но. Одно дело разработать схему, плату, прошивку и собрать одно устройство или небольшую серию с ручным тестированием разработчиками и в фрезерованых/3д печатных/ чужих серийных корпусах. И совсем другое дело наладить массовое (тысячи) производство с тестом на производстве и серийными корпусами. Если команда энтузиастов умеет делать прототипы или уникальные устройства, то не факт, что для серии просто будут компетенции.

Разумеется. Я больше про обсуждение качества продукта, которое было выше.

Надо и мне свои наработки по сотовому выложить. У меня там была темка впихнуть ось в килобайты, а защиту для простоты реализовать по принципу «каждому исполнимому коду доступна его директория и её поддиректории». То есть, грубо говоря, c:\ — только для root :) А чтобы делать какие-то исключения — из-под рута создаём симлинки на другие директории.

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

У меня так же есть идея сделать MP3-плеер. Не то чтобы он был мне так сильно нужен, просто давнее желание со времён начала увлечения МК.

А телефон - это само собой... Возможно, даже когда-нибудь соберу его.

Лет 20 назад или чуть больше была идея сделать MP3 плеер с 2.5" HDD. Тогда времени и сил не хватило на такой проект. Там сложно: питание для винта обеспечить, в DRAM кешировать песни чтобы винт можно было отключать, ну и MP3 надо на чем-то декодировать. А современный MP3 плеер на ARM и c SD картой как-то уже и не интересно.

Есть аппаратные MP3-декодеры. Просто чип, который на вход принимает поток байтиков по SPI, а на выходе выдаёт готовый аналоговый сигнал для усилителя. Так что попробовать собрать можно даже на ATMega...

Есть такие. Я планировал MAS3507+DAC3550. Но если делать на HDD, то требуется поддержать ATA нтерфейс и SDRAM для буфферизации. А вот SD карточкой и аппаратным декодером можно сделать хоть на атмеге. Хотя на Cortex M4 можно и програмный декодер сделать. Будет проще и дешевле.

Тоже когда-то мечтал сделать автомобильный плейер на базе HDD, в 2007 почти сделал MP3 плейер на базе SD-карты для автомагнитолы Pioneer. Но столкнулся с глюком прошивки и не хватило времени доделать, а потом стало проще купить магнитолу с USB. Писал все с нуля сам на ассемблере, SD, FAT32, всего 5,5кБ кода. Atmega644+CPLD+VS1001K

Да, с SD картой тоже отличная тема!

Хотел сделать CD плеер на основе сидюка от ПК. Лет 25 назад, когда были популярны CD плееры.

25 лет назад говорите... я буквально года два назад получал ТЗ на разработку встраиваемого медиацентра с CD приводом...

Все новое - это хорошо забытое старое?)

Ну там очень специфический девайс хотели. В конце концов винил нынче в моде, поди ка скоро и компакты вернутся

Эх, где все мои бобинные магнитофоны…

когда я мечтал сделать свой телефон то уровень телефонов (бюджетных) не позволял получить что я хочу (например, внезапно, нормальную синхронизацию контактов) . ну и со встроенным счетчиком гейгера кстати. сделал кое какие наброски софта, научился рабоать с outlook. купил SDK для модемов в которые можно было свои скрипты заливать. купил cog дисплей от melt. и забил.

спустя лет 10 купил набор для сборки телефона xiadow. в нем можно уже на Си компилировать,, сделать оболочку свою. это почти не разработка, так, уровня Ардуино. Но прогресс улетел далеко вперед, объективной причины заняться - нет.

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

Не понял Ваш посыл. Для чего есть кикстартер? А для чего тогда Хабр?

мне особо обидно за датчик nfc, это что особенное, а проблема выглядит чисто софтовой.

ambilight уже вроде сделали и и на плис. Но это уже точно тот случай когда проще выбрать такой телек и наслаждаться. в случае пк есть проект hyperion который организует софтовый видеозахват с экрана. ну и аппаратные видеозахваты в таких случаях используют, раньше были с аналоговым по rca, сейчас и hdmi полно недорогих

у меня изначально использовалась штука под названием ambix с управлением под usb., и можно писать свои софты, но не взлетело

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

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

Есть такие же уже.

А для датчика температуры нельзя было сделать приложение на телефон, которое бы считывало данные несколько раз, а на экран выводило бы только температуру, полученную во время последнего считывания?

Была такая идея, но я подумал об этом слишком поздно. Долго мучился, чтобы работало с первого чтения. Упустил момент.

Тоже есть подобные идеи. Может, есть в сети специальные места для такого? Или даже тут, на Хабре?

Мне кажется, что описание идеи тоже будет тут полезно. Если это не абстракция, а почти решение, то будет интересно почитать и обменяться опытом.

Если все начнут писать про свои незавершённые проекты, то, думаю, не хватит хабра. Но, интересно, автор, ты молодец, что посвятил и поделился. Не бросай. Кроме тебя твою мечту воплотить некому, в любом случае она, вполне возможно, не будет иной.. хотя, это пессимизм. Молодец! Мне понравилось!

Спасибо! Хабра на всех хватит)

Проект NFC-термометра

По-моему более интересно, проще и реально сделать BLE-термометр.

Функции такие:

1) Набор статистики (на существующих чипах при измерении 1 раз в минуту это примерно 30 тысяч минут)

2) Посылка сообщений "Тревога" в режиме рекламы о повышенной температуре.

Конструктив решения можно подглядеть здесь:

Как раз сижу над стикерами для измерения сахара в крови. Работает по BLE. Чип внутри известный. Визуально похож на Вашу картинку.

Так там, думаю, самое интересное не в электронике, а в сенсоре сахара, который внедряется под кожу (на Вашей фотке его нет). И должен обеспечивать приемлемую точность измерений и иметь ресурс минимум 2 недели. Если бы выпуск таких устройств удалось наладить в РФ по приемлимым ценам, то диабетики были бы очень благодарны. Им и так нелегко живётся. Представляю какой квест нужно пройти, что бы такое устройство сертифицировать.

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

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

Проект управления емкостным сенсором

Т е сначала программно вывели изображение на экран, а потом стали бить по экрану молотком, чтобы передать сигнал обратно в программу. .

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

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

Сразу про это подумал. Плюс ещё всякие защиты типа DroidGuard. Недаром для такого используют кучу телефонов, приклеенных к доске, а не декомпилируют эту защиту и пытаются её обойти.

С андроидом не игрался, а вот на айфоне лет так 10 назад пописывал что-то — там по сути целый сэндбокс получался, внутри которого приложение работало. При этом на одном айфоне могло эмулироваться штук 20 разных моделей и версий. Но это бесконечные кошки-мышки, бан на аккаунт со списанием (не)честно заработанного прилетал при проколе моментально, а если таки не прилетал — через пару недель выходило обновление трекера, который нюхал лучше, срал гуще (в прямом смысле — чуть ли не попытка создать файл рекурсивно по всей файловой системе встречалась) и далее см. п. 1 %)

Не понял. Там как раз программная реализация. Там нет механики вообще. Вам нужно прочитать статью, а не картинки посмотреть.

Мне кажется, что если проект не пошел, а не хочется его хоронить, то вполне можно выкинуть все сырцы на github/oprenhrdware

Глядишь и память потомкам останется )))

Совершенно верно! Может кто-то подкинет идею по завершению.

Тоже интересовался для старых моделей посудомоек как определить конец рабочего цикла чтобы вовремя пойти открыть вручную дверцу, лего масштабируемое решение тут использовать zigbee / zwave / wifi адаптер в розетку с функцией измерения энергии и по результатам когда стиралка отработала отправлять в телеграм уведомление и/или озвучивать это через умные колонки в комнатах.

А новые модели посудомоек уже многие сами приоткрывают дверцу после цикла, так что это становится не очень актуально. Для стиралок разве что )

По стиралке у меня скоро будет отдельная тема)

Может не все так плохо?

Отличные идеи и я считаю, что имеет смысл их развивать.

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

Спасибо! Я стараюсь прототипы делать сразу как нужно, чтобы потом не было проблем с компоновкой в нужные габариты.

Интересные проекты.
Полезно почитать что-то такое, узнать о новых решениях и возникающих проблемах, услышать про опыт использования удачных компонентов и т д.
Ждём продолжения.)

Спасибо! Продолжения этих проектов или новых неудач?))

Продолжения интересных статей.)) На любую тему.

А не подскажите какой микроконтроллер использовали в "Проект NFC-термометра" ?

Там должно быть pico потребление,чтобы хватало запасенной энергии

Там stm стоит, но проблема именно та, что описана в статье. Я не успеваю обновить данные, так как чтение по nfc происходит быстрее, чем чтение/запись по i2c температуры.

Так просто отдавать "температура не готова" и пусть ридер еще раз читает через некоторое время, не?

UPD: а через NFC можно прошивку обновлять?

Идея Ambilight

Тоже на днях наткнулся на 1-2-3 распространенных решения и подумалось как сделать 4-е) Свой лунапарк с блэкджеком, как говорится) В идеале, мне кажется, это на уровне кишок телевизора, но с точки зрения удобства для пользователя, это самое не идеальное решение)

Sign up to leave a comment.