Аттракцион невиданной щедрости от профессионального разработчика по случаю круглых дат [сбор заявок окончен]

+175
в блоге Общеличный блог
Всем добрый день.
Картинка для привлечения внимания к посту



Теперь о деле :-)
Сегодня узнал, что MLP уже восемь лет как услаждает взор и слух преданных фанатов.
С другой стороны, в сентябре вот только отмечал менее значимую в общественном смысле, но более важную личную дату — пять лет, как я активно участвую в жизни фэндома. Многое было сделано, многое не успел сделать, многое еще делается… но суть в том, что по совокупности этих факторов, а также с учетом нескольких дополнительных обстоятельств:
1) Моя вайфу любимая пони — Элемент Щедрости.
2) Моя кьютимарка — единичка и нолик, из которых я всегда могу слепить целую Вселенную, а потом еще одну на запас.
3) Мой жизненный план — ну не то чтобы крызис, дела-то делаются, клиенты водятся, монеты собираются — но некоторая туманность ориентиров наступила, никак не могу понять, куда же мне копать, чтобы прокопаться глубже в профессию.
— так вот, по совокупности обстоятельств, я устраиваю щедрое дело, достойное леди Рарити:

Бесплатная разработка одной программы для любого участника фэндома, по его заданию и запросу. Но только одной и только для одного.

В полном соответствии с традициями белой единорожки, подобная щедрость не только будет достойна её образа, но и принесет личную пользу разработчику (мне):
1) Внезапная задача, отличающаяся от моего привычного круга заданий, пойдет мне на пользу
2) Идеи на программу, которые будут высказываться, могут меня подтолкнуть к поиску нового уже для личного/коммерческого использования
3) Продуктивно делать ПО за ноль рублей всяко лучше, чем тупить, ожидая вдохновения и направления.



Кратко об условиях акции.
1) В посте или в личку (но предпочтительно в посте) вы высказываетесь, какую программу вы бы хотели получить.
2) Тематика — любая. Я достаточно квалифицирован, чтобы осилить практически любую предметную область.
3) К заявке должно быть приложено краткое описание в свободной форме — что программа должна уметь, как работать, если будут примеры входных/выходных данных — отлично. Расписывать во всех деталях не нужно, см. пункт 4.
4) По истечению срока сбора заявок (до 31.10.2018 включительно), я выбираю наиболее мне понравившееся предложение и начинаю работу с заказчиком, путем личных переговоров, уточнения задания и т.д. — обычный цикл разработки.
5) Когда разработка завершена — счастливый заказчик получает программу, а я делаю пост об этом с отчетом.

Что касается прав на готовую программу — заказчик получает право на бессрочную и свободную эксплуатацию ПО безо всяких ограничений, кроме ограничений на модификацию. Я же сохраняю за собой право использовать программу в личной и коммерческой деятельности, дорабатывать её, извлекать пользу для себя и т.д. Текст лицензии подготовлю позже.

Главный вопрос — что же вообще можно заказать, для примера?
Ну тут большой простор для фантазии, даже в условиях целевого фэндомного использования (а этим условия не ограничивают, просто привожу наиболее наглядно).
Любите участвовать в бредациях и хотите специализированный редактор, чтобы не мучать GIMP облачками и вставками фреймов? Отличная идея.
Пишете клопфики и страдаете от отсутствия нормального редактора малых литературных форм для Windows? Превосходно.
Переводите комиксы и уже запутались в авторах/переводах/исходниках/готовых файлах, которые разбросаны по диску? ОК, база данных с классификатором файлов ждет вас.

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

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

Спасибо за внимание, ожидаю заданий на разработку.

106 комментариев

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

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

Ну, ежели других желающих не будет, можешь мне прикрутить на тумбу донатную кнопку? Знаю это сложно назвать разработкой программы и это может любой быдлокодер, но раз уж предлагают забесплатно.
ОК, первый участник записан.
Если ничего больше не предложат — сделаю :-)
Сяп.
НТФС, ты душка =)
На самом деле все, чего бы мне хотелось бы — поисковик на ФП по типу бузеровского для ЕП, но уверен, что табунчане предложат тебе что нибудь поинтресней и полезней…
Удачи в начинаниях, твоя белоснежная вайфу тобой гордится
поисковик на ФП

Там же есть встроенный поиск, зачем внешний? Табун и форум ЕП, понятно дело, лишены такой роскоши.
Он кривущий, шо песец. И почему-то не отображает больше 30-ти постов, в не зависимости от выбранного интервала. Считай, что нет.
А зачем он на флудильне под названием ФП — конечно, другой вопрос.
А порой и вовсе ничего не отображал супротив гугла…
О, тут желания исполняют?
Тогда хочу я красивый редактор графов. Чтобы ему на вход даёшь, скажем, graphml, и параметры построения, а он сам оптимальную топологию нашёл бы, нарисовал, порты бы расставил, покрасил бы заданным в файле образом и проименовал рёбра. А пользователь может приближать, удалять, дублировать вершины да мышкой новые связи добавлять. Я джва года жду такую программу.
Тогда хочу я красивый редактор графов

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

