Pull to refresh

Comments 42

Написание API это возврат к трясине, и снова все по кругу
TDD помогает держать API в узде.
Если API не релизить, то можно тихонько закопать, пока никто не видел.
Сижу пишу класс. Понял, что я в трясине.
Так, не заниматься самобичеванием, не заниматься…
Есть чувство, что автор статьи немного уклонился от темы. Тьюринговская трясина — это о языках и вычислимости. Другими словами, есть много «языков», на которых можно реализовать все, что и на обычном языке программирования типа С. Строго говоря — тьюринг-полных языков. Но делать это непрактично, хотя иногда и интересно.

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

Но решать с помощью этого практические задачи нет смысла.
Точно. Мне в качестве примера трясины больше нравится sendmail — где конфиг это настоящий язык программирования, оперирующий на самом низком уровне обработки почты. В результате пользоваться им (языком конфигурации) практически невозможно, поэтому пришлось сочинять надстройку на макропроцессоре m4 для создания конфигураций.
Да вы садомазохист =)
Отнюдь. Лично я давно пользуюсь postfix-ом. Просто еще помню sendmail по началу нулевых.
Естественно, что разработчики платного софта пытаются получить преимущества перед конкурентами.
Недавно искал простую, казалось бы, программу для наложения водяных знаков на фотографии.
Их десятки, сотни. Большинство из них платные. Так вот в платных чего только нет. Навороченные редакторы водяных знаков, с какими то супер пупер градиентами и прочими плюшками. Стоит это все 99$ pro лицензии.
Среди всех программ не нашел ни одной, которая мне подходила.
Мог бы за пару часов в фотошопе решить эту задачу, но сел за написание программы. Ушло три дня (включая написание документации, официальной страницы программы), и первоначальную задачу решил за 10 минут. Теперь зато есть новая и уникальная бесплатная программа )
> Теперь зато есть новая и уникальная бесплатная программа

Респекты вам за это, но можно плз в двух словах пояснить в чем киллер-фича (и кстати ссылка на упомянутую страницу была бы очень кстати :)), т.е. почему не подошло например вот такое решение:

www.imagemagick.org/Usage/annotating/#wmark_image
Допустим, нам надо поставить ватермарк на 50 фотографий. Подобрав положение и размер для первой фотографии, на второй он может уже не так смотреться. Для первой фотографии снизу слева, для второй сверху слева и повернутый на 90 грудусов, на третьей должен быть инвертирован (белый на темной фотографии или черный на белой фотографии). Плюс фотографии могут иметь разный размер, и водяной знак должен быть пропорционален.
101watermark.igor-k.ru (осталось пару недоделок, к вечеру будут исходники. Написано на python).
Программа позволяет все это сделать быстро и пакетно, предусмотрены хоткеи.
ссылка на исходники не работает (404)
Ну я же написал, исходники выложу вечером.
Да и нет там ничего интересного, так, новичкам поучиться по мелочам)
Мне просто хотелось бы под linux запустить.
Запустите, обещаю, и даже работать будет)
Правда GUI страшноватое получается ((
Забирайте. Специально для Вас протестил под Ubuntu (чуть чуть подправить пришлось платформоспецифичные мелочи).
Для работы нужен python>=2.6, пакеты python-tk,python-ttk,python-imaging,python-imagingtk
Отлично! Теперь добавьте список с вотерматками, чтобы можно было на лету выбирать: иногда я использую просто инициалы, иногда полное написание Гельветикой, а иногда с Бодони. Эффекты для вотермарков, рамочки и сепию. И продавайте по $99.
Сам люблю для себя все автоматизировать с помощью скриптов. Бывает написать что то самому быстрее, чем найти готовое решение.
UFO just landed and posted this here
Чуть выше смотрите
Забавно. Столько раз сталкивался с такой ситуацией и даже не знал, что у нее есть официальное название. Спасибо за ликбез.
UFO just landed and posted this here
Пол Грэм же! Известный евангелист лиспа.
Вот многие задумались о том, что сами когда-то рождали монстров на языке программирования.
Но на самом деле все дело в мышлении человека и его «запасливости». Все делается с запасом на будущее — а будущее часто поворачивает в такую сторону, в которую люди и не могли подозревать.
Для этого как раз и нужны архитекторы и менеджеры по развитию, которые определят, какая фича может потребоваться в будущем и станет конкурентным преимуществом, а какая сожрет кучу времени на разработке, но станет «приятным дополнением».
комментарий не в тему. Речь шла не про bloatware, а про инструменты программистов.

А вообще, да, есть такое.
+1. Переводчику лучше было промолчать в конце :) Как в известной поговорке
Вы абсолютно правы, иногда лучше промолчать.
Напомнило историю:

Шел рыцарь по пустыне. Долгим был его путь. По пути он потерял коня, шлем и доспехи. Остался только меч.

Рыцарь был голоден, и его мучила жажда. Вдруг вдалеке он увидел озеро.

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

И тогда из последних сил дракон спросил:
— Рыцарь, а ты чего хотел-то?
— Воды попить.
— Ну, так и пил бы…
Это не обобщённость и могущественность, а переусложнённость.
Обобщённость и могущественность — это математика.
Программа, которая делает все и ничего:
void*MegaFunction(void*(*f)(void*),void*arg)
{
return f(a);
}



Да, я как-то почти до такого докатился :)
Похоже на большинство видимых мной «посетителей».
Как говорил один мой преподаватель, когда ему указывали на ошибку на доске: «Не пропечаталось!».
А я не жалею о нашей трясине.
Мы пишем крутую универсальную библиотеку (этим у нас занимаются двое), которой пользуется вся остальная команда уже в котором по счету проекте. Уже сколько лет. Иногда трясина — это хорошо. Сы придумали новые подходы. Мы облегчили себе жизнь. Мы сэкономили тысячи строк кода.
Меня частенько в неё затягивает.
Вот пишу программу по наиболее правильной схеме библиотека -> интерфейс к ней.
И постепенно библиотека превращается в фреймворк и библиотеку, построенную на этом фреймворке.
В погоне за универсальностью переделывается архитектура.

В результате срыв сроков, гейзенбаги и прочие неприятности.
Как-то на RSDN пробегала картинка в тему:
image

:)
Круто.

Теперь я знаю, как называется моя неизлечимая болезнь.
Начали за здравие, закончили за упокой.
Тьюринговская трясина, идеально гибкая программа и добавление лишних функций – это точно ОДНА тема?
Sign up to leave a comment.

Articles