Получается фигня, покажите вашему программисту GEM algorithm

www.springerlink.com/index/Y4H746K55233W685.pdf
citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.113.9565&rep=rep1&type=pdf

получается вот такое
www.youtube.com/watch?v=IC4WV_tNTRU

www.youtube.com/watch?v=8dpEZWygdEc

2012 год
tabun.everypony.ru/blog/computers/41286.html
Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова...


Вообще, у меня есть много угарных идей, но я ловлю себя на мысли что было бы прикольнее написать самой.
Если тебе совсем нехуй делать и ты хочешь ЧЕЛЛЕНДЖА, можешь попробовать отреверсить мою древнюю студенческую поделку для винды на крестах.
Это лютый трешак, чад кутежа и дичайший угар во мгле ада, например, написанный неразумным школьником, но он очень маленький, и в какой-то степени мне дорог :)
Я просто сурцы потеряла, когда и при каких обстоятельствах уже не помню.
А что за программка-то?

Потерянный исходник — сочувствую, сам прохлопал некоторые свои поделки середины 90-х, практической ценности там ноль, но они были мне дороги как память о первых шагах :-)

нехуй делать

Смотри пост. Работы у меня полно, просто ищу новые ходы, чтобы встряхнуть себя.
Игрушка сокобан в консоли.

просто ищу новые ходы, чтобы встряхнуть себя.
Ну, в общем, если захочешь поразмахивать дизассемблером, могу скинуть.
Ых, жалко только мои гениальные названия переменных транслитом уже не вернуть.
ОК, заявку принял, если выберу твой вариант — сообщу.
О, по-чаще бы у нас такие посты мелькали :).
Хочешь повозиться с захватом системного звука, его обработкой и отправкой результата в виртуальный COM порт с красивым результатом?

За деталями жмякай сюда. Будет интересно, обещаю! )У меня вот такие штуки в некотором количестве:
Контроллеры в них собственной разработки и реализации:

У некоторых ребят эти вещи уже есть (например у SDreamExplorerS). Задумка интересная тем, что контроллер управляет 5-ю зонами подсветки с 16-ти битной глубиной каждого канала. В него встроен синтезатор различных эффектов, хотя софт по управлению им не очень то и удобен:

Штука красивая, гифку я сюда цеплять не буду. Если интересно — скину видео в ЛС. Народ тащится.
Теперь суть:
Контроллер (собран на ATtiny2313 и подключен к компу через FT232RL) содержит встроенный синтезатор с памятью (может работать в оффлайн режиме), но есть поддержка и RAW потока с порта, для которой и нужно либо модифицировать текущую утилиту, либо написать свой софт. Я сам кодер, но высокоуровневые вещи, типа графического интерфейса, и использования библиотек для захвата системных звуков и т.п. — не моё. Я хочу выводить на эти акрилайты цветомузыку, при чём алгоритм преобразования звуковых семплов в RGB и возню с протоколом я напишу сам (или погружу тебя в основы ЦОС и научу писать быстрые фильтры). Единственная тонкость, которая пугает того же Свимика — протокол времязависимый. Концом пакета считается таймаут в передаче данных, и системный драйвер COM порта можно настроить нужным образом, в обход латентности ОС. Мне хотелось бы раздать народу симпатичный софт, чтоб раскрыть потенциал этих акрилайтов. Исходники к утилите наверняка есть у Свимика, хотя он и говорил «нихачу показывать тебе этот говнокод, лучше сам поправлю что тебе там надо». Данная задача будет скорее совместной, нежели заказом заказчика, ну и я могу подогнать 1 такой акрилайт (их всего сделано 13 штук).

Как ты мог уже понять — я разработчик микропроцессорной и импульсной силовой радиоэлектроники. Мог бы тоже написать «профессиональный», но чёт стесняюсь…
Хочешь повозиться с захватом системного звука, его обработкой и отправкой результата в виртуальный COM порт с красивым результатом?

Это безмерно круто, учитывая то, что я сам работаю немного с цифровой электроникой.
Думаю, у твоей заявки есть очень жирные шансы.

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

Ну вот а это как раз по моей части.
Предлагаешь написато код(!), и не один (!!), за халяву (!!!)
Реально невиданная щедрость)
Меня зовут Кирил я джва года жду такую игру…
для любого участника фэндома
Слегка шовинистично, но, что ж, удачи вам. Надеюсь, программа не будет повязана на конях.
Слегка шовинистично

Ну дык, я стараюсь не распыляться на весь мир, а концентрирую свои усилия на близких мне людях. Семье, друзьях, товарищах, на худой конец — фэндому, который был мне как второй дом и всё такое.
Для тех кто скучает по старому Табуну с постами по 1000 комментариев, не имеющих отношения к теме, вот вам срач из падика анонов, вызванный этим постом: pastebin.com/Hxt7hkYX
(читает срач) Чего там с заданием на пад? Я конечно, слоуконь и всё такое, но раз в год и земнопони летает, а NTFS сдаёт заказ вовремя :-)
Ну та версия пада, которой пользуются аноны, устаревшая, глючная и неподдерживаемая. Кто-то из наших пытался написать новую версию, основываясь на предложениях отсюда, но всё это заглохло, не дойдя до полпути.
Ого, серьезная задача. В список, конечно, добавил, но тут работы не на пару вечеров.
И самое главное — нужно понимать суть задачи, а для этого хорошо бы самому поработать в данной области хоть немного.
Боюсь, что не только не на пару вечеров, но не на одного человека и не на один месяц. По своей осмысленности она тоже сомнительна — в принципе, коллективные блокноты нужны не только анонам (которые ещё неизвестно, сколько просуществуют, учитывая приближение гранд-финала G4), но те или иные решения уже есть.
но те или иные решения уже есть.

Есть мнение, что весь софт был написан где-то к 2000-му году, а вся работа программистов дальнейшая уже проистекает из «решение есть, но хочу, чтобы вон та хреновина была овальной и зеленой».
Я бы поменял причину со следствием местами. «Я хочу такую вот хреновину, но вот есть похожая, наверное её и потерплю.» «Чё я буду париться над нормальным спектральным анализом, когда есть FFT? Ну, чуть подколхожу его и покатит...»
Нет, дело не в этом. Иногда от овальности и зелёности можно получить большой выигрыш, если ресурсы, затраченные на разработку, заметно меньше, чем полезность овальной зелёности, помноженная на количество пользователей. В данном случае, боюсь, всё наоборот.
Нормальный редактор xml-файлов. Чтобы мог решить, например, такую прикладную задачу: есть таблица, в которой в такой-то колонке занесены значения x, y, z,… Их нужно заменить на aaax, aaay, aaaz — попросту, приписать ко всем элементам столбца спереди несколько символов. И другие модификации, которые прекрасно можно делать в таблицах экселя (с помощью встроенных функций) — но, блин, создатели прикладного софта так и норовят наваять какие-то вложенные xml-таблицы, которые эксель, может, и прочитает, но свернуть после модификации обратно в xml уже не может…
(Если это изобретение велосипеда — будьте добры, ткните меня носом в существующий xml-редактор с таким функционалом.)
есть таблица

Но ведь XML не является формой хранения табличных данных. Это скорее древовидные структуры.
А как насчёт разнообразных отчётов, справочников и т.п.?
Они тоже древовидные, как конопля.

Ну вот смотри.

<xml>
<princess>
   <item>
     <id>1</id>
     <name>Селестия</name>
   </item>
   <item>
    <id>2</id>
    <name>Луна</name>
  </item>
  <item>
    <id>3</id>
    <name>Твайлайт</name>
    <pinkie>
      <pie>
        <spice>
          <must>
            <flow>1</flow>
          </must>
        </spice>
      </pie>
    </pinkie>
  </item>
</princess>


Это справочник? Да.
Что там делает Пинки с пряностью внутри Твайлайт? Хз, но структура документа корректная и редактор должен уметь это как-то обработать. Либо полагать, что в каждом элементе сидит Пинки значением по умолчанию.
Вот мне и надо, чтобы по всему документу всё, что в тэге flow, поменять, а остальные не трогать
Во всех тэгах flow, которые находится на одном уровне вложенности, или вообще во всех тэгах flow?
Затруднился с ответом, а потому взял реальный документ: прямая ссылка. Вот здесь нужно все названия, которые стоят в тэге nam_smok, дополнить рядом символов (для определённости — кодом, стоящим в тэге inn).
Хо-хо. То есть, простой заменой тут не выйти, тут должна быть формула по типа nam_smok:=nam_smok+inn.
Задачка, конечно, из засадных, но почему нет?
Записал.
Агась
Даже, ещё точнее, nam_smok:=inn+'символ_пробела'+nam_smok
Набирал большой ответ, а он не сохранился.

Короче, я думаю, что готовых решений тут нет по двум причинам:
1) Частным лицам XML не нужен
2) В организациях есть программисты — если ты в понедельник оторвешься от своего файла и посмотришь вокруг, ты однозначно увидишь какого-то бородатого мальчика в свитере и в очках, который занят поглощением кофе. Вон он должен выполнить такую замену — а написав ли фильтр или хардкорно закодировав регулярное выражение, уже зависит от квалификации мальчика.

При всём при том, заявку сохранил — может, и позабавлюсь.
Например?
СпойлерВ таргет вписываем имя тега, например, nam_smok
В expression вписываем желаемый результат, например, %inn% %nam_smok% — всё, что обёрнуто в % считается именем тега, значение которого нужно подставить. Поиск идёт от сиблингов заменяемого вверх до корня.
Извиняюсь, чего-то проглядел сей коммент в срок.
Спасибо, попробую потестить.
Там, забыл, ещё есть возможность в таргете указать вложенность. Например, bun/apple — целевыми будут считаться только те теги apple, которые вложены в тег bun. Не помню, правда, в какую сторону там должен быть слэш, но это можно установить экспериментально.
О! Бесплатная разработка ЛЮБОГО ПО? Ну ок.
За сим хотеть «программку» умеющую с входной «битмап»(желательно ещё и вектор) картинки выдавала готовый «G-код» для «шкрябанья»(гравировки неподвижным алмазом) этой самой картинки на ЧПУ станке. Особенность должно быть задаваемый пользователем наклон(и тип) штриховки в зависимости от цвета.
Да, я лентяй, мне лень вручную «векторить» битмапы и так-же вручную изголяться с выбором угла(и типа) штриховки для каждого отдельного цвета.
Сугубо для себя любимого ;)
Хм, пиксельная обработка дело нехитрое, если только подскажешь формат выхода. Ну или документацию на станок. Пока что затрудняюсь с пониманием задачи.
По выводу УП и Г-кодам: planetacam.ru/college/learn/16-1/ — для большей универсальноти выводить в ISO, но для «усложнения» можно прикрутить и работу с постпроцессорами(файлы параметров станка и управляющей программы, позволяющие сделать более оптимальную УП)
А вот по «трассировке» и захвату цвета не подскажу :(
Суть тут — «обойти» векторный контур и «заштриховать» внутри контура соответствующей цвету штриховке.
Общем — нечто вот такое: www.cnc-club.ru/forum/viewtopic.php?f=16&t=12096 но с функционалом штриховки.
В итоге должно получатся нечто похожее: www.deviantart.com/download/394698416/best_pony_dog_tag_pendants_by_chaoticbrony-d6izr8w.png — осторожно большая картинке.
Последняя картинка не найдена.
Я правильно понимаю, что разные цвета должны давать разный тип штриховки? То есть, например, красный рисует как штрих сверху слева — вниз вправо, зеленый наоборот, а синий, к примеру, штрихует горизонтальными черточками?
Вид штрихов любой. Не чёртосками, а с разным шагом между линиями, разным углом наклона линии и возможность штриховать «крест накрест».
Звеняюсь за картинку: www.deviantart.com/silverslinger/art/Best-Pony-Dog-Tag-Pendants-394698416

Яркий пример различной «штриховки».
Теперь понятно. Годная задача, и тоже перекликается с моими глубинными устремлениями гонять железо из кода.
Записал, шансы очень высоки — но, конечно, до окончания срока сбора заявок обещать ничего не буду.
Я бы просто дизеринг заюзал. Оттенки так в полиграфии и передают. А дизеров этих — много всяких вариантов, и всё это можно сделать в графическом редакторе.
Тут суть чтоб из битмапа получить вектор с УЖЕ ВСТРОЕННОЙ штриховкой ;) Честно — час ковырять в Аи для получения удобоваримого вектора, а потом ещё полтора распихивать штриховку… Точнее — в каждой отдельной области задавать свою, потом собирать из месива(массива) УП общий файл.
да — для нормальной штриховки вектор должен быть замкнутым, и внутрях штрихи в виде «змейки» с огибающей край, либо отрезки векторов «от-до» без выхода за пределы области.
Так я предлагаю не штриховку. Я предлагаю автоматическое конвертирование в ЧБ с использованием дизеринга, который и пойдёт сразу на гравировку. Да, это не штриховка, там узорами так гибко не поиграться, но зато прямая задача (передача полутонов) будет выполнена лучше чем со штриховкой.
Например, ЧБ растр с диффузией ошибки выглядит вот так:
Большая картинко...
Просто как альтернатива. Да, это прямо с растровой картинки гравирует станок. Лазерные принтеры тоже так печатают изображения, и газеты… Алгоритмов много всяких, в т.ч. и узорных. Это всё конвертируется ж автоматически в ЧБ версию изображения с псевдотонированием, а для конвертирования ЧБ растра в G-код разве нет готового софта?
Вы попутали ЛАЗЕРНЫЙ и АЛМАЗНЫЙ гравировщики ;) И не только алмазные…
Для лазера софт в разы проще по причине возможности ГИБКО управлять мощностью лазера, ну или как минимум включать-выключать излучение с частотой не подвластной обычной «игле». Плюс лазер потоньше иглы будет в плане «рисунка» — там где лазер проложит 3-4 «дороги», игла еле-еле одну вышкрябает!
Да, я-бы в идеале прикупил «маркиратор» и не занимался «любовью» с мозгами. НО — у меня, к сожалению, нет лишних 350-400 тысяч рублей… Зато есть станок с ЧПУ и возможность работать с алмазной иглой ;)
И то правда. Сорри :). Сейчас всё на этих лазерах и плазмах, я уже как-то и думать забыл о других вариантах…
Кстати — ещё «лазер»(китайский резак-гравер) можно считать «читерным» станком — он, обычно, управляется стандартным HPGL языком, как плоттер! И во всякие там корелы(Аи) он встаёт именно как плоттер :( Отсюда «гибкость», вариативность работы с графкой, нативная поддержка «из коробки» всяческих шрифтов и прочее-прочее-прочее… Но это-же и имеет свои ограничения — выше «языка» не прыгнуть! Что, собственно, ему и не нужно — его задачи «вырезать по вектору» или «нарисовать по вектору/растру»(битмапы он в «линии» переводит — так проще рулить)
От это красотищща!!!
Предлагаю помочь Орхидеусу починить Табун без участия (и желательно уведомления) самого Орхидеуса.
Коварный план, но… Табун это не наколенная утилита, которую можно бахнуть между парой заказов, а серьезный сайт с высокой посещаемостью.
Учитывая то, что мой уровень веб-разработки находится где-то между «везучий дилетант» и «ловкий любитель» — попытка внести правки в код приведет к подобному.
Табун после моего вмешательства
Табун ДО твоего вмешательства:
Я слишком стар, чтобы вестись на такие подначки. «Вперед кодировать во имя Света!» — не мой стиль.
Ну, велосипед то хотя бы поедет.
Да и не факт. Ковырять движок и язык, в котором не разбираешься — верный путь уронить вообще весь сайт. Я не хочу войти в историю русского фэндома как разрушитель Табуна :-)
Ты будешь известен как избавитель страданий, святой дух, что очистил останки дроблёного разума от тления и вознёс его в живой, сверкающий поток воспоминаний.
Нет, всё равно не то. Не мой стиль.
Я бы заказал кой чего для одной моей железки и даже не за халяву, но моя железка пока выглядит как множество железок помельче…
Учитывая то, что я всё ещё страдаю на уровне программирования LPT-порта и распайки универсального GPIO для него же — к тому моменту, когда твоя железяка буде собрана, я и сам уже прокачаюсь до уровня микроконтроллеров. Так что просто поставь себе зарубку и пиши, как созреешь.
я просто не выберу её в качестве цели разработки

Расходимся, посоны, всё уже понятно.
Я хочу принести людям пользу, а не надорвать пупок :-)
Береги свой пупок, он нам ещё пригодится.
Эх жаль, а то я уже хотел попросить сделать программу-ии, которая будет сама писать годные книги. ;)
Ооо, напиши программу, которая могла бы ужимать любую выкройку в шесть раз. Ровно в шесть раз
Оптимизация раскройки ткани? Классическая задача.

А почему в шесть раз?
Потому что куклы меньше человека ровно в шесть раз, чувак.
А так как они страшно человекоанатомичны, то выкройки от Барби заставляют скакать с линейками, мерилами и бумагой, пытаясь сделать хоть что-то отдаленно близкое
А в каком исходном формате находится выкройка? Растровая картинка?
Обычно — да
Тогда что мешает просто сжать её в Photoshop, GIMP или MSPaint, выставив 16,67%?
Пример файла выкройки можно?
Учитывая, что ткань имеет нелинейный коэффициент растяжения, зависящий от расстояния до ближайшего шва, эта задача превращается в лютый кошмар, даже без аналитического решения диффуров, а чисто на счетных методах.
*считает, что все должны уметь программировать — потому что логичнее выглядит, когда разбирающийся в предметной области осваивает программирование, чтобы упростить свою работу, чем когда программист осваивает предметную область только чтобы создать программу, а пересечение этих множеств — редкость*
когда программист осваивает предметную область только чтобы создать программу

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

Потому что мозг, обученный программированию, неплохо войдет и в предметную область на уровне общих понятий и задач, а вот обучиться программированию куда сложнее.
Смотря что понимать под «неплохо». Мастер своего дела занимается им длительное время и от души, имеет больше опыта и вдохновения для идей. Так что он по-любому лучше разбирается в этой области — если, конечно, программист не такой же профессионал в той же области, но это уже другая история. Но если программист пытается сравниться с Мастерами самых разных областей и у него это успешно выходит, то это уже какой-то Сверхчеловек и тут не программированием на заказ заниматься нужно
Вызывать математические функции, отображать формочки и писать в файлы — не сложно. Но, к сожалению, в некоторых местах может быть правда сложно — например, программирование микроконтроллеров или цифровой логики или разработка железок (элементов и/или их сборок). С другой стороны, человек, занимающийся разработкой железок, сам по себе в какой-то степени технарь *сорри, плохо сформулировал эту свою мысль, а время на изменение коммента ограничено*. Но в любом случае сейчас действует относительно высокий порог вхождения, но это как раз потому что сейчас все люди разделены на обычных людей и программистов, для последних знать стопицот языков программирования и протоколов и разбираться в железках считается нормой просто потому что они программисты, а для обычных людей это тёмный лес. Потому что для обычных людей нет адекватных инструментов и стандартов. А это так потому что озвученная мною позиция (она сама или любая другая совместимая с ней) находится не в доминантном состоянии.
NTFS написал ровно так, как в 99% случаев бывает на самом деле: программист приходит, с помощью специалистов осваивает предметную область и решает прикладную задачу. Наоборот не бывает практически никогда. История о том, что специалист в предметной области по-быстрому освоил программирование и решил какую-то задачу не имеет с реальностью ничего общего, это единичные случаи, возникающие обычно либо там, где сама предметная область не сложная, либо наоборот, где предметная область — какие-то сложные научные изыскания, а сами специалисты/ученые изначально владеют и математикой и несколькими языками программирования как рабочими инструментами.
А, ну и да, добро пожаловать в реальный мир: программист — тот самый сверхчеловек, который обучен обучаться чему угодно насколько угодно сложному, это и есть его основаная задача. И порог вхождения никогда низким не станет, такая работа всегда требовала и требует интеллекта, далеко превосходящего средний по больничке.
Оба правы. Неплохо было бы, чтобы люди сами могли автоматизировать свою работу — и со временем этот навык будет таким же востребованным, как умение печатать на машинке становилось когда-то для многих профессий. Однако в настоящее время пока что выгоднее платить небольшому числу специалистов за вникание и решение чужих проблем.
Неплохо было бы, чтобы люди сами могли автоматизировать свою работу — и со временем этот навык будет таким же востребованным, как умение печатать на машинке становилось когда-то для многих профессий.

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

А это и не требуется. Я не смогу составлять расписание так, как это делает многолетний диспетчер, но я смогу понять правила и сделать софт ему в помощь.
Сам освоил программирование только потому, что этот инструмент был необходим для моей собственной предметной области. И средний программист не сможет реализовать то, что обычно делаю я. Как раз потому, что не сможет понять чё вообще нужно. А я, если б не знал программирования — не смог бы ему это объяснить. Сейчас общий язык найти куда проще, да и львиную долю работы делаю я сам, по месту, и куда быстрее. Это просто очень удобно. Надо рассчитать шумовую модель и подобрать оптимальные номиналы компонентов — пишу консольную программку, она всё считает. А поди объясни программисту «мне нужно видеть уровни шума во всех цепях усилителя вот на этой схеме»… Ну не знает он как это всё считается, даже схему прочитать не факт что сможет! А я вот на калькуляторе очень долго буду это делать.
Да и для общего развития очень полезная штука. Учит мыслить иначе, заставляет изучать весь этот матан, который я так не любил в школе и т.п.
*немного оптимизировал свою позицию*
OK, не совсем все, а те, кто не отказался бы от автоматизации. Т.к. если творец решает делать что-то вручную и без автоматизации, то и программа тут вряд нужна.
За неделю до конца сбора заявок, получены следующие заявки от брони и примкнувших к ним:
1) прикрутить на тумбу донатную кнопку
2) внешний поисковик для небольшого сайта
3) красивый редактор графов
4) игрушка сокобан в консоли
5) захват системного звука, его обработка и отправка результата в виртуальный COM порт с красивым результатом
6) новый пад для anon2anon
7) редактор xml-файлов
8) генерация готового «G-кода» по картинке для станка
9) программа для ужимания выкройки в шесть раз
10) программа для пересчёта масштабов печати для 3D-принтера
11) программа для создания списка квестов
12) редактор, чтобы делать 3D модельки из кубиков
13) понифицированная ролевая онлайн игра «Манчкин FoE»
14) генератор хокку про пони

Я доволен богатством и разнообразием заявок, кое-что уже для себя полезное вынес, но сбор продолжится до 31 октября включительно.
>игрушка сокобан в консоли
Вроде как сокобан на ncurses не трудно найти…
Итак, сбор заявок окончен. Поступило много простых и сложных, типичных и нестандартных, но во всех случаях — достойных обращений.
Выбрать было реально трудно. Но нужно.

Итак, мой выбор из полутора десятка заявок:
Редактор, чтобы делать 3D модельки из кубиков

Это задача с одной стороны, близка к тому, чем я в настоящее время пытаюсь заниматься, позволит мне лучше углубиться в графику DirectX/OpenGL, освоить некоторые приёмы и выбрать IDE для более серьезного заказа. С другой стороны, она достаточно сложна, чтобы дать мне пинок.
В ближайшее время, я свяжусь с заказчиком и начну работать над проектом.

Но это еще не всё. По итогам, я пришел к двум следствиям:
1) В сообществе есть запрос на разработку ПО, и некоторые запросы весьма серьезны.
2) Я планирую проводить подобную акцию регулярно, по мере появления у меня кусков свободного времени или хотя бы намеков на него.

Пара слов об остальных заявках.

Очень хотелось заняться заявкой:
Захват системного звука, его обработка и отправка результата в виртуальный COM порт с красивым результатом.
Не выбрал её только потому, что она потребует погружения в процесс, который я сейчас обеспечить не могу. Но именно что сейчас. Я вернусь к этой теме чуть позже.

Не менее любопытной заявкой было
Генерация готового «G-кода» по картинке для станка
остановило только то, что предметная область абсолютно новая и много времени уйдет на чтение руководств. Опять же, пока что нет возможности. Но только пока.

Еще раз спасибо всем за интересные предложения, я занимаюсь выбранной заявкой — ну а все остальные пусть не отчаиваются, NTFS может всё, но NTFS не может всё сразу.
NTFS может всё
Но не пилить Табун)
А ты почаму табун не пилишь?
Я предусмотрительно накомментил перед отправкой этого комментария То есть, не ври)
Не выбрал её только потому, что она потребует погружения в процесс, который я сейчас обеспечить не могу. Но именно что сейчас. Я вернусь к этой теме чуть позже.
Ну оно уже достаточно долго лежит — полежит ещё. :) Может, я и сам доберусь до этой задачки. Мне только нужен проект, в котором уже есть захват звука и вывод в порт данных, а между этими кусками я свой фильтр сам напишу.
Сейчас я вожусь с интересной визуализацией музыки, в данный момент рендерится. Вот эту визуализашку тоже не плохо было бы прикрутить как плагин к MPC-HC, VLC, и прочим плеерам на базе классика…

Вообще, затея интересная у тебя. По-больше бы таких добровольцев и думаю тут было бы уютнее и плодотворнее.
Вообще, затея интересная у тебя. По-больше бы таких добровольцев и думаю тут было бы уютнее и плодотворнее.

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

Пни меня в зад личку на следующей неделе, я тебе скелет приложения на Qt сделаю, будет вход и выход, а код конвертации данных double->RGB побайтно напишешь сам.
Там работы на пару часов с библиотеками.
Ок, пну. Это тебе на пару часов, а я в этом скелете неделю буду разбираться, задалбывая SviMik'а, как обычно…
а я в этом скелете неделю буду разбираться

Не будешь, если я сделаю комментарии.

Ну вот такая функцию наполнить сможешь?

// Функция вызывается всякий раз при поступлении нового значения звука в течении кванта времени,
// возвращаемые значения уходят в COM-порт
// level - Текущий уровень звука
// maxlevel - максимальный уровень звука в устройстве
// структура sRGB передана по ссылке и можно присваивать её компоненты в диапазоне 0...255
void filterLevel2RGB(const double level, const double maxlevel, sRGB & rgb) 
{
   // Пример заполнения - для уровня звука менее половины от максимума, вывести чисто зеленый цвет, 
   // а при уровне выше половины - чисто красный   
   rgb.R=0 ;
   rgb.G=0 ;
   rgb.B=0 ;
   if (level<maxlevel/2) rgb.G = 255 ; else rgb.R=255 ;
}
Не всё так просто. Квант времени это сколько? Сколько ОС решит? А процесс ведь должен быть детерминированным во времени, и на частоте выше латентности ОС. Протокол COM интерфейса — времязависимый, и драйвер поддерживает такую работу. Как его настроить — не знаю, но знаю что можно. Между пакетами должна быть пауза в передаче (хватит и одного байта), сами пакеты при прямом управлении занимают 31 байт (1 байт начального адреса, с которого в ОЗУ МК будет писаться поток, и по 2 байта на каждый канал, которых там 15). При этом скорость передачи данных должна быть более менее ровной, т.к. обновления подсветки происходят мгновенно, а джиттер в передаче квантованных аналоговых сигналов — не хорошо. Чем выше FPS — тем луче, а максимум он может быть 115кбод/с /32/11 = 326FPS. Это интервалы порядка 3мс. Явно меньше латентности планировщика винды. Буферизация допустима такая, чтоб на глаз задержка не бросалась. Думаю ну миллисекунд 20 максимум. Так вот. У нас есть строгая скорость потока аудиоданных, под которую нужно настроить скорость потока RGB данных. И я так понимаю — не строгие интервалы опроса буфера? И я должен как-то синхронизировать потоки… Ты уверен, что это задачка на пару часов? :)

В идеале, вызов функции должен происходить раз в определённое число семплов, съеденное звуковым устройством (кушает то оно на строго фиксированной скорости). При этом это число семплов должно обеспечивать частоту вызова функции около 300Гц, что тоже сомнительно для комповой ОС, если только не крутить программку где-то в другом, не пользовательском кольце.

В примере функции не вижу такой важной вещи, как частота дискретизации. Под неё ведь рассчитываются коэффициенты фильтра. Ну и double, на мой взгляд, сильно избыточно. Какой там формат данных аудиобуфера? Вроде бы целочисленный. Мне хватит и float, нормализованного к единице на 0Дб (например, если 16 бит поток, то float L = (float)In_L/32768.0);). А ещё ведь у нас многоканальный поток, и может быть несколько устройств. К тому же их нужно ещё как-то находить и узнавать в огороде COM портов. Так что нет, это не так просто, если лезть в детали. Я бы с удовольствием это всё сам бы ковырял и тратил своё время, если б мне все эти либы и прочие WinAPI давались так же легко как микроконтроллеры…

В общем, ты просил пнуть через недельку, а не сейчас… )
Протокол COM интерфейса — времязависимый, и драйвер поддерживает такую работу

Поправка — не драйвер, а микросхема порта. Которая считывает данные из буфера, а вот в буфер уже данные кладутся в пользовательском кольце, без строгой привязки к интервалам времени.
Так что если тебе нужно, чтобы скорость в COM-порт шла строго на 115 — она и будет идти с такой скоростью, а твоё прикладное ПО может просыпаться 18 раз в секунду, закидывать очередную порцию в буфер и засыпать снова, не мешая другим процессам.
Впрочем, я вижу, что задача сложнее, чем мне казалось, и это хорошо. Когда задача выглядит простой, где-то кроется засада.

В отрыве от аппаратной части — тебе нужно, чтобы по входному уровню звука (дробное число) выводился уровень 15-ти каналов (два байта)?
Нет. Скорость — это скорость. Микросхема порта выгребает буфер пока он не опустошится, и драйвер как раз следит за тем, чтоб буфер опустошался когда нужно. Каждые 31 байт данных, к примеру. Пользователь кладёт данные в более ёмкий буфер, из которого драйвер будет дёргать эти 31 байт, и ждать пока линия перейдёт в состояние ожидания. Как-то так. Я думал это чисто микроконтроллерная фишка, такие протоколы гонять по UART. Но нет, это стандарт UART, и дрова его поддерживают, т.к. существуют пром. протоколы, использующие это. Названия могу вспомнить, если нужно.

18 раз в секунду означает задержку в 55мс. Это очень заметно на глаз. А как потоки синхронизировать? у микросхемы UART свои часы, у звуковой карты — свои. А мы ещё и количество правок уменьшили с детерминированных 300Гц до хренпоймических 18-ти… Со стороны UART мы можем управлять паузами между пакетами, а вот повлиять на звуковой поток мы не можем. Поэтому привязываться нужно к часам звуковухи. Я пока не понимаю, каким образом это можно сделать в латентном кольце пользовательского ПО. Может, есть спец инструменты, вроде прерываний там каких-то?
В отрыве от аппаратной части — тебе нужно, чтобы по входному уровню звука (дробное число) выводился уровень 15-ти каналов (два байта)?
Вход — два канала звука (стерео). Выход — ну мне нужен открытый порт с настроенным драйвером. В него будут отправляться пакеты по 31 байт. Буфер может быть и жирнее, абы драйвер квантовал по 31 байт (32, если не поддерживает). Я попробую открыть так и настроить ещё один (два канала — два устройства).
На данном этапе, мы вышли за рамки моего понимания задачи, потому я пока вопрос отложу, а на следующей неделе сделаю скелет, где вместо порта будет вывод в виртуальный файл, и на его примере посмотрим, верно ли я понимаю требования к скорости и точности.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.